corosync+pacemaker实验记录

OS: RHEL 6.5 64bit
corosync: 1.4.7 --yum方式安装
pacemaker: 1.1.2 --作为corosync依赖包自动安装

pacemaker是heartbeat发展到3.0独立出来的产物,红帽6.0系列上,使用yum安装corosync,默认会安装pacemaker作为CRM。

pacemaker常用配置工具:crmsh pcs
crmsh需要独立安装rpm包

主要配置文件:

/etc/corosync/corosync.conf
/etc/crm/crm.conf

实验主机:A B

资源    RA提供方(crm->ra->classes;crm->ra->info XXX)
webip    ocf:heartbeat:Ipaddr2
webfs    ocf:heartbeat:Filesystem
webdb    lsb:mysqld
apache    ocf:heartbeat:apache(params比较多)

定义资源:
crm->configure->group/primitive

primitive apache ocf:heartbeat:apache params configfile="/usr/local/apache2/conf/httpd.conf" httpd="/usr/local/apache2/bin/httpd" port="80" statusurl="http://127.0.0.1/server-status" op monitor timeout=20s interval=10s op start timeout=40s op stop timeout=60s op status timeout=30s

定义约束:
crm->configure->colocation/order/其他

order start_order Mandatory: webfs:start webdb:start apache:start
关键字    ID    kind或者分数:[资源ID:选项]..

展示配置:
crm->configure->show/show xml

编辑配置文件:
crm->configure->edit

注:配置完成请先执行verify命令,再执行commit

standby/online:
crm->node->standby [node名,默认为本地节点] /online

监控:
crm->status
crm_mon

重要的地方:
1.请在一台主机上启动和停止本地和其他节点(ssh互信方式)的corosync服务!否则有可能出现脑裂的情况。(在实验中,在A节点进行先启后停corosync服务再启操作后,出现了与B节点资源争用的情况;而在B节点上通过SSH启动A节点服务,则没有出现资源争用,原因不明。)
2.双机情况下应配置票数不足时集群策略,如:
crm->configure->property no-quorum-policy=ignore
否则资源将无法切换

有趣的地方:
本次实验中,我使用了共享文件系统/share下的目录www作为web服务器虚拟地址的DocumentRoot:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/share/www/"
    ServerName www.test.kc
    ServerAlias test.kc
    ErrorLog "logs/test.kc-error_log"
    CustomLog "logs/test.kc-access_log" common
</VirtualHost>

在实验过程对主机服务器多次启停的操作过程中,多次出现了资源apache无法正常启动,并标注为unmanaged,而其他资源能够成功切换的情况:

Online: [ ha-test1 ha-test2 ]
webip   (ocf::heartbeat:IPaddr2):       Started ha-test2
webfs   (ocf::heartbeat:Filesystem):    Started ha-test2
webdb   (lsb:mysqld):   Started ha-test2
apache  (lsb:apache2):  FAILED ha-test1 (unmanaged)
Failed actions:
    apache_stop_0 on ha-test1 ‘unknown error‘ (1): call=611, status=complete, last-rc-change=‘Sun Jan  1 17:51:51 2017‘, queued=0ms, exec=51ms
    apache_stop_0 on ha-test1 ‘unknown error‘ (1): call=611, status=complete, last-rc-change=‘Sun Jan  1 17:51:51 2017‘, queued=0ms, exec=51ms

接下来怎么做呢?
首先执行service corosync stop,会一直提示unload,猜想原因是因为共享文件系统挂载在A节点,而apache服务运行在B节点,B节点上执行apache服务的stop操作,会因为找不到配置文件中配置的共享文件存储路径而报错,无法完成stop操作:

Syntax error on line 66 of /usr/local/apache2/conf/httpd.conf:
DocumentRoot must be a directory

于是我只能想到用杀进程的方式来强制停止corosync了:

ps -ef | grep corosync | grep -v grep |awk ‘{print $2}‘  | xargs kill -9

后来我一想,既然找不到该路径,导致关不掉apache,那我给他mkdir一个本地的目录让他找好了,在A/B主机上执行:

mkdir /share/www

再次启动双机的corosync服务时,多次启停操作,apache资源都成功切过去了,再没有出现上面的情况。
不知道算不算解决了问题,欢迎指正。

时间: 2024-11-25 08:31:36

corosync+pacemaker实验记录的相关文章

高可用集群实验四:DRBD+corosync+pacemaker

