LVS相关学习
vi /etc/sysctl.conf
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p
配置后端服务器的虚拟IP
ifconfig lo:0 虚拟IP netmask 255.255.255.255 broadcast 虚拟IP up
route add -host 虚拟IP dev lo:0
以下2个参数对LVS的转发行为有重要作用
1)expire_nodest_conn的值有两种:0-禁用,默认值;非0-启用。默认值是0,在负载均衡器发现目标后端服务器不可用时会丢弃包。在某些情况下可能有用,例如用户的监控程序删除了后端服务器(因为过载或者判断错误)然后有添加回服务池,那么这个连接可以继续
如果启用了该特性,负载均衡器会立即使该连接过期,然后客户端会得到通知连接已经关闭
2)expire_quiescent_template的值有两种:0-禁用,默认值;非0-启用。如果非0,那么负载均衡器当发现被调度的后端服务器处于静止期(权重为0)会立即使持久连接过期,并被发送到新的服务器
以下参数对LVS同步状态有重要作用
sync_threshold的默认值为3。表示一个连接上收到至少多少个包之后,才开始进行连接状态的同步。一个连接的状态在以下情况下会被同步:它收到的包的数量用50取余等于该设定值时,取值范围0~49
LVS-DR模式的核心提示与优化
1)LVS-DR模式,因后端服务器上同样配置了虚拟IP,如果在客户端进行ARP请求的时候,后端服务器以自身的MAC地址进行了回复,则起不到负载均衡的效果,此时客户端直接连到了某后端服务器上
2)后端服务器的虚拟IP必须绑定到lo:0上,同时指定子网掩码是255.255.255.255.0,否则ARP禁用会出现异常
3)持久连接问题,持久连接使同一个客户端在超时时间内-p参数指定,keepalived中的persistence_timeout指令会持续地连到同一台后端服务器,这个是4层以上的持久连接。来自客户端的每个新的连接会重置该超时时间
4)keepalived对后端服务器的健康检查,推荐使用应用层检查方式,另外可以配置keepalived使用管理员自定义的脚本进行健康检查(MISC_CHECK)
5)负载均衡器之间使用vrrp协议进行高可用设置时,禁用iptables或者打开对vrrp协议的支持
6)LVS集群中的负载均衡器,推荐使用16GB以上的内存,同时采用多队列网卡提高网卡吞吐量减少延时
7)LVS集群中的后端服务器,根据IO密集型和CPU密集型2类,可以分别使用RAID10、SSD及高频多核CPU来优化
天天向上,空杯心态。