一.pacmaker与corosync的简单介绍
1.pacmaker
pacemaker是一个开源的高可用资源管理器(CRM),位于HA集群架构中资源管理、资源代理(RA)这个层次,它不能提供底层心跳信息传递的功能,要想与对方节点通信需要借助底层的心跳传递服务,将信息通告给对方。通常它与corosync的结合方式有两种:
准备工作:
1、两台主机时间同步,最好做ntp服务以获得更加精准的时间;
2、两台主机名要与uname -n 输出的名字相同;
3、配置hosts本地解析,要与 uname -n 一致;
4、两台主机 root 用户能够基于密钥进行通信;
注意:因为一旦配置上高可用以后,资源都是受CRM所控制的,所以要将各资源的开机启动关闭
2.corosync
Coreosync在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议等。它是一个新兴的软件,2008年推出,但其实它并不是一个真正意义上的新软件,在2002年的时候有一个项目Openais它由于过大,分裂为两个子项目,其中可以实现HA心跳信息传输的功能就是Corosync ,它的代码60%左右来源于Openais. Corosync可以提供一个完整的HA功能,但是要实现更多,更复杂的功能,那就需要使用Openais了。Corosync是未来的发展方向。在以后的新项目里,一般采用Corosync,而hb_gui可以提供很好的HA管理功能,可以实现图形化的管理。另外相关的图形化有RHCS的套件luci+ricci.
二.环境部署
1.两台虚拟机:
server1 172.25.4.111;server2 172.25.4.112
火墙关闭;
selinux强制级为disabled
2.两台服务器的共同配置
(1)redhat7.3系统yum 源的配置
[root@server1 yum.repos.d]# cat westos.repo
[rhel7.3]
name=rhel7.3
baseurl=http://172.25.4.250/westos
gpgcheck=0
[HighAvailability] ##高可用
name=HighAvailability
baseurl=http://172.25.4.250/westos/addons/HighAvailability
gpgcheck=0
[ResilientStorage] ##弹性存储
name=ResilientStorage
baseurl=http://172.25.4.250/westos/addons/ResilientStorage
gpgcheck=0
[root@server1 yum.repos.d]# yum repolist
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
HighAvailability | 4.1 kB 00:00
ResilientStorage | 4.1 kB 00:00
rhel7.3 | 4.1 kB 00:00
(1/6): HighAvailability/primary_db | 27 kB 00:00
(2/6): HighAvailability/group_gz | 3.4 kB 00:00
(3/6): ResilientStorage/group_gz | 4.9 kB 00:00
(4/6): rhel7.3/primary_db | 3.9 MB 00:00
(5/6): rhel7.3/group_gz | 136 kB 00:00
(6/6): ResilientStorage/primary_db | 33 kB 00:00
repo id repo name status
HighAvailability HighAvailability 37
ResilientStorage ResilientStorage 42
rhel7.3 rhel7.3 4,751
repolist: 4,830 ##yum源由之前的4751增加为4830则配置成功
[root@server1 yum.repos.d]# scp westos.repo root@172.25.4.112:/etc/yum.repos.d ##将做好的yum源发送给server2一份
(2)软件的安装
server1
[root@server1 yum.repos.d]# yum install pacemaker corosync pcs -y
[root@server1 yum.repos.d]# systemctl start pcsd
[root@server1 yum.repos.d]# systemctl enable pcsd
server2
[root@server2 yum.repos.d]# yum install pacemaker corosync pcs -y
[root@server2 yum.repos.d]# systemctl start pcsd
[root@server2 yum.repos.d]# systemctl enable pcsd
(3)两台主机实现互相通信
server1
[root@server1 yum.repos.d]# ssh-keygen ##生成密钥
[root@server1 yum.repos.d]# ssh-copy-id server1 ##将私钥公钥都给server1
[root@server1 yum.repos.d]# ssh-copy-id server2 ##将私钥公钥都给server2
[root@server1 yum.repos.d]# ssh server2 ##实现免密连接成功
Last login: Sat Jun 22 23:06:19 2019 from 172.25.4.250
[root@server1 yum.repos.d]# ssh server1 ##实现免密连接成功
Last login: Sat Jun 22 23:06:03 2019 from 172.25.4.250
server2
[root@server2 ~]# ssh-keygen
[root@server2 ~]# ssh-copy-id server1
[root@server2 ~]# ssh-copy-id server2
[root@server2 ~]# ssh server2
Last login: Sat Jun 22 23:38:38 2019 from server1
[root@server2 ~]# ssh server1
Last login: Sat Jun 22 23:38:47 2019 from server1
(4)集群管理者密码的建立
server1
[root@server1 ~]# id hacluster
uid=189(hacluster) gid=189(haclient) groups=189(haclient)
[root@server1 ~]# passwd hacluster
Changing password for user hacluster.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
server2
[root@server2 ~]# passwd hacluster
Changing password for user hacluster.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
三.集群的创建