双机热备就是使用两台服务器共同执行同一服务,在运行过程中实时相互备份,当一台服务器出现故障时候,另一台可以立即发现故障并接管那天服务器的服务,从而在不需要人工干预的情况下自动保证系统能持续提供服务。常见的有两种情况:使用共同存储设备、使用不同存储设备(需要通过软件保持同步),在同一时间内主服务器保持激活状态,备份服务器处于监听状态,当主服务器出现故障无法启动时候,备份服务器会通过心跳诊断将备份服务器激活,保证服务正常使用。这里主要是用在提供web服务的服务器,目的是防止服务器宕机引起的服务间断。采用的是linux+heartbeat方案。下面把我的实现过程写一下:
主服务器:
系统:centos
主机名称:sev1.example.com #和从服务器名称不能相同
ip:10.0.0.211
心跳地址:100.0.0.211 #提供给心跳服务使用的,用来检控服务器运行状态
备份服务器:
系统:centos
主机名称:sev2.example.com #和主服务器名称不能相同
ip:10.0.0.212
心跳地址:100.0.0.212 #提供给心跳服务使用的,用来检控服务器运行状态
注:每太服务器需要有两块网卡;心跳地址是心跳服务用来检控服务器运行状态使用的,心跳地址随意写,只要符合规范就行,网关、子网掩码不用写,用在两块网卡之间的通信只有ip就够了,并且和其它ip不会冲突。
服务器配置完毕后需要设置以下文件:
/etc/hosts
/etc/resolv.conf
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0 # 主网卡
/etc/sysconfig/network-scripts/ifcfg-eth1 # 心跳检测的网卡
sev1与sev2主机下/etc/hosts内容的配置相同:
1 # Do not remove the following line, or various programs 2 # that require network
functionality will fail. 3 127.0.0.1 localhost.localdomain localhost 4 5 10.0.0.211 sev1.example.com sev1 # 主服务器对外ip -- 主服务器名称