要求如下:
1. 高可用性
2. 负载平衡
首次配置
1. 两台 Linux 服务器已配置,每台服务器一个静态 IP:10.17.243.11、10.17.243.12
2. Keepalived 已安装并配置一个 VRRP 实例以提供一个虚拟 IP(10.17.243.10 作为 VIP,10.17.243.11 作为主服务器,10.17.243.12 作为备份服务器)。
3. 一切正常。只要主服务器(10.17.243.11)正常运行,VIP 就会分配给它。一旦主服务器发生故障,VIP 就会分配给备份服务器(10.17.243.12)。
4. 这里的问题是所有通信都转到主服务器。
第二种配置
1. 我发现 Keepalived 的主动-主动配置可以通过定义多个 VRRP 实例来实现。这样两个服务器都有两个 IP(服务器 #1 的真实 IP 为 10.17.243.11 和虚拟 IP 为 10.17.243.10,服务器 #2 的真实 IP 为 10.17.243.12 和虚拟 IP 为 10.17.243.20)。
2. 一切正常。我们有两个可访问的 VIP(HA)。但每个 IP 的所有通信仍然会转到一台机器(根据 IP 而定,可能是服务器 #1 或 #2)。但是,我发现 DNS 上有一些技巧可以克服这个限制。但在我们的例子中,这是不可接受的。
问题:
有没有办法将一个虚拟 IP 分配给两台服务器?我的意思是两台服务器都处理一部分工作负载(就像我们在 Web 服务器负载平衡中所做的那样)?是使用 keepalived 还是其他工具?
提前致谢。
答案1
经过一番调查,我发现 IPTABES 的 CLUSTERIP 扩展对此很有用。只需谷歌一下即可。
对我来说,一开始,配置和启动系统有点困难。但最终我根据 Michael Schwartzkopff 的 PDF 文档设法做到了。不幸的是,我忘记了网络上的链接。不过,为了以防万一,我有这份文档。有关这方面的更多信息可能对我的另一个问题有用: