pacemaker+Corosync 实现高可用

一、pacemaker 概述
pacemaker是一个开源的高可用资源管理器(CRM),位于HA集群架构中资源管理、资
源代理(RA)这个层次,它不能提供底层心跳信息传递的功能,要想与对方节点通信
需要借助底层的心跳传递服务,将信息通告给对方。(作为通信层和提供关系管理>服务,心跳引擎,检测心跳信息)

Pacemaker特点

  1. 主机和应用程序级别的故障检测和恢复
  2. 几乎支持任何冗余配置
  3. 同时支持多种集群配置模式
  4. 配置策略处理法定人数损失(多台机器失败时)
  5. 支持应用启动/关机顺序
  6. 支持,必须/必须在同一台机器上运行的应用程序
  7. 支持多种模式的应用程序(如主/从)
  8. 可以测试任何故障或群集的群集状态

二、Corosync概述
Corosync是集群管理套件的一部分,它在传递信息的时候可以通过一个简单的配置
文件来定义信息传递的方式和协议等

三、服务配置

1.打开两台虚拟机,yum源相同且完整(server1,server4)

全部做以下操作
安装服务
pacemaker+Corosync 实现高可用_第1张图片

pacemaker+Corosync 实现高可用_第2张图片

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

打开服务   /etc/init.d/corosync start

2.在server1中
[root@server1 ~]# cd /etc/corosync/
[root@server1 corosync]# cp corosync.conf.example corosync.conf

编辑corosync的配置文件
[root@server1 corosync]# vim corosync.conf

pacemaker+Corosync 实现高可用_第3张图片

pacemaker+Corosync 实现高可用_第4张图片

如果想让pacemaker在corosync中以插件方式启动,需要 在corosync.conf文件中加上如下内容

两台服务配置保持一致

[root@server1 corosync]# scp corosync.conf server4:/etc/corosync/

[root@server1 corosync]# /etc/init.d/corosync restart

重启服务后查看日志,确定服务配置没有错误
[root@server1 corosync]# tail -f /var/log/cluster/corosync.log

关于crm shell的使用
---crm可以显示并修改配置文件
---直接执行crm命令进行交互式修改配置文件,交互式输入的内容被记 录在配
置文件中
---show 显示配置文件
---commit提交
---如果添加资源时出错,首先进入resource,将添加的资源stop,然后进 入cofigure,delete添加错误的资源

[root@server1 corosync]# crm   进入交互式shell
crm(live)# configure  进入configure
crm(live)configure# show 执行show我们就可以看到配置文件的内容

pacemaker+Corosync 实现高可用_第5张图片

因为还没有对fence进行配置,先将stonith-enabled 设置为 false,表示资源不会迁移


#添加vip资源,params 指定参数 op monitor 监控配置,interval指定执行操作的频率,单位:秒

pacemaker+Corosync 实现高可用_第6张图片
监控节点状态的变化
[root@server4 ~]# crm_mon

[root@server1 corosync]# crm node standby
将所有资源从节点上移走,执行此命令后会看到,server4接替了server1的工作

pacemaker+Corosync 实现高可用_第7张图片

pacemaker+Corosync 实现高可用_第8张图片
[root@server1 corosync]# crm node online
#在这里要注意,当另一个节点online后,节点间不会进行回切,这样避免了因资源
接管导致的资源丢失

如果是两个节点的集群,应该设置no-quorum-policy为ignore,如果一个节点down掉,另一个节点仍能正常运行

pacemaker+Corosync 实现高可用_第9张图片

由于corosync默认是启用stonith功能的,但是没有stonith设备,如果直接去配置资源的话,由于没有stonith 功能,所以资源的切换并不会完成,所以要禁用stonith功能,现在的环境no-quorum-policy没有设置为ignore,在这种情况 下,如果一个节点down掉,这个集群就无法正常工作,因为默认对集群有健康检查,如果节点数小于2,便认为无法组成集群,该集群也就无法工作了。

[root@server1 corosync]# crm
crm(live)# configure

在这里重新设置为ignore做实验,这时即使一个节点挂掉了,另一个节点也会正常工作

crm(live)configure# property no-quorum-policy=ignore

crm(live)configure# commit

测试:

关掉任何一个节点,一切都不会受影响

pacemaker+Corosync 实现高可用_第10张图片

添加fence_xvm

stonith_admin -I fence_xvm   查找可安装的fence

yum provides */fence_xvm  安装

 stonith_admin -M -a fence_xvm  查看fence使用命令

进入crm将fence的配置添加

查看fence 状态

pacemaker+Corosync 实现高可用_第11张图片

你可能感兴趣的:(pacemaker+Corosync 实现高可用)