我有两台 Ubuntu 服务器,每台都有两张以太网卡。为了实现高可用性,我试图从一台切换到另一台。不幸的是,查询 arp 时,我总是得到第一张卡 (eth0) 的 MAC 地址,而不是第二张卡 (eth1) 的 MAC 地址,因为其 IP 地址是动态分配的。我该怎么办?
例子:
服务器 1:
Eth0
- 媒体访问控制:00:11:11:11:11:11
- IP:192.168.0.1
Eth1
- 媒体访问控制:02:33:33:33:33:33
- IP:192.168.0.3
服务器2:
Eth0
- 媒体访问控制:00:22:22:22:22:22
- IP:192.168.0.2
Eth1
- 关闭(当 server1 关闭时,server1 eth1 的 MAC 和 IP 将启动)
当我arp -a 192.168.0.3
从 Windows 机器执行命令时,结果00:11:11:11:11:11 (eth0)
是02:33:33:33:33:33 (eth1)
答案1
您尝试做的事情并非不可能,但也不是最佳的......
早在二十世纪,我们曾经这样做确切地你现在想做的事情,但现在在二十一世纪,我们使用粘合当两张卡都处于开启状态时,它可以为您提供可靠性和更高的吞吐量。
因此,不要再考虑 2 个 NICS 上的 2 个 IP 地址,而是在两个 NICS 上都使用 1 个 IP 地址,从而实现双倍的吞吐量!
:-)
答案2
您要尝试执行的操作称为“高可用性集群”。高可用性集群的基本思想是每个集群成员都有自己的 IP 地址(通常仅用于管理),并且集群有自己不同的 IP 地址。
通常这种设置由专用软件管理,但您可以尝试使用自制脚本。
基本上:
- 在每台服务器上,绑定两个 NIC,从而在每台服务器上获得高可用性 NIC。
- 将集群 IP 分配给服务器 A 上的这个新 NIC。检查您是否可以访问服务。
- 从服务器 A 取消分配集群 IP,并在服务器 B 上分配它。检查您是否可以访问服务。
现在继续弄清楚如何确保两台服务器中只有一台拥有集群 IP,如何确保没有集群 IP 的服务器拒绝接受请求,如何同步服务器之间的状态等等。