Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

时间:2022-05-18 03:10:10

本章主要配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd。理解排列约束、顺序约束、位置约束

Linux高可用集群方案之配置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、架构图

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

3、在heartbeat v2.x版本中,如果要使用crm做为集群资源管理器,必须ha.cf配置中启动crm。如在ha.cf中添加crm配置,参数为“on”,意思是使用crm作为集群管理器。crm通过mgmtd监听在tcp:5560的套接字上。

# vim /etc/ha.d/ha.cf

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd


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

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

3、运行ha_propagate复制ha.cf和authkeys,haresources.py 这两个脚本

# /usr/lib64/heartbeat/ha_propagate

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

# /usr/lib64/heartbeat/haresources2cib.py

注意:cib.xml配置文件并没有保存在/etc/ha.d/目录中,运行该python脚本后,生成cib.xml配置文件保存在/var/lib/heartbeat/crm

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd


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服务

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

使用ss命令查看heartbeat通mgmtd进程已经在监听tcp:5560端口了

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

我们还可以通过crm资源管理器集成的命令“crm_mon”监控集群节点状态。它能显示当前DC,该集群运行几个节点,是否在线,每隔多久刷新一次集群节点状态信息。

# crm_mon

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd


5、创建管理集群的用户,安装heartbeat时,默认会自动创建一个hacluster用户

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

给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 &

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpdLinux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

2、添加主资源webip、webstore、webserver。注意添加的顺序,要根据IP=>文件系统=>服务这样顺序啦添加。

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

这里使用IPaddr和IPaddr2的区别是使用的命令不同。IPaddr使用ifconfig添加vip,IPaddr2使用ip addr 添加vip,这里使用IPaddr2。

ip:提供给外部客户端访问的ip地址

nic:根据那块网卡添加vip,为eth0

cidr_netmask:子网掩码的长度,为24

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

默认是不启动的。

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

接着添加lsb资源,这里选择httpd,实际就是/etc/rc.d/init.d/httpd 这个脚本文件

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

资源添加完成

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

启动webip和webserver。

启动之后,我们发现这两个资源分别运行在node1和node2上,这是为什么。因为我们所定义的是本地资源,并没有添加约束,所以,资源均衡的运行在两个节点上了。

此时,当我们访问192.168.1.180时,会返回页面吗?

显然不会,这里我们访问192.168.1.180时,此IP资源在node1上,但是node1上并没有运行webserver资源,所以,这里并没有达到我们想要的高可用效果。

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

如果将其中的一个节点转换为standby,那么可以正常访问了吗?

当然可以,我将node2转为standby备节点,资源将会转移到node1上。

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd



・ 定义排列约束 

使webip和webserver两者永远在一起。

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

・定义位置约束 

使某个资源倾向于运行在哪个节点

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

・ 定义顺序约束 

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd

Linux高可用集群方案之配置heartbeat v2基于crm+hb_gui接口,配置高可用httpd




  基于crm+hb_gui接口配置http+mysql+nfs高可用集群 


  基于crm+hb_gui接口配置ipvs高可用集群 


  基于crm+hb_gui+ldirectored接口配置ipvs高可用集群 


本文出自 “ccschan” 博客,转载请与作者联系!