一、简介
heartbeat v2 版的资源管理器(CRM)就是crm,废弃了haresouce。由于crm的配置文件都是xml格式的,没有xml功底的很难驾驭,因此我们可以使用gui的方式来配置,从而让gui来帮我们将配置文件转化为xml格式的。heartbeat保存cib.xml的位置如下:/var/lib/heartbeat/crm/cib.xml
heartbeat-ldirectord是专门为lvs设计的,它可以实现lvs的配置,不需要通过ipvsadm去管理,ldirectord的配置文件可以定义创建lvs的规则,并且还可以提供对realserver的健康监测。因此将ldirectord配置为高可用服务即可实现lvs的高可用。
二、配置
1.配置MESSAGE Layer的通信秘钥(同authkys)
2.配置MESSAGE Layer的属性信息(同ha.cf)
为了是实现是以crm来作为资源管理器的,需要在ha.cf中加入一行如下:
crm respawn 或者 crm on
开启heartbeat的服务
# service heartbeat start
3.ldirectord的配置(安装heartbeat-ldirectord)
① heartbeat-ldirectord软件包的组成:
/etc/ha.d/resource.d/ldirectord #在heartbeat的lsb的RA中加入服务 /etc/init.d/ldirectord #启动脚本 /etc/logrotate.d/ldirectord #日志轮转 /usr/lib/ocf/resource.d/heartbeat/ldirectord /usr/sbin/ldirectord /usr/share/doc/heartbeat-ldirectord-2.1.3 /usr/share/doc/heartbeat-ldirectord-2.1.3/ldirectord.cf #配置样例 /usr/share/man/man8/ldirectord.8.gz #帮助手册
因此只要将/usr/share/doc/heartbeat-ldirectord-2.1.3/ldirectord.cf拷贝到/etc/ha.d/ldirectord.cf
#cp /usr/share/doc/heartbeat-ldirectord-2.1.3/ldirectord.cf /etc/ha.d/ldirectord.cf
② 配置ldirectord.cf
# Global Directives ##全局配置参数 checktimeout=3 #健康监测超时时间 checkinterval=1 #监测间隔 fallback=127.0.0.1:80 #sorryserver autoreload=yes #配置文件是否每隔时间自动reload加载 #logfile="/var/log/ldirectord.log" #日志位置 #logfile="local0" #日志的设备 #emailalert="admin@x.y.z" #邮件告警收件人 #emailalertfreq=3600 #邮件告警间隔 #emailalertstatus=all quiescent=yes # Sample for an http virtual service virtual=192.168.192.223:80 #Vip地址和端口 real=192.168.112.100:80 gate 4 #rs的地址,端口,权重 real=192.168.112.200:80 gate 5 real=192.168.112.201:80 gate 7 fallback=127.0.0.1:80 gate #sorryserver的配置 service=http #服务类型,支持众多类型,详见man request="index.html" receive="Test Page" scheduler=wrr #调度算法 #persistent=600 #netmask=255.255.255.255 protocol=tcp checktype=negotiate checkport=80 request="index.html" receive="Test Page"
ldirectord.cf里面有很多的配置样例,参照修改即可,有问题可以直接man ldirectord
③配置CRM,实现lvs的高可用
# hb_gui & ##开启图形配置接口,需要先安装heartbeat-gui
由于登录图形控制台是通过用户名:hacluster,因此需要先给hacluster加上密码
# echo “123456” | passwd hacluster --stdin
启动后的图形界面如下:
验证服务是否起来:node1已经起来了;
node2没有启动,正常。
crm_mon可以查看集群的状态: