2)通过调整内核参数,来抑制VIP接口收到ARP请求报文对其进行相应,同时在配置上VIP地址之后,抑制对其向外发送免费ARP,两个参数分别为:arp_ignore、 arp_announce
arp_ignore: 定义接收到ARP请求时的相应级别:
/* arp_ignore:定义接受到ARP请求时的相应级别 0:只要本地配置的有相应地址,就给予响应(默认) 1:仅回应目标IP地址是本地的入网地址的arp请求。 2:仅回应目标IP地址是本地的入网地址,而且源IP和目标IP在同一个子网的arp请求。 3:不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应 4-7:保留未使用 8:不回应所有的arp请求 */arp_announce: 定义将自己地址向外界通告的通告级别
/* 0:将本地任何接口上的任何地址向外通告 1:试图仅向目标网络通告与其网络匹配的地址 2:仅向本地接口上地址匹配的网络进行通告 */DR特点
/* 1、保证前端路由将目标地址为VIP报文统统发给Director Server,而不是RS 2、Director和RS的VIP为一个VIP 3、RS可以使用私有地址,也可以是公网地址,通过在企业环境中是私有ip地址 4、RS跟DirectorServer必须在同一个物理网络中 5、所有的请求报文经由Director Server,响应报文不经过Director Server 6、RS的网关不能指向Director,直接指向出口网关即可 7、RS上的lo接口配置VIP的ip地址 8、DR模式是LVS默认的方式 */ TUN模式TUN模式本质上同DR的方式一样,只是在Director和RealServer之间是通过IP隧道的方式去通信,一般这种方式只在企业需要在多个异地机房做调度时,可以采用这种方式,因此较为不常用。
Full-NAT模式这种方式同NAT的方式本质上也是一样的,不管是请求报文还是响应报文都要经过Director,唯一的区别是,NAT模式在发送给后端RealServer时,只是做目的IP地址和目的端口转换,而Full-NAT模型下是源目IP地址和源目端口都需要做转换.
十种调度算法 /* 固定调度算法:rr、wrr、dh、sh 动态调度算法:wlc、lc、lblc、lblcr、SED、NQ 固定调度算法:即调度器不会去判断后端服务器的繁忙与否,一如既往的将请求派发下去。 动态调度算法:调度器会去判断后端服务器的繁忙程度,然后依据调度算法动态的派发请求。 */ Rr:轮训(round robin)这种算法是最简单的,就是按依次循环的方式将请求调度到不同的服务器上,该算法最大的特点就是简单。轮询算法假设所有的服务器处理请求的能力都是一样的。调度器会将所有的请求平均分配给每个真实服务器,不管后端RS配置和处理能力,非常均衡的分发下去。这个调度的缺点是,不管后端服务器的繁忙程度是怎样的,调度器都会将请求依次发下去。如果A服务器上的请求很快请求完了,而B服务器的请求一直持续着,将会导致B服务器一直很忙,而A服务器很闲,这样便没有起到均衡的作用。
Wrr:加权轮训(weight round robin)这种算法比rr的算法多了一个权重的概念,可以给RS设置权重,权重越高,那么分发的请求数越多,权重的取值范围0-100。主要是对rr算法的一种优化和补充,LVS会考虑每台服务器的性能,并给每台服务器添加要给权值,如果服务器A的权值为1,服务器B的权值为2,则调度到服务器B的请求会是服务器A的2倍。权值越高的服务器,处理的请求越多.
Dh: 目标地址散列调度算法(destination hash)简单的说,即将同一类型的请求分配给同一个后端服务器,例如将.jpg、.png等结尾的请求转发到同一个节点。这种算法其实不是为了真正意义的负载均衡,而是为了资源的分类管理。这种调度算法主要应用在使用了缓存节点的系统中,提高缓存的命中率。
Sh: 原地址散列调度算法(source hash)即将来自同一个ip的请求发给后端的同一个服务器,如果后端服务器工作正常没有超负荷的话,这可以解决session共享的问题,但是这里有个问题,很多企业,社区,学校都是公用一个ip,这将导致请求分配的不均衡。
Lc: 最少连接数(least-connection)这个算法会根据后端RS的连接数来决定把请求分发给谁,比如RS1连接数比RS2连接数少,那么请求就优先发给RS1,这里问题是无法做到会话保持,即session共享。
Wlc: 加权最少连接数(least-connection)这个比最少连接数多了一个加权的概念,即在最少连接数的基础上加一个权重值,当连接数相近,权重值越大,越优先被分派请求
Lblc: 基于局部性的最少连接调度算法(locality-based least-connection)将来自同一目的地址的请求分配给同一台RS如果这台服务器尚未满负荷,否则分配给连接数最小的RS,并以它为下一次分配的首先考虑。
Lblcr: 基于地址的带重复最小连接数调度(Locality-Based Least-Connection with Replicationn)用的少,略过
SED 最短期望延迟(Shortest Expected Delay Scheduling Sed) 基于wlc算法