本篇介绍lvs负载均衡器,并使用keepalived增强lvs的稳定性。
目录
一、负载均衡模型简介
一个tomcat服务器最多为几千个并发客户端服务,当客户端超过这个数时就需要用到负载均衡,负载均衡就是后端有多个服务器,当新的客户端来时为它分配一个固定的后端服务器服务。
1.1 逻辑模型简介
VIP:虚拟服务器地址(域名解析后的ip地址,例如www.baidu.com经过DNS解析后的ip地址,是唯一的)。
DIP:负载均衡转发源的网络地址。1)和RIP通信:使用ARP协议获取RIP的MAC地址。
RIP:后端真实的服务器ip地址。为了实现高并发通常有多个。
CIP:客户端ip地址。
宏观拓扑图如下图所示:
负载均衡器只做转发,不做三次握手,实际通信是CIP和RIP之间的通信。
1.2 动态NAT模式实现
负载均衡器通过NAT方式重定向后端服务器ip地址实现负载均衡。
具体实施图如下图所示:
缺点:所有数据都要经过负载均衡器,带宽限制。
1.3 四层DR(直接路由)模式实现
为了解决上面所有收发的所有数据都经过负载均衡器导致的带宽不足,使用四层DR模式解决,后端服务器直接发送给客户端。
负载均衡器:将受到的CIP_VIP格式转换成CIP_VIP:RIP_MAC格式。
后端服务器:VIP与负载均衡的VIP相同,后端VIP位于内网中,对外不可见;后端服务器与负载均衡器位于同一局域网中,物理距离被限制。
1.4 隧道(ip嵌套ip)模式实现
为了解决后端服务器由于在同一内网中的物理距离限制,使用类似VPN的方式解决。详细如下:
1.5 隐藏VIP(对于后端服务器)的方法
由于后端服务器在后端,所有前端的负载均衡器不应该对VIP进行回应,只负责转发,所以需要进行隐藏。
在linux下,/proc/sys/net/ipv4/conf/*IF*/中可以对内核的网络功能进行配置
arp_ignore(ARP响应级别)设置为1,这是因为要隐藏VIP,不能将VIP地址告诉arp广播,只有当mac地址匹配时才会响应,若为0,当arp广播过来时会将本机所有网卡的ip地址发送出去,达不到隐藏的效果;
arp_announce(ARP通告级别)设置为2,设置为0时,会将本计算机上所有网卡上的ip地址发送出去;设置为2时,仅当匹配到网卡上的某个ip地址时会将这个ip地址发送出去,达到了隐藏效果。
详细如下:
注意:一块网卡可以配置多个ip地址。