如何通过手动故障转移处理 IP?

San*_*dra 4 linux ubuntu bash failover centos

我有两台相同的存储主机,其中主服务器是用户可以访问的唯一主机。如果 master 失败,那么我想手动更改 DHCP 地址,所以不是master指向10.10.10.10它,而是指向10.10.10.11.

有依赖IP地址的复制脚本,所以如果master改变了IP地址,那么我必须在脚本中修改IP,所以数据仍然从master复制到slave。

切换 IP 地址和编辑脚本是一项非常容易出错的任务。这种手动故障转移是如何完成的,有没有一种常见的做法?例如,通过添加某种抽象层?

Jen*_*y D 13

通常的做法是为服务使用单独的 IP 地址和名称,与实际服务器的 IP 地址和名称分开。

在这种情况下,你有

master 10.10.10.10
slave  10.10.10.11
Run Code Online (Sandbox Code Playgroud)

第三个名字可能是

storage 10.10.10.12
Run Code Online (Sandbox Code Playgroud)

您的客户在连接到服务时应该使用“storage”而不是“master”。

只要master在线,那么 10.10.10.12 应该是 上的虚拟接口master。如果master关闭,则将10.10.10.12 作为虚拟接口启动slave

尽可能避免在脚本中使用 IP 地址。如果在特定情况下 DNS 查找不是一个选项,请使用配置文件或 /etc/hosts 文件将主机名映射到 IP 地址。

  • @MadHatter 我看到了你的脚本,并把你“硬编码成二进制文件并丢失了源代码”。我最终就地编辑了二进制文件,用我们在 /etc/hosts 中解析的字符串替换了 IP 地址......那是一个有趣的夜晚。 (2认同)
  • 我弃牌,主要是出于钦佩。 (2认同)