本章主要配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd。理解排列约束、顺序约束、位置约束
如何安装heartbeat v2、httpd、nfs、配置心跳连接、ssh密钥通信、同步时间、添加名称解析、配置yum源等请参照:
>> Linux高可用集群方案之配置heartbeat v2基于haresources配置文件的httpd高可用集群
http://ccschan.blog.51cto.com/11854461/1922966
ll 本文导航
・ 前期准备及相关说明
・ 安装hb_gui接口
・ 基于crm+hb_gui接口配置高可用集群
ll 要求
完全掌握heartbeat v2基于crm+hb_gui接口配置httpd高可用服务,理解排列约束、顺序约束、位置约束
前期准备
1、heartbeat服务主机规划
主机 | 接口 | ip | 服务 | 用途 | |
node1.chanedu.com | eth0 | 192.168.1.131 |
heartbeat httpd mysqld ipvs |
LAN数据转发 | |
eth1 | 192.168.2.131 | 心跳信息链路 | |||
vip | 192.168.1.180 | 提供给外部访问httpd的ip | |||
node1.chanedu.com | eth0 | 192.168.1.132 |
heartbeat httpd mysqld ipvs |
LAN数据转发 | |
eth1 | 192.168.2.132 | 心跳信息链路 | |||
shared.chanedu.com | eth0 | 192.168.1.150 | nfs | LAN数据转发 |
2、架构图
3、在heartbeat v2.x版本中,如果要使用crm做为集群资源管理器,必须ha.cf配置中启动crm。如在ha.cf中添加crm配置,参数为“on”,意思是使用crm作为集群管理器。crm通过mgmtd监听在tcp:5560的套接字上。
# vim /etc/ha.d/ha.cf
4、在heartbeat v2中,有一些比较使用的脚本,安装heartbeat时,这些脚本的默认位置在
/usr/lib64/heartbeat/,其中,有几个脚本需要了解下
ha_propagate
运行该脚本将会把/etc/ha.d/{ha.cf,authkeys}这两个配置文件直接复制到其他节点,并将heartbeat设置2,3,4,5系统级别开机时自动启动。需要注意的是,如果没有配置节点通过ssh加密通信,那么运行这个密钥可能需要输入N此密码,所以,在运行之前,请配置好节点使用ssh加密通信。
haresources2cib.py
运行该python脚本需要配置python环境,该脚本将自动把/etc/ha.d/haresources配置文件转换成cib.xml的格式,要只知道,heartbeat v2要使用crm集群资源管理器,是必须要有xml格式的配置文件的,所以,这个脚本非常有用。
安装hb_gui接口
1、heartbeat v2.x的hb_gui接口安装rpm为:heartbeat-gui-2.1.4-12.el6.x86_64.rpm
安装该包需要安装pygtk2-libglade-2.16.0-3.el6.x86_64.rpm包解决依赖关系。
可以使用yum -y install pygtk2-libglade 直接安装,这里我在本地安装该依赖包。
现在,在node1和node2上分别安装heartbeat_gui
# rpm -ivh pygtk2-libglade-2.16.0-3.el6.x86_64.rpm warning: pygtk2-libglade-2.16.0-3.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEYPreparing... ########################################### [100%] 1:pygtk2-libglade ########################################### [100%]# rpm -ivh heartbeat-gui-2.1.4-12.el6.x86_64.rpm Preparing... ########################################### [100%] 1:heartbeat-gui ########################################### [100%]
2、编辑/etc/ha.d/haresources文件,添加一行“crm on”,启动集群资源管理器。
# vim /etc/ha.d/ha.cf
3、运行ha_propagate复制ha.cf和authkeys,haresources.py 这两个脚本
# /usr/lib64/heartbeat/ha_propagate
# /usr/lib64/heartbeat/haresources2cib.py
注意:cib.xml配置文件并没有保存在/etc/ha.d/目录中,运行该python脚本后,生成cib.xml配置文件保存在/var/lib/heartbeat/crm
4、启动heartbeat服务,在启动之前,需要将node1和node2节点中/etc/ha.d/resources这个v1.x版本的配置文件剪切至其他目录,以免启动heartbeat服务时,会造成意外情况。
# mv /etc/ha.d/haresources /root/# ssh node2 'mv /etc/ha.d/haresources /root/'
启动heartbeat服务
使用ss命令查看heartbeat通mgmtd进程已经在监听tcp:5560端口了
我们还可以通过crm资源管理器集成的命令“crm_mon”监控集群节点状态。它能显示当前DC,该集群运行几个节点,是否在线,每隔多久刷新一次集群节点状态信息。
# crm_mon
5、创建管理集群的用户,安装heartbeat时,默认会自动创建一个hacluster用户
给hacluster用户添加密码,使用hb_gui图形界面是,需要此用户和密码登陆
# passwd haclusterChanging password for user hacluster.New password: Retype new password: passwd: all authentication tokens updated successfully.
基于crm+hb_gui接口配置http高可用集群
1、登录打开图形界面接口并登录
# hb_gui &
2、添加主资源webip、webstore、webserver。注意添加的顺序,要根据IP=>文件系统=>服务这样顺序啦添加。
这里使用IPaddr和IPaddr2的区别是使用的命令不同。IPaddr使用ifconfig添加vip,IPaddr2使用ip addr 添加vip,这里使用IPaddr2。
ip:提供给外部客户端访问的ip地址
nic:根据那块网卡添加vip,为eth0
cidr_netmask:子网掩码的长度,为24
默认是不启动的。
接着添加lsb资源,这里选择httpd,实际就是/etc/rc.d/init.d/httpd 这个脚本文件
资源添加完成
启动webip和webserver。
启动之后,我们发现这两个资源分别运行在node1和node2上,这是为什么。因为我们所定义的是本地资源,并没有添加约束,所以,资源均衡的运行在两个节点上了。
此时,当我们访问192.168.1.180时,会返回页面吗?
显然不会,这里我们访问192.168.1.180时,此IP资源在node1上,但是node1上并没有运行webserver资源,所以,这里并没有达到我们想要的高可用效果。
如果将其中的一个节点转换为standby,那么可以正常访问了吗?
当然可以,我将node2转为standby备节点,资源将会转移到node1上。
・ 定义排列约束
使webip和webserver两者永远在一起。
・定义位置约束
使某个资源倾向于运行在哪个节点
・ 定义顺序约束
基于crm+hb_gui接口配置http+mysql+nfs高可用集群
基于crm+hb_gui接口配置ipvs高可用集群
基于crm+hb_gui+ldirectored接口配置ipvs高可用集群
本文出自 “ccschan” 博客,转载请与作者联系!