Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd
本章主要配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd。理解排列约束、顺序约束、位置约束http://www.heartbeat.com/wp-content/uploads/2016/05/heartbeat-logo-300x300.png
如何安装heartbeat v2、httpd、nfs、配置心跳连接、ssh密钥通信、同步时间、添加名称解析、配置yum源等请参照:
>> Linux高可用集群方案之配置heartbeat v2基于haresources配置文件的httpd高可用集群
http://ccschan.blog.运维网.com/11854461/1922966
ll 本文导航
· 前期准备及相关说明
· 安装hb_gui接口
· 基于crm+hb_gui接口配置高可用集群
ll 要求
完全掌握heartbeat v2基于crm+hb_gui接口配置httpd高可用服务,理解排列约束、顺序约束、位置约束
前期准备
1、heartbeat服务主机规划
主机接口ip服务用途node1.chanedu.cometh0192.168.1.131 heartbeat
httpd
mysqld
ipvs
LAN数据转发
eth1192.168.2.131心跳信息链路
vip192.168.1.180提供给外部访问httpd的ipnode1.chanedu.cometh0192.168.1.132 heartbeat
httpd
mysqld
ipvs
LAN数据转发
eth1192.168.2.132心跳信息链路shared.chanedu.cometh0192.168.1.150nfsLAN数据转发2、架构图
https://s1.运维网.com/wyfs02/M00/94/DE/wKioL1kPLzzDNT7dAAIw_DfsRMs892.jpg
3、在heartbeat v2.x版本中,如果要使用crm做为集群资源管理器,必须ha.cf配置中启动crm。如在ha.cf中添加crm配置,参数为“on”,意思是使用crm作为集群管理器。crm通过mgmtd监听在tcp:5560的套接字上。
# vim /etc/ha.d/ha.cfhttps://s4.运维网.com/wyfs02/M02/95/41/wKioL1kTNEDTmTaUAAAN2jr9zvk978.png
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: NOKEY
Preparing... ###########################################
1:pygtk2-libglade ###########################################
# rpm -ivh heartbeat-gui-2.1.4-12.el6.x86_64.rpm
Preparing... ###########################################
1:heartbeat-gui ########################################### 2、编辑/etc/ha.d/haresources文件,添加一行“crm on”,启动集群资源管理器。
# vim /etc/ha.d/ha.cfhttps://s4.运维网.com/wyfs02/M02/95/41/wKioL1kTNEDTmTaUAAAN2jr9zvk978.png
3、运行ha_propagate复制ha.cf和authkeys,haresources.py 这两个脚本
# /usr/lib64/heartbeat/ha_propagatehttps://s3.运维网.com/wyfs02/M01/95/42/wKiom1kTNNeDjjXnAAAqWhSV05U546.png
# /usr/lib64/heartbeat/haresources2cib.py注意:cib.xml配置文件并没有保存在/etc/ha.d/目录中,运行该python脚本后,生成cib.xml配置文件保存在/var/lib/heartbeat/crm
https://s2.运维网.com/wyfs02/M00/95/61/wKioL1kUbuizjYqnAAAJupg7F_M890.png
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服务
https://s1.运维网.com/wyfs02/M01/95/63/wKioL1kUc9GgjzEpAAAS-kXq1go073.png
使用ss命令查看heartbeat通mgmtd进程已经在监听tcp:5560端口了
https://s2.运维网.com/wyfs02/M00/95/63/wKioL1kUeJjhwqxOAAATVzF3kSo581.png
我们还可以通过crm资源管理器集成的命令“crm_mon”监控集群节点状态。它能显示当前DC,该集群运行几个节点,是否在线,每隔多久刷新一次集群节点状态信息。
# crm_monhttps://s2.运维网.com/wyfs02/M00/95/42/wKiom1kTNZOiVSiUAAA64CBubfY946.png
5、创建管理集群的用户,安装heartbeat时,默认会自动创建一个hacluster用户
https://s3.运维网.com/wyfs02/M01/95/42/wKioL1kTNfeTNq0sAAAWAf_fWS8433.png
给hacluster用户添加密码,使用hb_gui图形界面是,需要此用户和密码登陆
# passwd hacluster
Changing password for user hacluster.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
基于crm+hb_gui接口配置http高可用集群
1、登录打开图形界面接口并登录
# hb_gui &https://s5.运维网.com/wyfs02/M00/95/97/wKioL1kXEMmQqZWAAABayT5iZaY846.pnghttps://s4.运维网.com/wyfs02/M01/95/97/wKiom1kXEI-xBCLTAACIwWQQ-dY859.png
2、添加主资源webip、webstore、webserver。注意添加的顺序,要根据IP=>文件系统=>服务这样顺序啦添加。
https://s4.运维网.com/wyfs02/M00/95/96/wKioL1kXClHAw2JcAADQMcnWX5A876.png
这里使用IPaddr和IPaddr2的区别是使用的命令不同。IPaddr使用ifconfig添加vip,IPaddr2使用ip addr 添加vip,这里使用IPaddr2。
ip:提供给外部客户端访问的ip地址
nic:根据那块网卡添加vip,为eth0
cidr_netmask:子网掩码的长度,为24
https://s4.运维网.com/wyfs02/M00/95/96/wKioL1kXClHA9-CGAADEPo2MSoY086.png
默认是不启动的。
https://s5.运维网.com/wyfs02/M01/95/96/wKiom1kXClLzOh-YAAD-OXHl298004.png
https://s5.运维网.com/wyfs02/M01/95/96/wKiom1kXClKBEJBvAADfhUvmDIY612.png
接着添加lsb资源,这里选择httpd,实际就是/etc/rc.d/init.d/httpd 这个脚本文件
https://s2.运维网.com/wyfs02/M01/95/96/wKioL1kXClOjbh4oAACioV0_zCU952.png
资源添加完成
https://s2.运维网.com/wyfs02/M01/95/96/wKioL1kXClPxDPbWAAEEWrGY4Zc998.png
启动webip和webserver。
启动之后,我们发现这两个资源分别运行在node1和node2上,这是为什么。因为我们所定义的是本地资源,并没有添加约束,所以,资源均衡的运行在两个节点上了。
此时,当我们访问192.168.1.180时,会返回页面吗?
显然不会,这里我们访问192.168.1.180时,此IP资源在node1上,但是node1上并没有运行webserver资源,所以,这里并没有达到我们想要的高可用效果。
https://s2.运维网.com/wyfs02/M00/95/97/wKioL1kXEd-TRd1tAAEbOty6KWI530.png
如果将其中的一个节点转换为standby,那么可以正常访问了吗?
当然可以,我将node2转为standby备节点,资源将会转移到node1上。
https://s2.运维网.com/wyfs02/M00/95/97/wKioL1kXFBqBOJEHAAD9ipW8OMA993.png
· 定义排列约束
使webip和webserver两者永远在一起。
https://s5.运维网.com/wyfs02/M02/95/96/wKioL1kXClTjlK03AADxv3a6Q3A377.png
https://s5.运维网.com/wyfs02/M02/95/98/wKioL1kXGI6glV2sAAFDSPT4b0Y527.png
https://s3.运维网.com/wyfs02/M02/95/98/wKioL1kXGWfS2xzbAAEqM3Fb2Oo679.png
·定义位置约束
使某个资源倾向于运行在哪个节点
https://s2.运维网.com/wyfs02/M00/95/97/wKiom1kXClfw1Ju6AAEEjj66wOE713.png
https://s2.运维网.com/wyfs02/M00/95/96/wKioL1kXClfhE57IAAEK-UVcBso904.png
https://s3.运维网.com/wyfs02/M00/95/96/wKioL1kXCljxjOrhAAF17YiMW6c113.png
https://s1.运维网.com/wyfs02/M02/95/98/wKiom1kXG5zAbCEyAAEkKHO_Prw042.png
https://s2.运维网.com/wyfs02/M02/95/98/wKioL1kXG9nQrdWcAAEm7LQKtFQ041.png
· 定义顺序约束
https://s4.运维网.com/wyfs02/M01/95/96/wKioL1kXClnCx4QCAAEUSzBPUZo758.png
https://s4.运维网.com/wyfs02/M01/95/97/wKiom1kXClmQsX8nAAFd550VtP8535.png
基于crm+hb_gui接口配置http+mysql+nfs高可用集群
基于crm+hb_gui接口配置ipvs高可用集群
基于crm+hb_gui+ldirectored接口配置ipvs高可用集群
页:
[1]