9.6. LVS 群集 — 一个块状图表

LVS 路由器使用一组程序来监视群集成员和群集服务。图 9-4显示了活跃和备份 LVS 路由器上的各种程序如何一起合作来管理群集。

图 9-4. 运行着的 LVS 群集的部件

pulse 守护进程在活跃和不活跃的 LVS 路由器上都运行。在备份路由器上,pulse 给活跃路由器的公共接口发送心跳(heartbeat)来确保活跃路由器仍旧在正常运行。在活跃路由器上,pulse 启动 lvs 守护进程并答复来自备份 LVS 路由器的心跳(heartbeat)查询。

启动后,lvs 守护进程调用 ipvsadm 工具来配置和维护内核中的 IPVS 路由表,并为每个真正服务器上的被配置了的虚拟服务器启动一个 nanny 进程。每个 nanny 进程都检查一个真正服务器上的被配置了的服务,然后告诉 lvs 守护进程那个真正服务器上的服务是否在正常运行。如果检测到了不正确运行,lvs 守护进程会指示 ipvsadm 从 IPVS 路由表中删除那个真正服务器。

如果备份路由器没有从活跃路由器中收到答复,它就会通过调用 send_arp 来发起失效转移,把所有虚拟 IP 地址重新分派给备份节点的 NIC 硬件地址(MAC 地址),通过公共和专用网络接口给活跃路由器发出一条命令来关闭其上的 lvs 守护进程,然后在备份节点上启动 lvs 守护进程,接受被配置了的虚拟服务器的请求。

9.6.1. LVS 群集的部件

第 9.6.1.1 节详细列举了 LVS 路由器中每一个软件部件。

9.6.1.1. pulse

这是启动和 LVS 路由器相关的所有其它守护进程的控制进程。在引导期间,该守护进程被 /etc/rc.d/init.d/pulse 脚本启动。然后,它读取配置文件 /etc/sysconfig/ha/lvs.cf。在活跃路由器上,pulse 启动 LVS 守护进程。在备份路由器上,pulse 通过在一个用户可以配置的间隔内发出简单的心跳来判定活跃路由器的健康状况。如果活跃路由器在这个间隔过后没有答复,备份路由器就会引发失效转移。在失效转移期间,备份路由器的 pulse 指示活跃路由器的 pulse 关闭所有 LVS 服务,启动 send_arp 程序来把浮动 IP 地址重新分派给备份路由器的 MAC 地址,然后启动 lvs 守护进程。

9.6.1.2. lvs

lvs 守护进程被 pulse 调用后就会在活跃 LVS 路由器上运行。它读取配置文件 /etc/sysconfig/ha/lvs.cf,调用 ipvsadm 服务来建构和维护 IPVS 路由表,并为每个配置了的 LVS 服务分派一个 nanny 服务。如果 nanny 报告说某个真正服务器停运了,lvs 就会指示 ipvsadm 服务从 IPVS 路由表中删除真正服务器。

9.6.1.3. ipvsadm

该服务共享内核中的 IPVS 路由表。lvs 守护进程通过调用 ipvsadm 来在 IPVS 路由表内添加、改变、或删除项目来设置并管理 LVS 群集。

9.6.1.4. nanny

nanny 监视运行在活跃 LVS 路由器上的守护进程。通过这个守护进程,活跃路由器判定每个真正服务器的健康状况,还可以监视它的工作量。每个真正服务器上的每个服务都定义了一个单独的进程。

9.6.1.5. /etc/sysconfig/ha/lvs.cf

这是 LVS 群集配置文件。守护进程们都直接地或间接地从这个文件中获得配置信息。

9.6.1.6. Piranha 配置工具

这是一个用来监视、配置和管理 LVS 群集的基于万维网的工具。它是维护 /etc/sysconfig/ha/lvs.cf LVS 群集配置文件的默认工具。

9.6.1.7. send_arp

该程序当浮动 IP 地址在失效转移过程中从一个节点转移到另一个节点时发出 ARP 广播。

第10章 回顾把红帽企业 Linux 配置成 LVS 路由器之前应该采取的重要的安装后配置步骤。