客户有两台主机,一台是Master,另一个做为Standby Master。两台主机使用不同的IP地址,当Master主故障时,将手动启动Standby Master做为备用主机支撑业务。 然而很难把所有应用的接口进行IP地址的修改。那么,有没有最简单可行的方法,不修改应用,而让各种应用在Master主机切换后仍能方便的连接呢?有的,可以考虑使用虚拟IP(VIP)。 虚拟IP,就是一个真实的主机,除了对外提供一个真实IP之外,还有一个虚拟的IP,使用这两个IP中的任意一个,都可以连接到这台主机。所以在项目中数据库连接可以配置这个虚拟的IP,在主机发生故障无法提供服务时,动态将这个虚拟IP切换到备用主机。其实现原理,即是利用ARP协议。 配置方法: 假设主机只有一个网卡eth0,其对应的IP为192.168.205.101,现对其设置一个虚拟IP地址192.168.205.100。可以直接合适以下命令行:
ifconfig eth0:1 192.168.205.100/24 up
是不是很简单?如果要删除,可以:
ipconfig eth0:1 down
或
ip addr del 192.168.205.100 dev eth0
注意:
- 以上配置,当服务器重启或网络重启后将失效。
- 实际网络运维中,更常见的是使用keepalive配置实现双机热备以及自动切换主备操作。此处不做赘述。