Keepalived在活动的LVS路由以及一个或多个可选的备用LVS路由上运行。主动LVS路由上有两个作用:
- 平衡真是服务器上的负载。
- 检查每个真是服务的完整性。
活动(主)路由器使用虚拟路由冗余协议(VRRP)通知备用路由器其活动状态,协议要求主动路由器定期发送advertisements报文。如果活动路由器停止发送advertisements报文,则选择新的主节点。
基本的Keepalived负载均衡器配置
下图显示了一个由两层组成的简单的Keepalived负载均衡器配置,在第一层是一个活动和几个备用LVS路由器。每个LVS路由器都有两个网络接口,一个在Internet上,一个在专用网络上,使他们能够调节两个网络之间的流量。对于此示例,活动路由器正在使用网络地址转换(NAT)将来自互联网的流量引导到第二层上的可变数量的真实服务器。这反过来又提供了必要的服务。
到达LVS路由器的服务请求被发送到虚拟IP地址(VIP)。这是一个可公开路由的地址,与FQDN关联,并分配给一个或多个虚拟服务器。虚拟服务器时配置为监听特定虚拟IP。在故障转移期间,VIP地址从一个LVS路由器迁移到另一个路由器,从而保持VIP地址存在。也称为浮动IP。
可以将VIP地址分配给LVS路由器连接到Internet的同一设备。例如,如果eth0
连接到Internet,则可以分配给多个虚拟服务器的eth0
。或者,每个虚拟服务器可以与每个服务的单独设备相关联。例如,HTTP流量可以在eth0
的192.168.1.111处理,而FTP流量可以在eth0
的192.168.1.222 处理。
在设计一个主路由器和一个被动路由器的部署方案中,活动路由器的角色是将服务请求从虚拟IP地址重定向到真实服务器。
活动路由器还通过三个内置运行状况检查动态监测真是服务器上的特定服务的整体运行状况:简单的TCP连接,HTTP和HTTPS。对于TCP连接,活动路由器将定期检查它是否可以连接到某个真实服务器上的端口。对于HTTP和HTTPS,活动路由器将定期获取真实服务器上的URL并验证内容。
备路由器执行备用系统的角色。路由器故障转移由VRRP处理。启动时,所有路由器都加入组播组。用于发送和接受VRRP通告。由于VRRP是基于优先级的协议,因此具有最高优先级的路由器被选为主设备。一旦路由器被选为主设备,他就负责定期向组播组发送VRRP通告。
如果备路由器未能在特定时间内接收通告,则将选择新的主节点。新的主服务器将接管VIP并发送地址解析协议(ARP)消息,当路由器返回活动服务时,他可能称为备服务器或主服务器。行为由路由器的优先级决定。
使用简单的双层配置基本最适合提供不经常跟;更改的数据-例如静态网页-因为各个真实服务器不会再每个节点之间同步数据。
三层KEEPALIVED负载均衡器配置
下图显示了典型的三层Keepalived负载均衡器拓扑。此示例中,活动LVS路由器将来自Internet的请求路由到真实服务器池。然后,每个真实服务器通过网络访问共享数据源。
此配置非常适用于 繁忙的FTP服务器,其中可访问的数据存储在中央的高可用服务器上,并由每个真实服务器通过导出的NFS或Samba进行访问。对访问高度可用的事物数据库的网站,也建议此拓扑,此外如果使用LoadBalancer的主动主动配置,管理员可以配置一个高可用集群,以同时为这两个角色提供服务。