一、实验拓扑如下图
二、实验说明
在这个实验中是基于corosync和ldirectord实现LVS—DR中的Director的高可用,主要演示realserver为WEb服务器的场景。具体实验需要的软件及IP配置如上图所示。
三、实验准备和RealServer的配置
请参照 http://sxhxt.blog.51cto.com/5126000/954545中的实验准备和实验步骤中的RealServer配置
四、实验步骤
#ifconfig eth0:1 172.16.200.1 broadcast 172.16.200.1 netmask 255.255.255.255 up #route add -host 172.16.200.1 dev eth0:1
#echo 1 > /proc/sys/net/ipv4/ip_forward
3、安装所有用到的包
heartbeat-libs-3.0.3-2.3.el5.i386.rpm pacemaker-cts-1.1.5-1.1.el5.i386.rpm cluster-glue-1.0.6-1.6.el5.i386.rpm pacemaker-libs-1.1.5-1.1.el5.i386.rpm cluster-glue-libs-1.0.6-1.6.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm corosync-1.2.7-1.1.el5.i386.rpm ldirectord-1.0.1-1.el5.i386.rpm resource-agents-1.0.4-1.1.el5.i386.rpm corosynclib-1.2.7-1.1.el5.i386.rpm libesmtp-1.0.4-5.el5.i386.rpm heartbeat-3.0.3-2.3.el5.i386.rpm pacemaker-1.1.5-1.1.el5.i386.rpm #yum -y --nogpgcheck localinstall *.rpm
4.配置文件(以下命令在Driector1上执行)
# cd /etc/corosync # cp corosync.conf.example corosync.conf # vim corosync.conf 添加如下内容 service { ver: 0 name: pacemaker # use_mgmtd: yes } aisexec { user: root group: root } 并设定此配置文件中 bindnetaddr后面的IP地址为你的网卡所在网络的网络地址 我们这里设定为 bindnetaddr:172.16.0.0 to_logfile: yes to_syslog: no //关闭系统日志文件 logfile: /var/log/cluster/corosync.log secauth: on //启用认证 # corosync-keygen //生成节点间的密钥文件 # scp -p corosync authkey node2:/etc/corosync/ //复制文件到Director2上 # mkdir /var/log/cluster //创建日志所用到的目录 # ssh node2 'mkdir /var/log/cluster'
# /etc/init.d/corosync start
查看pacemaker是否正常启动
# ssh node2 -- /etc/init.d/corosync start # crm status //查看集群节点的启动状态
修改忽略quorum不能满足的集群状态检查: # crm configure property no-quorum-policy=ignore 修改粘性值,所有粘性值就是更倾向于那个节点 # crm configure rsc_defaults resource-stickiness=100
# crm configure property stonith-enabled=false 结果如下图所示:
#chkconfig ldirectord off #cp /usr/share/doc/ldirectord-1.0.1/ldirectord.cf /etc/ha.d/ #vim /etc/ha.d/ldirectord.cf 修改内容如下 virtual=172.16.200.1:80 real=172.16.26.1:80 gate real=172.16.26.2:80 gate protocol=tcp checktype=negotiate checkport=80 request=".test.html" receive="ok"
# crm ra classes heartbeat lsb ocf / heartbeat pacemaker stonith# crm ra list lsb
# crm ra list ocf heartbeat # crm ra list ocf pacemaker # crm ra list stonith
通过crm ra list lsb查看到ldirector如下图所示
通过crm ra list ocf查看到IPaddr如下图所示
#crm crm(live)#configure 添加VIP
crm(live)configure#primitive vip ocf:heartbeat:IPaddr params ip=172.16.200.1 nic=eth0 broadcast=172.16.200.1 cidr_netmask=255.255.255.255 lvs_support=ture 添加ldirectord crm(live)configure#primitive ldir lsb:ldirectord crm(live)configure#commit
使用crm_mon -1查看状态,如下图
crm(live)configure#colocation ldir_with_vip inf: ldir vip //crm(live)configure#order ldir_after_vip inf: vip ldir crm(live)configure#commit