1.原理
Pacemaker+corosync+pcs是作高可用的软件,只不过luci是基于rhel6的图形管理软件,而pcs是基于rhel7的高可用集群管理软件。Pacemaker是提供高可用服务,其与corosync一起使用可以检测心跳。其实原理与RHCS(红帽高可用集群套件)基本类似。
2.实现步骤
配置网络,及yum源
vim /etc/yum.repo/westos.repo
[rehl7.3]
name=rhel7.3
baseurl=http://172.25.40.250/westos
gpgcheck=0
[HighAvailability]
name=rhel7.3
baseurl=http://172.25.40.250/westos/addons/HighAvailability
gpgcheck=0
[ResilientStorage]
name=rhel7.3
baseurl=http://172.25.40.250/westos/addons/ResilientStorage
gpgcheck=0
配置本地解析
vim /etc/hosts
172.25.40.1 server1
172.25.40.2 server2
172.25.40.3 server3
172.25.40.4 server4
集群节点server1,server2:
安装高可用管理软件
yum install pcs pacemaker corosync -y
(pacemaker 提供高可用服务,类似于rhel6的ricci;pcs类似于luci)
systemctl start pcsd #开启pcsd服务
systemctl enable pcsd #pcsd开机自启
ssh-keygen #生成登陆密钥
ssh-copy-id server1 #将ssh密钥发送到服务端,使两台机器都可以免密登陆
ssh-copy-id server2
id hacluster #修改用户密码,用来登陆
passwd hacluster #密码改为一致
pcs cluster auth server1 server2 #认证server1,server2,用户名hacluster,密码为此用户密码
pcs cluster setup --name mycluster server1 server2 #将server1,server2加入到群组
pcs cluster start --all #开启群组
pcs cluster enable --all #群组开机自启
pcs status #查看群组状态
crm_mon #监控pcs服务
crm_verify -L -V #查看群组版本错误
pcs resource standards #查看资源类型
实验测试:
认证server1,server2:
创建集群,将server1,server2添加到集群
开启集群,开机自启
查看集群状态
配置集群服务:
server1,server2:
yum install httpd -y #安装httpd服务
pcs resource create vip ocf:heartbeat:IPaddr2 ip=172.25.40.100 cidr_netmask=32 op monitor interval=30s #创建资源VIP
pcs resource create apache systemd:httpd op monitor interval=30s #创建名为apache的资源
pcs resource group add apache_group vip apache #创建资源组apache,将资源添加到资源组
pcs constraint order vip then apache #添加顺序
yum install -y fence-virt #安装fence插件
mkdir /etc/cluster
在集群外的一台主机上(这里真机上)添加fence插件
yum install fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64
##安装fence插件
fence_virtd -c ##添加接口br0,除了选择接口改为br0,其余直接回车,在/etc/fence_virt.conf查看
mkdir /etc/cluster ##创建其目录
cd /etc/cluster/
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1 ##生成fence插件密钥文件
scp fence_xvm.key root@172.25.40.1:/etc/cluster/ ##将密钥文件发送到需使用fence的虚拟机(来进行认证)
scp fence_xvm.key root@172.25.40.2:/etc/cluster/
systemctl start fence_virtd.service
cluster添加fence:
pcs stonith create vmfences fence_xvm pcmk_host_map="server1:server1;server2:server2" op monitor interval=1min
#添加fence服务;主机名:虚拟机名;fence_xvm fence类型名;op monitor interval=1min时间间隔检测。
pcs property set stonith-enabled=true #打开fence的爆头在虚拟机上服务
pcs cluster stop server2 #将server2节点停止,该节点不会自动开启,需要手动开启,此时资源自动移到另一台机器上
pcs cluster start server2
echo c >/proc/sysrq-trigger #将server1内核写崩,之后fence会重启虚拟机与服务,此时资源移动到server2。
server1成功自启,自动加入到集群,资源不回切
实现了高可用。