我有两个相同的存储主机,其中主主机是用户唯一可以访问的主机。如果主主机发生故障,那么我想手动更改 DHCP 地址,因此它应该指向master
而不是。10.10.10.10
10.10.10.11
有一些复制脚本依赖于 IP 地址,因此如果主服务器更改了 IP 地址,那么我必须修改脚本中的 IP,这样数据仍然会从主服务器复制到从服务器。
问题
切换 IP 地址和编辑脚本是一项很容易出错的任务。是否有一种常见的做法来完成这种手动故障转移?例如通过添加某种抽象层?
答案1
常见的做法是为服务设置单独的 IP 地址和名称,与实际服务器的 IP 地址和名称分开。
在这种情况下,你有
master 10.10.10.10
slave 10.10.10.11
第三个名字可能是
storage 10.10.10.12
当您的客户端连接到服务时,应该使用“存储”而不是“主”。
只要master
处于在线状态,则 10.10.10.12 应为 上的虚拟接口master
。如果master
处于关闭状态,则将 10.10.10.12 作为 上的虚拟接口启动slave
。
尽量避免在脚本中使用 IP 地址。如果在特定情况下无法使用 DNS 查找,请使用配置文件或 /etc/hosts 文件将主机名映射到 IP 地址。
答案2
如果您想要一个更自动化的故障转移解决方案,那么请查看使用 VRRP 协议的 keepalived 之类的解决方案。
更多信息请见这里
虚拟 IP 10.10.10.10(这是一个虚拟 IP 地址,在两台主机上均配置)
主 IP 10.10.10.11
从属 IP 10.10.10.12
这样,您就不必在从属设备上启动第二个接口,并且停机时间非常短(可能一秒钟左右)。