corosync+pacemaker的高可用集群-创新互联-成都快上网建站

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 root@node2
节点2:
# ssh-keygen -t rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1

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 "

Server2

"  > /var/www/html/index.html
#chkconfig  httpd off
#service httpd stop
#ssh node2 -- 'echo "

Server3

"  > /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已经获得资源

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站名称:corosync+pacemaker的高可用集群-创新互联
转载来于:http://kswjz.com/article/cojcgc.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流