corosync+pacemaker的高可用集群

基于corosync+pacemaker的高可用集群

Pacemaker即Cluster Resource Manager (简称CRM),用来管理整个HA的控制中心,客户端通过pacemaker来配置管理监控整个集群。它不能提供底层心跳信息传递的功能,它要想与对方节点通信需要借助底层(新拆分的heartbeat或corosync)的心跳传递服务,将信息通告给对方。 
pacemaker管理资源的工具由命令行界面的crmsh、pcs和图形化界面pygui、hawk等进行管理。

因此,一般来说都是选择corosync来进行心跳的检测,搭配pacemaker的资源管理系统来构建高可用的系统,下面就来介绍下corosync+pacemaker构建高可用系统。

配置共有两个测试节点,分别server2和server3,相的IP地址分别为172.25.80.2和172.25.80.3;
  模拟实现的集群服务是web服务;
  提供web服务的地址为172.25.80.1

1,基础环境设置:
首先配置一台HA主机需要做的准备工作:
1)固定IP地址
2)所有节点的主机名称和对应的IP地址解析服务可以正常工作,只需要保证两个节点上的/etc/hosts文件均为下面的内容:

172.25.80.2  server2    node1
172.25.80.3  server3    node2
以上三步配置完成后能实现相互解析主机名,如下:

3)配置节点信任关系:
节点1:
# ssh-keygen  -t   rsa
# ssh-copy-id -i  ~/.ssh/id_rsa.pub  [email protected]
节点2:
# ssh-keygen -t rsa
# ssh-copy-id -i  ~/.ssh/id_rsa.pub  [email protected]

2,安装环境需要的相应的软件包:
#yum  install   -y libibverbs librdmacm lm_sensors libtool-ltdl openhpi-libs openhpiperl-TimeDate
3,安装corosync和pacemaker,我们这里将软件包放在/root/corosync目录下(两个节点都要做):
cluster-glue-1.0.6-1.6.el5.i386.rpm
cluster-glue-libs-1.0.6-1.6.el5.i386.rpm
corosync-1.2.7-1.1.el5.i386.rpm
corosynclib-1.2.7-1.1.el5.i386.rpm
heartbeat-3.0.3-2.3.el5.i386.rpm
heartbeat-libs-3.0.3-2.3.el5.i386.rpm
libesmtp-1.0.4-5.el5.i386.rpm
openais-1.1.3-1.6.el5.i386.rpm
openaislib-1.1.3-1.6.el5.i386.rpm
pacemaker-1.0.11-1.2.el5.i386.rpm
pacemaker-libs-1.0.11-1.2.el5.i386.rpm
perl-TimeDate-1.16-5.el5.noarch.rpm
resource-agents-1.0.4-1.1.el5.i386.rpm
开始安装:
# cd  /root/corosync/
# yum -y --nogpgcheck  localinstall  *.rpm
这里我们使用本地yum安装,并忽略包的检查。
4,corosync的相关配置(在节点1上执行):
# cd   /etc/corosync
# cp   corosync.conf.example  corosync.conf
这里corosync.conf.example是配置样本,我们只需拷贝一份,并进行修改即可:
vim /etc/corosync/corosync.conf

compatibility: whitetank
totem {
        version: 2
        secauth: off
        threads: 0
        interface {
                ringnumber: 0
                bindnetaddr: 172.25.0.0
                mcastport: 5405
        }
}
logging {
        fileline: off
        to_stderr: no
        to_logfile: yes
        to_syslog: yes
        logfile:/var/log/cluster/corosync.log //此处日志存放的地方
        debug: off
        timestamp: on
        logger_subsys {
                subsys: AMF
                debug: off
        }
}
amf {
        mode: disabled
}
service {
  ver: 0
  name: pacemaker
}
aisexec {
  user: root
  group: root
}
生成节点间通信时用到的认证密钥文件:
# corosync-keygen //此处会在当前目录下生成一个认证密钥文件
然后拷贝相关的文件到节点2上:
# scp -p  corosync.conf  authkey node2:/etc/corosync/
为两个节点创建corosync生成的日志所在的目录:
# mkdir /var/log/cluster
# ssh node2 --  mkdir /var/log/cluster
5,开始启动corosync(在节点1上执行):
# /etc/init.d/corosync start
 Starting Corosync Cluster Engine(corosync):               [  OK ]  //出现此,说明corosync已经启动

启动节点2:
# ssh node2 -- /etc/init.d/corosync  start //此步您需要在节点1上进行
Starting Corosync Cluster Engine (corosync): [ OK  ] //出现此,说明您的节点2corosync已经启动,节点2上继续验证是否出现异常错误
Online: [ server2 server3 ] //此处说明您的两个集群节点均已运行正常。
6,配置集群的工作属性:
因为corosync默认已经启用了stonith,而当前又没有添加stonith设备,会出现默认配置不可用的状态,为防止以后出现错误,影响操作,我们这里可以禁用stonith:
# crm configure property stonith-enabled=false //这样执行的命令会提交而且会立即生效
INFO: building help index

crm,crm_verify相关的命令是1.0后的版本的pacemaker提供的基于命令行的集群管理工具;可以在集群中的任何一个节点上执行,查看相应的信息。
7,为集群添加集群资源:
corosync支持heartbeat,lsb和ocf等类型的资源代理,目前较为常用的类型为lsb和lsb两类,stonith类专为配置stonith设备而用。

