本文通过heartbeat+ldirectory实现LVS-DR模型中director的高可用,本文拓扑:
具体配置如下:
注意:
1,本文不再写入LVS-DR模型的搭建过程,详见我的《玩转LVS之NAT,DR,TUN模型》(见 ),直接配置director的高可用
2,dir1.jia.com和dir2.jia.com是两个director
一,准备工作:
Hearbeat通过主机名来维护节点之间的通信,故要保证两个主机的主机名能够被正常解析:
在dir1和dir2上修改hosts文件;
# vim /etc/hosts
添加如下内容:
172.16.30.2 dir1.jia.com dir1
172.16.30.3 dir2.jia.com dir2
配置dir1和dir2双机互信:
Dir1上操作:
# sed -i 's@\(HOSTNAME=\).*@\1 dir1.jia.com @g' /etc/sysconfig/network
# hostname dir1.jia.com
Dir2上操作:
# sed -i 's@\(HOSTNAME=\).*@\1 dir2.jia.com @g' /etc/sysconfig/network
# hostname dir2.jia.com
设定两个节点可以基于密钥进行ssh通信,这可以通过如下的命令实现:
Dir1上操作:
# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@dir2
Dir2山操作:
# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@dir1
安装的软件包:
安装:
# yum –y –-nogpgcheck localinstall *.rpm (两个节点都要安装)
# cd /usr/share/doc/heartbeat-2.1.4/
# cp ha.cf haresources authkeys /etc/ha.d/ 拷贝配置文件模版到/etc/ha.d下
# cd /etc/ha.d
# vim /etc/ha.d/ha.cf 编辑配置文件
修改如下内容
keepalive 2 //保持时间
deadtime 30 //死亡时间
warntime 10 //警告时间
initdead 120 //启动时间
udpport 694 //使用udp的端口
bcast eth1 //心跳接口
logfile /var/log/ha-log //日志文件
auto_failback on //失败自动退回
node dir1.jia.com //节点对应的主机名,这里面要写所有的
node dir2.jia.com
# vim authkeys //编辑认证文件
auth 2
2 sha1 jlasdlfladddd //这个后面的密码可以随意写,也可以使用自动生成随机数(#dd if=/dev/urandom bs=512 count=1 |md5sum )的方式来生成,但是节点之间是一样的。因为我们通过这个认证文件,可以防止其他的恶意集群节点加入我们的集群中,要想加入我们的集群中必须要提供相同的校验码
# chmod 400 authkeys //修改权限,这个是必须的
# vim haresources
添加:
dir1.jia.com ipvsd //指定主节点,VIP和流动资源,这里面定义的ipvsd是一个脚本,通过这个脚本来实现资源的自动切换
# cd /etc/ha.d/
# scp haresources ha.cf authkeys dir2:/etc/ha.d/