红帽企业 Linux LVS 群集包括两个基本组群:LVS 路由器和真正服务器。要防止单一失效点,每组都应该至少包含两个成员系统。
LVS 路由器组应该包括两个完全相同或非常相似的运行红帽企业 Linux 的系统。一个系统充当活跃 LVS 路由器,另一个处于热备份状态,因此它们需要在能力方面尽可能地相近。
在选择和配置真正服务器组的硬件之前,你必须决定要使用三种 LVS 拓扑中的哪一种。
NAT 拓扑在利用已有硬件方面提供了较大的回旋余地,但是它在处理较大载量方面的能力却很有限。这是因为所有出入群集的分组都经过 LVS 路由器。
从网络布局角度而言,利用 NAT 选路的 LVS 群集拓扑是最简单的一种形式。这是因为群集只需要一个到公共网络的出入口。真正服务器通过 LVS 路由器来答复所有请求,因此它们都位于自己的专用网络。
从群集硬件角度而言,NAT 拓扑是最灵活的一种,因为真正服务器不必是 Linux 机器就能够在群集中正确运行。在 NAT 群集中,每个真正服务器只需要一个 NIC,因为它只会答复 LVS 路由器。而 LVS 路由器则需要两个 NIC 才能在两个网络间为交通选路。由于这种拓扑在 LVS 路由器方面制造了一个瓶颈,你可以在每个 LVS 路由器上使用吉位以太网网卡来增加 LVS 路由器能够处理的带宽。若使用了吉位以太网,任何连接真正服务器和 LVS 路由器的转换器就必须至少有两个吉位以太网端口来有效地处理载量。
因为 NAT 拓扑需要在某些配置中使用 iptables,Piranha 配置工具之外你可能还需要进行不少的软件配置。特别是 FTP 服务和对防火墙标记的使用,你需要对 LVS 路由器进行额外的手工配置才能正确地为请求选路。
要设置 NAT LVS 群集,管理员必须首先配置 LVS 路由器上的用于公共网络和专用网络的网络接口。在这个例子中,LVS 路由器的公共接口(eth0)将会在 192.168.26/24 网络上(我知道这不是一个可选路发送的 IP,但是让我们假设 LVS 路由器前面有一个防火墙),连接到真正服务器的专用接口(eth1)将会在 10.11.12/24 网络上。
因此,在活跃的或主(primary)LVS 路由器节点上,公共接口的网络脚本 /etc/sysconfig/network-scripts/ifcfg-eth0 可能和以下相似:
DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.26.9 NETMASK=255.255.255.0 GATEWAY=192.168.26.254 |
LVS 路由器上的专用 NAT 接口的 /etc/sysconfig/network-scripts/ifcfg-eth1 文件可能和以下相似:
DEVICE=eth1 BOOTPROTO=static ONBOOT=yes IPADDR=10.11.12.9 NETMASK=255.255.255.0 |
在这个例子中,LVS 路由器的公共接口的 VIP 将会是 192.168.26.10,NAT 或专用接口的 VIP 将会是 10.11.12.10。因此,真正服务器把请求送会 NAT 接口的 VIP 这一点就是一个必需步骤。
![]() | 重要 |
---|---|
本节中的以太网接口配置范例是用于 LVS 路由器的真正 IP 地址,不是浮动 IP 地址。要配置公共和专用浮动 IP 地址,管理员应该使用 Piranha 配置工具,如第 12.4 节和第 12.6.1 节所示。 |
配置了主 LVS 路由器节点的网络接口后,你需要配置备份 LVS 路由器的真正网络接口 — 注意不要让 IP 地址和网络上的其它 IP 地址发生冲突。
![]() | 重要 |
---|---|
确定备份节点服务上的每个接口所服务的网络都和主节点上的接口所服务的网络相同。例如,如果主节点上的 eth0 连接公共网络,备份节点上的 eth0 就必须也连接到公共网络。 |
配置 NAT 群集中的真正服务器网络接口时要记住的最重要事情是把 NAT 的网关设置成 LVS 路由器的浮动 IP 地址。在这个例子中,该地址为 10.11.12.10。
![]() | 注记 |
---|---|
一旦真正服务器上的网络接口被启用了,这些机器将无法使用其它方法来连接公共网络。这种情况是正常的。不过,你将能够联系 LVS 路由器的专用接口的真正 IP 地址,在这个例子中是 10.11.12.8。 |
因此真正服务器的 /etc/sysconfig/network-scripts/ifcfg-eth0 文件可能会和以下相似:
DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=10.11.12.1 NETMASK=255.255.255.0 GATEWAY=10.11.12.10 |
![]() | 警告 |
---|---|
如果真正服务器上不止有一个网络接口配置了 GATEWAY= 行,第一个被启用的接口就会成为网关。因此,如果 eth0 和 eth1 被配置了,而 eth1 被用于 LVS 群集,真正服务器可能就不能正确为请求选路。 最好是关闭无关网络接口。这可以通过在 /etc/sysconfig/network-scripts/ 目录中用于这些接口的网络脚本中设置 ONBOOT=no,或确保网关在第一个被启用的网络接口中被正确设置来达到。 |
在一个简单的 NAT LVS 群集中,每个群集只使用一个端口,如端口80上的 HTTP,管理员只需要在 LVS 路由器上启用分组转发就可以使请求被正确地在真正服务器和外界之间传递。关于启用分组转发的说明,请参阅第 10.5 节。当集群的服务需要不止一个端口而在某次用户会话中连接同一个真正服务器时,你就需要更多配置。关于使用防火墙标记来创建多端口服务的信息,请参阅第 11.3 节。
一旦 LVS 路由器启用了转发,真正服务器被设置,并且在运行集群的服务,请使用 Piranha 配置工具来配置如第12章 所示的群集。
![]() | 警告 |
---|---|
不要通过手工编辑网络脚本或使用网络配置工具来为 eth0:1 或 eth1:1 配置浮动 IP 地址。相反,使用如第 12.4 节和第 12.6.1 节所示的 Piranha 配置工具来配置任何群集相关的虚拟接口。 |
结束后,启动 pulse 服务,如第 12.8 节所示。一旦 pulse 被启动运行,活跃 LVS 路由器就会开始为真正服务器集合选路发送请求。