8,配置相试网页:
#echo  "<h1>Server2</h1>"   > /var/www/html/index.html
#chkconfig   httpd off
#service  httpd  stop
#ssh  node2  -- ‘echo "<h1>Server3</h1>"   > /var/www/html/index.html‘
#ssh node2   --  ‘chkconfig  httpd off‘
#ssh  node2  -- ‘service   httpd  stop‘
添加web资源:
首先创建的web集群创建一个IP地址资源,
# crm  configure primitive WebIPocf:heartbeat:IPaddr  paramsip=172.25.80.1
然后将httpd服务添加为集群资源。将httpd添加为集群资源有两处资源代理可用:lsb和ocf:heartbeat,为了简单起见,这里使用lsb类型:
#crm configure primitive WebSite lsb:httpd

可以通过主机的浏览器输入http://172.25.80.1进行访问web服务:
9,在节点2上使节点1离线:
# ssh node1 -- /etc/init.d/corosync stop
# crm status
============
Stack: openais
Current DC: server3 - partition WITHOUT quorum
Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87
2 Nodes configured, 2 expected votes
1 Resources configured.
============
Online: [ server3 ]
OFFLINE: [ server2 ]
此时节点1已经离线,而节点2却无法获得相应的资源,当然也无法访问相应的服务,,此时的集群状态是“WITHOUT quorum”,没有了quorum,就无法使节点获得相应的资源,集群服务无法正常运行。可以采取设置quorum,来忽略quorum。如下设置:
# crm configure property no-quorum-policy=ignore
# crm status
============
Stack: openais
Current DC: server3 - partition WITHOUT quorum
Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87
2 Nodes configured, 2 expected votes
1 Resources configured.
============
Online: [ seerver3 ]
OFFLINE: [ server2 ]
 Resource Group: Web

WebIP (ocf::heartbeat:IPaddr):Started server3
     WebSite (lsb:httpd): Started server3//此时节点2已经获得资源

时间: 2024-10-12 20:52:20

corosync+pacemaker的高可用集群的相关文章

corosync+pacemaker实现高可用集群。

实验环境: 安装: yum install corosync pacemaker -y 复制配置文件 cp corosync.conf.example corosync.conf vim corosync.conf 编辑配置文件: compatibility: whitetank  是否兼容0.8版本的corosynctotem {定义集群之间心跳信息传递层   version: 2 ----版本号        secauth: on ---是否启用安全认证        threads: 0

corosync+pacemaker构建高可用集群

一.集群简介 引自suse官方关于corosync的高可用集群的框架图: 由图,我们可以看到,suse官方将集群的Architecture Layers分成四层.最低层Messaging/Infrastructure Layer提供了HeartBeat节点间传递心跳信息,即为心跳层.第二层Membership Layer层为集群事务决策层,决定了哪些节点作为集群节点,并传递给集群内所有节点,如果集群中成员拥有的法定票数不大于半数,该怎么作出决策等,通俗点讲,就是投票系统,同时,还提供了构建成员关

corosync+pacemaker配置高可用集群(需要额外安装crm工具)

借鉴了网上不少博客定义:(来源于百度百科)Corosync:是集群管理套件的一部分,它在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议等.Pacemaker:是一个集群资源管理器.它利用集群基础构件(OpenAIS .heartbeat或corosync)提供的消息和成员管理能力来探测并从节点或资源级别的故障中恢复,以实现群集服务(亦称资源)的最大可用性.crm:直接的配置工具. 一.前期准备:准备两台主机node1和node2: 1.确保设置好IP地址,设置好hostnam

corosync+pacemaker实现高可用集群

Corosync corosync最初只是用来演示OpenAIS集群框架接口规范的一个应用,可以实现HA心跳信息传输的功能,是众多实现HA集群软件中之一,可以说corosync是OpenAIS的一部分,然而后面的发展超越了官方最初的设想,越来越多的厂商尝试使用corosync作为集群解决方案,如Redhat的RHCS集群套件就是基于corosync实现. corosync只提供了message layer(即实现HeartBeat + CCM),而没有直接提供CRM,一般使用Pacemaker进

corosync+pacemaker配置高可用集群

一.环境介绍: Node1: CentOS6      192.168.9.168   192-168-9-168 CentOS6      192.168.9.176   192-168-9-176 VIP: 192.168.9.144 corosync和pacemaker为yum安装 二.环境部署 服务器初始化脚本执行(主要时间同步,防火墙,主机名,ip配置,关闭不必要服务等) 1,更改yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo http:/

基于corosync+pacmaker实现高可用集群

目前,corosync功能和特性已经非常完善了,所以pacmaker独立出来之后通常都将pacmaker和corosync结合来使用,corosync并没有通用的资源管理器,因此要借助pacmaker来实现 常用的资源管理器: ·cman:rgmanager ·crm: crm的资源约束有: ·location :资源对节点的偏好 ·colocation:排序约束:资源运行在同一节点上的可能性,需要一定评估的 ·order: 资源采取动作的次序 资源有很多属性,以下为最常见的几类 ·集群属性 ·

pacemaker+corosync实现zabbix高可用集群

一.pacemaker 是什么 1.pacemaker 简单说明 2.pacemaker 由来 二.pacemaker 特点 三.pacemaker 内部结构 1.群集组件说明: 2.功能概述 四.centos6.x+pacemaker+corosync实现zabbix高可用 1.环境说明 五.安装pacemaker和corosync(各个节点均要运行) 1.前提条件各个节点完成主机解析工作. 2.各个节点的时间同步 3.各个节点完成互信工作 4.关闭防火墙与SELinux 5.安装pacema

centOS6.5 heartbeatV3+pacemaker实现高可用集群

1.集群环境 node1:192.168.220.111 node2:192.168.220.112 2.准备工作 配置各节点SSH互信: # node1 ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' ssh-copy-id -i .ssh/id_rsa.pub [email protected] # node2 ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' ssh-copy-id -i .ssh/id_rsa.pub [e

高可用集群之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)就