【安装方式】
作为比较成熟的HA开源软件,大致有下面的两种安装方式:
1.从官方网站http://www.linux-ha.org/wiki/Main_Page获取源码编译rpm包,没有深入研究,不敢过多评论,反正道路应该不是很平坦;
2.下载网上的rpm包或者使用某些Linux的软件管理工具下载,这种方式较为简单,但是坑也很多(经常有下载的rpm包与Linux内核不匹配的情况,然后就没法往下搞了);
【一种可用的安装方式】
简单说一下前面选择的CentOS6.4版本,使用yum安装,最后发现cluster-glue的版本匹配不上,貌似有一个全局变量的声明被注释掉了,导致无法与pacemaker配合起来使用。
操作系统选择了Ubuntu12.04的Server版本,安装方式如下:
apt-get install -y heartbeat
会自动安装Linux HA的关键服务:Heartbeat、resource-agents、cluster-agents。
【服务器IP配置】
使用了VMWare的虚拟机安装,但Heartbeat的双机通信需要通过静态IP地址做udp报文的传输,我这边玩了一个单机的:
Ubuntu下的配置文件是:/etc/network/interfaces
#the primary network interface auto eth0 #网卡 iface eth0 inet static #网络方式(静态IP) address 192.168.160.132 #IP地址 gateway 192.168.160.2 #网关 netmask 255.255.255.0 #子网掩码 broadcast 192.168.160.255 #广播地址根据个人的情况配置IP地址的相关配置项,另外需要配置一个DNS解析服务器,修改/etc/resolv.conf
nameserver 8.8.8.8
重启网卡:/etc/init.d/networking restart即可。
【Heartbeat程序配置】
1./etc/ha.d/ha.cf
该配置文件配置Heartbeat的程序信息,例如:日志文件、集群信息、节点信息等,详细说明如下:
logfacility local0 #日志记录选项 #心跳配置 keepalive 2 #集群心跳检测的时间间隔 deadtime 30 #集群节点失效的时间 warntime 10 #心跳包的延时时间 udpport 694 #集群心跳的udp端口 ucast eth0 0.0.0.0 #心跳单播配置(单播方式 本端网卡 对端IP地址),此处配置了一个不存在的IP地址,实现HA的单机模式,如果是双机,则配置对端IP地址即可 auto_failback off #主节点恢复后,服务是否切回 node host1 #服务器节点,如果有多个,则添加多项 crm respawn #使用CRM进行服务配置、管理,如果不配置,则使用/etc/ha.d/haresources的方式管理资源 debugfile /opt/heartbeat/ha-debug #Heartbeat服务日志文件
2./etc/ha.d/authkeys
auth 3 #1 crc #2 sha1 openstack 3 md5 Hello!
默认目录下并没有相关配置文件,可以自己手动建立,也可以直接修改软件包中自带的模板,因为使用pacemaker管理资源所以不需要拷贝haresources文件,如果使用了crm管理资源,而在配置文件目录含有haresources文件,日志中会提示haresources没有使用。
准确配置后,即可Heartbeat进程,使用命令/etc/init.d/heartbeat start
【Heartbeat资源配置】
使用CRM管理Heartbeat资源,可以按照下面的方式进行配置(组资源形式)
crm configure property stonith-enabled=false #是否开启STONITH服务,保持集群一致性 crm configure property no-quornm-policy=ignore #集群节点数量校验 crm configure property expected-quornm-votes=2 #集群节点数量 crm configure rsc_defaults resource-stickness=100 #资源粘性得分 crm configure primitive pry_rsc ocf:heartbeat:pry_rsc.sh op monitor interval=10s op start timeout=120s op stop timeout=60s #资源配置,编辑OCF规范的脚本,放置于/usr/lib/ocf/resource.d/heartbeat/目录下并赋予可执行权限 crm configure primitive sty_rsc ocf:heartbeat:sty_rsc.sh op monitor interval=10s op start timeout=120s op stop timeout=60s crm configure group prygroup pry_rsc #组资源配置 crm configure group stygroup sty_rsc crm configure location prefer-host1 prygroup 50: host1 #节点默认得分 crm configure colocation opposition -INFINITY: stygroup prygroup #主、备组之间对立,即:不可能在集群的某个节点上既有主组的资源,又有备组的资源
这样,基于Heartbeat和pacemaker的双机配置就完成了,通过crm_mon可观察到下面的执行情况:
这里不详细展开介绍CRM配置的详细信息了,感兴趣的同学可以下载pacemaker的官方文档研究~~~