Corosync/Openais + Pacemaker架构的高可用集群

时间:2022-12-03 03:20:22

 

基于Corosync/Openais + Pacemaker架构的高可用web集群的配置过程(以两节点为例)   准备工作: 两台虚拟机 相关软件包    cluster-glue-1.0.6-1.6.el5.i386       cluster-glue-libs-1.0.6-1.6.el5.i386       corosync-1.2.7-1.1.el5.i386       corosynclib-1.2.7-1.1.el5.i386       heartbeat-3.0.3-2.3.el5.i386       heartbeat-libs-3.0.3-2.3.el5.i386       libesmtp-1.0.4-5.el5.i386       pacemaker-1.0.11-1.2.el5.i386       pacemaker-libs-1.0.11-1.2.el5.i386       perl-TimeDate-1.16-5.el5.noarch       resource-agents-1.0.4-1.1.el5.i386 具体步骤: 1、为两个节点上配置相应的IP地址 结点1: # vim /etc/sysconfig/network-scripts/ifcfg-eth0     DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=172.16.13.36 NETMASK=255.255.0.0 # service network restart 结点2: # vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=172.16.13.37 NETMASK=255.255.0.0 # service network restart 2、为两个结点配置主机名 结点1: # hostname node1.a.org # vim /etc/sysconfig/network HOSTNAME=node1.a.org 结点2: # hostname node2.a.org # vim /etc/sysconfig/network HOSTNAME=node2.a.org   3、在两个结点上编辑/etc/hosts,添加如下两行    172.16.13.36           node1.a.org   node1 172.16.13.37           node2.a.org   node2 4、在两个结点上配置基于密钥进行ssh通信    结点1:    # ssh-keygen -t rsa    # ssh-copy-id -i /root/.ssh/id_rsa.pub root@node2    命令测试:    # ssh node2 -- ‘ifconfig’    // 应该显示为结点2的ip地址信息    结点2:   # ssh-keygen –t rsa    # ssh-copy-id –i /root/.ssh/id_rsa.pub root@node1    命令测试:    # ssh node1 -- ‘ifconfig’    // 应该显示为结点1的ip地址信息 5、安装软件包,首先下载所需的软件到本地,此处为/root/ruanjian    # cd /root/ruanjian    # yum localinstall *.rpm --nogpgcheck -y 6、编辑corosync的配置文件(此处以结点1为例)    # cd /etc/corosync    # cp corosync.conf.example corosync.conf    // 配置文件corosync.conf事先不存在,需从模板corosync.conf.example复制    # vim corosync.conf    修改其中这一行bindnetaddr: 192.168.1.1为                   bindnetaddr: 172.16.0.0    添加如下内容:     service {              ver: 0              name: pacemaker } aisexec {        user:        root        group: root } 7、用命令生成配置文件authkey    # corosync-keygen 8、将文件corosync,authkey复制到结点2上    # scp -p corosync.conf authkey node2:/etc/corosync    // -p为保留文件的原属性,切记不可少 9、创建配置文件中用到的存放日志文件目录    # mkdir /var/log/cluster    # ssh node2 'mkdir /var/log/cluster //在node1上为node2创建此目录,此处也可在node2上直接创建 10、在结点1上启动corosync服务 # /etc/init.d/corosync start 11、验证corosync引擎是否正常启动: # grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/messages

Corosync/Openais + Pacemaker架构的高可用集群

  查看初始化成员节点通知是否正常发出: # grep TOTEM /var/log/messages  

Corosync/Openais + Pacemaker架构的高可用集群

检查启动过程中是否有错误产生: # grep ERROR: /var/log/messages | grep -v unpack_resources // 没有任何错误信息为正常 查看pacemaker是否正常启动: # grep pcmk_startup /var/log/messages

Corosync/Openais + Pacemaker架构的高可用集群

  12、上面的验证没问题后,启动结点2的corosync服务(此处只能在node1执行) # ssh node2 -- /etc/init.d/corosync start 13、查看集群节点的启动状态: # crm status 

Corosync/Openais + Pacemaker架构的高可用集群

14、配置集群的工作属性,禁用stonith     // corosync默认启用了stonith,而当前集群并没有相应的stonith设备,因此此默认配置目前尚不可用,这可以通过如下命令验正:     # crm_verify –L  

Corosync/Openais + Pacemaker架构的高可用集群

禁用stonith  # crm configure property stonith-enabled=false 15、为创建的集群创建一个IP地址资源  # crm configure primitive WebIP ocf:heartbeat:IPaddr params ip=172.16.13.38 16、如下的命令执行结果可以看出此资源已经在node1.a.org上启动:  # crm status  

Corosync/Openais + Pacemaker架构的高可用集群

17、可以在node1上执行ifconfig命令验证此地址已经在eth0的别名上生效       

Corosync/Openais + Pacemaker架构的高可用集群

18、在结点2上停止结点1的corosync服务     # ssh node1 -- /etc/init.d/corosync stop     查看IP资源流向     # crm status      // 发现node1虽然停止了服务,但IP资源却没有流到node2上      // 这是因为此时的集群状态为"WITHOUT quorum",服务本身已不能正常运行     修改配置文件,使其忽略quorum     # crm configure property no-quorum-policy=ignore 再查看集群状态 # crm status 再把node1启动起来 # ssh node1 -- /etc/init.d/corosync start

本文出自 “瓜瓜的博客” 博客,谢绝转载!