第六章:负载智能dns解析
6.1两层负载均衡(two-tiered load balancing)
当BIG-IP dns接收到一个dns请求,他会使用两层负载均衡的方法选择一个最好的解析结果。
1、第一次尝试,使用wide IP 的负载方法选择最好的pool池子。
2、第二次尝试,使用pool的负载方法选择最好的virtual server。
每个pool池的三个层级轮训方法
执行顺序如下:
- preferred:最优的负载方法。包含动态和静态方法。
- alternate:当preferred因为缺少度量值(metric)导致不能使用时候选择的方法,包含动态和静态,但不能基于path。通常这里选用静态。
- fallback:当alternate因为缺少服务器度量值(server metric)时候选用的方法。
最优解当然是通过preferred的负载方法计算得出,但是当度量值(metric)还没有收集完成,动态负载均衡算法无法使用,这时候就需要使用alternate的静态算法,但是也可能由于到vs的网络不通,导致无法检测vs是否可用,这时候,fallback作为兜底方法将会被启用。
全球负载均衡默认设置
注:仅翻译,并未测试。
- respect fallback dependency:如果开启,并且需要使用fallback进行负载均衡,则会基于virtual server的状态进行回复,如果关闭(默认),并且使用fallback负载方案,则可能回复一个不可用virtual server。
- ignore path ttl:如果开启,将忽略path ttl,这适用于基于path负载的方法,如果关闭(默认),一旦ttl超时,他就不能作为度量值进行解析。
- verify virtual server availability:如果开启(默认),在解析这个请求之前,dns系统先检查virtual server的可用性。
6.2静态负载方法
- round robin
- ratio
- global availability
- static persist
- drop packet
- topology
- falback ip
- return to dns
- none
round robin:
轮询,就是顺序调用pool和pool member,如下图。
ratio:
权重,高权重的将会获得更多次选择。如下图。他的执行顺序是先逐个取值,进行一轮之后,再进行第二轮,对于3号,第一轮权重值被取完,则不进行第二轮取值。以此类推。
global availability:
这种算法下,big-ip总是会使用第一个pool和第一个vs进行回复,所以你配置的pool和pool member顺序尤为重要。只有第一个vs不能用,才会选择第二个vs。但是当第一个vs恢复,又会将第一个vs作为最优解进行回复。如下图。
总是使用第一个可用的pool和virtual server,你可以调整顺序。如果pool1先故障,之后又恢复,则会向用户发送pool2,然后又继续发送pool1。
static persist:
这个算法只能用于pool中,和global availability相似,static persist总是使用第一个可用的vs,但是不同的是他会对每一个ldns进行哈希,哈希过后,vs的顺序是不一样的,然后再取第一个可用vs作为最优解。
当1号不可用,则会使用序列中的第二个vs作为最优解。