Corosync简介:
corosync在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议等。它是一个新兴的软件,2008年推出,但其实它并不是一个真正意义上的新软件,在2002年的时候有一个项目Openais , 它由于过大,分裂为两个子项目,其中可以实现HA心跳信息传输的功能就是Corosync ,它的代码60%左右来源于Openais. Corosync可以提供一个完整的HA功能,但是要实现更多,更复杂的功能,那就需要使用Openais了。Corosync是未来的发展方向。在以后的新项目里,一般采用Corosync,而hb_gui可以提供很好的HA管理功能,可以实现图形化的管理。另外相关的图形化有RHCS的套件luci+ricci。
Pacemaker简介:
Pacemaker是一个集群管理器。它利用首选集群基础设施(OpenAIS 或heartbeat)提供的消息和成员能力,由辅助节点和系统进行故障检测和回收,实现性群集服务(亦称资源)的高可用性。 它可以做几乎任何规模的集群,并带有一个强大的依赖模式,让管理员能够准确地表达的群集资源之间的关系(包括顺序和位置)。几乎任何可以编写的脚本,都可以作为管理起搏器集群的一部分。
试验目的:
实现corosync+pacemaker进行服务器的高可用性管理
试验示意图:
试验思路:
第一步:配置ip地址和主机名等相关信息,保持节点之间的一致性。
第二步:安装corosync相关软件包
第三步:编辑配置corosync的配置文档并检查日志信息,看是否有错误
第四步:添加管理资源webip
第五步:添加web管理资源服务
第六步:添加资源管理组web,将webip与webserver资源添加到该组中捆绑使用。
第七步:当节点失效时,将该节点资源默认转移到另一个节点上(不使用DC)
第八步:测试
第二步:安装corosync相关软件包
第三步:编辑配置corosync的配置文档并检查日志信息,看是否有错误
第四步:添加管理资源webip
第五步:添加web管理资源服务
第六步:添加资源管理组web,将webip与webserver资源添加到该组中捆绑使用。
第七步:当节点失效时,将该节点资源默认转移到另一个节点上(不使用DC)
第八步:测试
试验步骤:
第一步:配置ip地址和主机名等相关信息,保持节点之间的一致性。
[root@zhangc ~]# setup【配置节点一ip地址相关参数信息】
[root@zhangc ~]# setup【配置节点二ip地址相关参数信息】
[root@zhangc ~]# vim /etc/hosts【修改主机名称,然后重新登录】
[root@zhangc ~]# vim /etc/hosts
[root@zhangc ~]# ssh /etc/hosts 192.168.100.124:/etc/hosts
[root@zhangc ~]# serivce network restart【重新启动network服务】
第二步:安装corosync相关软件包
[root@zhangc ~]# ll【查看rpm安装包,所需软件包名称如图所示】
[root@zhangc ~]# yum localinstall -y *.rpm –nogpgcheck【安装corosync服务所需rpm软件包】
第三步:编辑配置corosync的配置文档并检查日志信息,看是否有错误
[root@zhangc ~]# cd /etc/corosync/【进入corosync安装目录】
[root@zhangc corosync]# cp -p corosync.conf.example corosync.conf【复制并修改主配置文档名称】
[root@zhangc corosync]# vim corosync.conf【编辑主配置文档,将pacemaker资源管理服务于corosync服务相结合】
[root@zhangc corosync]# corosync-keygen【生成authkey通讯钥匙】
[root@zhangc corosync]# scp -p authkey corosync.conf 192.168.100.124:/etc/corosync/【将生成的通讯钥匙文件与主配置文档修改信息拷贝到节点zhangc.b.com中】
[root@zhangc corosync]# mkdir /var/log/cluster【分别在两个节点中创建cluster文件夹】
[root@zhangc corosync]# ssh 192.168.100.124 'mkdir /var/log/cluster'
[email protected]'s password:【输入节点100.124的管理员密码】
[root@zhangc corosync]# service corosync start【分别在两个节点中启动corosync服务】
[root@zhangc corosync]# ssh 192.168.100.124 'service corosync start'
[root@zhangc corosync]# grep -i -e "corosync cluster engine" -e "configuration file" /var/log/messages【查看corosync cluster的进行和控制文件的日志信息,-i表示忽略大小写,-e表示扩展服务的查询】
[root@zhangc corosync]# ssh 192.168.100.124 'grep -i -e "corosync cluster engine" -e "configuration file" /var/log/messages'
[root@zhangc corosync]# grep -i totem /var/log/messages【分别查看两个节点中的心跳信息】
[root@zhangc corosync]# ssh 192.168.100.124 'grep -i totem /var/log/messages'
[root@zhangc corosync]# grep -i error: /var/log/messages
[root@zhangc corosync]# ssh 192.168.100.124 ‘grep -i error: /var/log/messages’
[root@zhangc corosync]# grep -i pcmk_startup /var/log/messages【分别查看两个节点中pacemaker资源管理服务是否正常运行】
[root@zhangc corosync]# ssh 192.168.100.124 'grep -i pcmk_startup /var/log/messages'
第四步:添加管理资源webip
[root@zhangc corosync]# crm conf【使用crm(corosync manage)添加资源管理ip】
crm(live)configure# primitive webip ocf:heartbeat:IPaddr params ip=192.168.100.100【添加管理资源名称为webip】
crm(live)configure# show【查看添加信息】
crm(live)configure# property stonith-enabled=false【将stonith服务关闭掉,上面检测时日志信息中检测到stonish不能使用】
crm(live)configure# commit【提交保存】
crm(live)configure# show【查看相关信息】
crm(live)configure# exit【退出crm】
[root@zhangc ~]# crm status【查看crm状态,可以看到添加过的资源管理信息】
[root@zhangc ~]# ifconfig【在该节点上查看管理资源webIp已经被正常添加应用】
[root@zhangc ~]# ssh 192.168.100.124 'ifconfig'【查看另一个节点上没有被应用】
第五步:添加web管理资源服务
[root@zhangc ~]# yum install –y httpd【安装apache服务】
[root@zhangc ~]# echo "zhangc.a.com" >/var/www/html/index.html【创建节点一测试页面】
[root@zhangc ~]# ssh 192.168.100.124 'echo "zhangc.b.com" >/var/www/html/index.html'【在节点二上创建测试页面】
[root@zhangc ~]# service httpd status【查看httpd服务状态是否为关闭状态】
[root@zhangc ~]# crm configure
crm(live)configure# primitive webserver lsb:httpd【添加名称为webserver的httpd服务】
crm(live)configure# commit【提交修改信息】
第六步:添加资源管理组web,将webip与webserver资源添加到该组中捆绑使用。
[root@zhangc ~]# crm
crm(live)# configure
crm(live)configure# group web webip webserver【将资源添加到组web中】
crm(live)# commit【提交保存添加信息】
[root@zhangc~]service corosync stop【关闭节点一中的corosync服务,节点二并不能自动启动】
第七步:当节点失效时,将该节点资源默认转移到另一个节点上(不使用DC)
crm(live)configure# property no-quorum-policy=ignore【忽略票数】
第八步:测试:
[root@zhangc ~]# service corosync stop【启动节点一中的corosync服务,web组中的资源被节点二占用,并正常运行】
[root@zhangc ~]# ssh 192.168.100.124 ‘service corosync stop’
[root@zhangc ~]# service corosync start【启动节点一中的corosync服务,并关闭掉节点二中的corosync服务,则访问到节点一】
测试完成