pacemaker + corosync 实现高可用

基础知识
1.pacemaker
pacemaker是一个开源的高可用资源管理器(CRM),位于HA集群架构中资源管理、资源代理(RA)这个层次,它不能提供底层心跳信息传递的功 能,要想与对方节点通信需要借助底层的心跳传递服务,将信息通告给对方。(作为通信层和提供关系管理服务,心跳引擎,检测心跳信息)
2.corosync
Corosync是集群管理套件的一部分,它在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议等

一、安装部署
1)安装软件包(server1和server4上都要安装)

yum install -y crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm

pacemaker + corosync 实现高可用_第1张图片
2)查看以及修改配置文件
rpm -ql corosync
在这里插入图片描述
修改配置文件(拷贝配置文件)

cp corosync.conf.example corosync.conf
vim corosync.conf

这里主要更改bindnetaddr(集群节点网络)
mcastaddr为多播地址,mcastport为多播端口,这里只需修改集群节点网络或者多播的其一即可。
pacemaker + corosync 实现高可用_第2张图片
添加模块:联动pcemaker服务
ver:0表示可自启动pacemaker服务
1表示不自启动pacemaker服务
这里设置0自启动。
在这里插入图片描述
3)因为集群节点的配置均相同,因此我么可以将server1上配置好的文件拷贝至server4节点上。

scp corosync.conf server4:/etc/corosync/

在这里插入图片描述
4)在server1和server4上开启服务
在这里插入图片描述
5)查看部署是否正确
两个节点上均执行如下命令进行校验,刚开始会报错
pacemaker + corosync 实现高可用_第3张图片
这里可先添加下面这条策略,就会没错了
pacemaker + corosync 实现高可用_第4张图片
执行crm命令进入资源管理器 --> help 查看命令
常用的命令有resource,configure,node,status。
pacemaker + corosync 实现高可用_第5张图片
status资源管理器查看集群的成员状态
pacemaker + corosync 实现高可用_第6张图片
configure进入到资源管理器的配置模式,show命令可查看corosync的配置信息
pacemaker + corosync 实现高可用_第7张图片
到这里集群的部署已经完毕,接下来就是给集群添加相应的服务
二、添加服务
1)添加简单的ip服务

crm(live)configure# primitive vip ocf:heartbeat:IPaddr2 params ip=172.25.96.100 cidr_netmask=24 op monitor interval=30s

这条命令看似很长,其实都可以用补齐,只要记忆ocf表示集群服务脚本。
修改后还需要commit进行保存。
在这里插入图片描述

这里出现错误提示,显示是STONITH的问题,可先直接保存(注:若进行了上述第五步的操作,则这里不显示报错)。

查看服务是否正常,这里服务并没有启动,想到可能和上面添加IP服务提示的错误有关,尝试关闭STONITH,IP服务正常开启
在这里插入图片描述
pacemaker + corosync 实现高可用_第8张图片
2)测试健康检查功能
在server4上使用crm_mon 监控服务
pacemaker + corosync 实现高可用_第9张图片
pacemaker + corosync 实现高可用_第10张图片
现在vip工作在server1,尝试关闭server1的服务,server4上查看监控状态
在这里插入图片描述
server4上
pacemaker + corosync 实现高可用_第11张图片

重新开启server1的服务后,server1又自动添加到online内,恢复正常。
在这里插入图片描述
pacemaker + corosync 实现高可用_第12张图片

注:若关闭服务,则为OFFline;若是一个双结点集群,当有一端宕掉服务时,另一结点则会自动丢弃资源,也不再接管,因为一个结点不能构成集群。
所以两个节点的集群,应该设置no-quorum-policy为ignore忽略集群对结点数目的控制,如果一个节点宕掉,另一个节点仍能正常运行。

解决方法:设置no-quorum-policy=ignore
在这里插入图片描述
再次测试:
server1上宕掉服务
在这里插入图片描述
server4查看:
pacemaker + corosync 实现高可用_第13张图片
由server4接管资源,至此我们添加的ip资源就已经全部完成。
pacemaker + corosync 实现高可用_第14张图片

这样我们的pacemaker+corosync的高可用就部署完毕了,接下来的博客将在此基础上再实现haproxy,nginx的负载均衡和高可用。

你可能感兴趣的:(linux,运维)