在上一篇文章基础上,在两台服务器上添加DRBD,并通过corosync+pacemaker来启动: 先说明一下:实验中用的操作系统为CentOS 6.4 (内核版本为2.6.32-358.e16.x86_64),并没有自带drbd内核模块(2.6.33开始才有自带),需要自己添加.而网上找到的rpm包对CentOS 6.4的识别有问题,一直提示需要2.6.32-358.e16.x86_64的内核(实际上本身就是这个版本),网上也有其它人说在CentOS6.4上装有问题.所以下面的例子就不通过rp

LINUX集群学习二——pacemaker+corosync+pcs实验

实验目的:使用corosync作为集群消息事务层(Massage Layer),pacemaker作为集群资源管理器(Cluster Resource Management),pcs作为CRM的管理接口工具.要求实现httpd的高可用功能.环境:centos 6.9Pacemaker: 1.1.15Corosync:1.47Pcs: 0.9.155准备工作: 配置SSH双机互信; 配置主机名解析/etc/hosts文件: 关闭防火墙:service iptables stop 关闭selunux

HA集群之CoroSync+Pacemaker浅析及实现

一.CoroSync corosync最初只是用来演示OpenAIS集群框架接口规范的一个应用,可以说corosync是OpenAIS的一部分,然而后面的发展超越了官方最初的设想,越来越多的厂商尝试使用corosync作为集群解决方案.如Redhat的RHCS集群套件就是基于corosync实现. corosync只提供了message layer(即实现HeartBeat + CCM),而没有直接提供CRM,一般使用Pacemaker进行资源管理. OpenAIS是基于SA Forum 标准的

高可用集群之Corosync+Pacemaker及用CRM命令和NFS-server构建一个HA高可用集群

红帽5.0使用的是OpenAIS作为内核中的信息通信API,然后借助CMAN作为Messager Layer,再使用ramanager作为CRM进行资源的管理 Corosync具有比heartbeat在设计上更好的信息通信机制 红帽6.0直接使用Corosync用来作为集群的Messager Layer 不同的公司的API机制所调用的库,函数类型,返回方式各不相同,这就必须使用一个标准,使不同公司的API保持最大的兼容 比如你买了华硕的主板使用其他公司的鼠标照样可以使用 应用接口规范(AIS)就

corosync+pacemaker+crmsh+DRBD实现数据库服务器高可用集群构建

  DRBD (DistributedReplicated Block Device) 是 Linux 平台上的分散式储存系统.其中包含了核心模组,数个使用者空间管理程式及 shell scripts,通常用于高可用性(high availability, HA)丛集.DRBD 类似磁盘阵列的RAID 1(镜像),只不过 RAID 1 是在同一台电脑内,而 DRBD 是透过网络. DRBD 是以 GPL2 授权散布的自由软件. 实验架构图: 一.高可用集群构建的前提条件 1.主机名互相解析,实现

Linux运维 第五阶段(四) corosync&pacemaker

Linux运维 第五阶段(四)corosync&pacemaker 一.相关概念: 补充 { what is high Availability? A=MTBF/(MTBF+MTTR) MTBF(mean time betweenfailures平均无故障时间) MTTR(mean time to repair平均修复时间) two ways improve availability? increase MTBF to very large values reduce MTTR to very

corosync+pacemaker+crmsh实现高可用

目录 1.引言及环境介绍 2.高可用环境部署 3.crmsh接口使用介绍 4.案例 5.总结 1.引言及环境介绍 在上一博文中介绍了一些关于高可用技术的理论基础知识,这一博文则是介绍corosync+pacemakcer这一高可用方案的安装部署,并会以实际的案例来演示高可用的实现,corosync提供集群的信息层(messaging layer)的功能,传递心跳信息和集群事务信息,pacemaker工作在资源分配层,提供资源管理器的功能,并以crmsh这个资源配置的命令接口来配置资源.在进入主题

corosync/pacemaker, 实现高可用的MariaDB

实验环境: 两台mariaDB服务器 172.16.10.20 172.16.10.21 fip:172.16.10.28 MariaDB文件存储共享:172.16.10.22 实验准备: 1.两个节点的主机名称和对应的IP地址解析服务可以正常工作,且每个节点的主机名称需要跟"uname -n"命令的结果保持一致   vim /etc/hosts      172.16.10.20 21.xuphoto.com 20xu      172.16.10.21 22.xuphoto.com

Corosync+Pacemaker+DRBD实现MariaDB的高可用集群

Corosync简介 Corosync是高可用集群中基础事务层 (Messaging Layer)的一个实现方案与heartbeat的功能类似,主要用来传递集群的事务信息,但是Corosync的功能更加强大,正在逐渐地取代heartbeat.Corosync在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议等. Pacemaker简介 Pacemaker是一个集群资源管理器,从heartbeat v3版本中分裂出来,功能强大.它利用集群事务层提供的组件对各节点进行资源管理及监控