【redhat5.5】双机互备高可用(HA)集群的搭建

【1】 HA集群简介
         1】通过特殊软件把独立的系统(node)连接起来,组成一个能够提供故障切换(Faileover)功能的集群
         2】Ha集群可以保证在多种故障中,关键服务的可用性、可靠性及数据完整性
         3】Ha集群主要用于文件服务,WEB服务,数据库服务等关键应用中

【2】 高可用集群的三种方式
        1】主从方式(非对称)
        2】 对称方式(互备互援)
        3】多级方式(多级互备)

【3】 高可用集群的基本组成
        1】服务 (Service)
        2】浮动IP (Float IP)
        3】成员服务器或称节点 (Member Server of Node)
              HA集群中实际运行服务提供特定资源的服务器
        4】 失效域 (Failover Domain)
              通常会包含至少两台成员服务器(Member Server)
        5】 心跳 (Heartbeat)
              HA集群监视服务器状态的方法,一般情况下心跳是通过网络数据包来判断服务器是否正常工作
        6】 共享存储 (Share Storage)
              保证HA集群服务进行切换时,服务所需的数据资源能够保持一致

【4】高可用集群的相关技术概念
        1】 单一故障点( Single Point Of Failure,SPOF )
        2】 仲裁 (Quorum)
        3】 失效迁移 (Failover)
        4】监视器 (Watchdog)
        5】 可编程电源控制器 ( Programable Power Controller or Smart Power Switch) <爆头设备>

【5】 HA双机高可用集群的配置方法
        1】 网络拓扑图
             -----------------------------------
             |   vm3                    vm4                   |
             | 4.4.64.3/24     4.4.64.4/24              |
             |vm3.rhcm.com     vm4.rhcm.com    |真实机 4.4.64.254/24
             |   [主]                   [备]                       |  XEN_FENCE
             |     \                     /                            |
              ------\--------------/-------------
                  [NFS SERVER]
                   4.4.64.100/24
 
         2】 浮动资源
               a   NFS挂载资源
               b   浮动IP : 4.4.64.66
               c   httpd服务

         3】配置NFS,共享一个/www目录,其中有index.html页面
               vim /etc/exports
               /www    4.4.64.*(rw,sync)
 
         4】 vm3,vm4的准备工作
              a】 配置固定ip  hostname(/etc/sysconfig/network) /etc/hosts(三份)
                    cat /etc/hosts  
     

       # Do not remove the following line, or various programs
       # that require network functionality will fail.
       127.0.0.1               localhost.localdomain localhost
       ::1             localhost6.localdomain6 localhost6
       4.4.64.3        vm3.rhcm.com
       4.4.64.4        vm4.rhcm.com
       4.4.64.254      XEN_FENCE

             b】配置yum源 ( /etc/yum.repos.d/rhel-debuginfo.repo )
             c】清空iptables
                   echo iptables -F  >> /etc/rc.local
    
         5】 vm3,vm4安装httpd服务,并测试浮动资源是否能正常工作:
             a】  yum install httpd
             b】  vm3进行测试
                     ip addr add dev eth0 4.4.64.66/24
                     mount -t nfs 4.4.64.100:/www  /var/www/html/
                     service httpd start
                     service httpd stop
                     umount /var/www/html
                     ip addr del dev eth0 4.4.64.66/24
             c】 vm4 同样进行测试,确保每一步都正常
 
         6】 开始安装rhcm程序,实现vm3,vm4双机高可用web集群
                 RHCM 由 : cman        集群控制,如心跳检查
                 rgmanager   部署或者释放浮动资源
                 fenced      收发fence请求
                 ....     
                 等服务组成.
                 生成配置文件,然后启动以上服务 所需安装软件如下:
                 luci   装在非高可用节点(4.4.64.254)上,它是一个网站,通过web接口来配置HA集群
                 ricci  装在高可用节点上(vm3,vm4)

                 注意:安装luci的主机必须能在hosts文件中解析高可用节点的主机名和IP的对应关系高可用节点必须启动ricci,并设置为开机自动启动,关闭iptables,selinux

                a】 安装软件包
                      yum -y install ricci cman  rgmanager modcluster
                b】启动 ricci 服务
                      /etc/init.d/ricci start
                c】设置开机自启动
                     chkconfig  ricci on

            7】集群管理节点(4.4.64.254)上的配置
                 a】 安装软件包
                      yum -y install luci
                 b】 初始化
                      luci_admin init
                 c】重启luci服务
                      service luci restart
  
            8】 访问web配置页面 进行高可用集群配置
                 a】 https://XEN_FENCE:8084
                       在web页面进行登录
                 b】 新建集群
                       cman_tool  status  查看集群信息
                       如果一个环境中有很多个HA集群,请事先人为修改组播地址224.0.0.0-239.255.255.255
                 c】 创建故障转移域 failover  domains

                 d】添加浮动资源
                       ip address  4.4.64.66
                       NFS MOUNT
                       Script
                 e】 添加服务,目的是将浮动资源和故障转移域关联起来
                       注意: 添加child resource
                  f】在vm3,vm4上测试,查看是否配置成功
                        service cman status
                        service rgmanager status
                        clustat

       

 [root@vm3 ~]# clustat  
        Cluster Status for pgha @ Thu Apr 26 16:47:27 2012
        Member Status: Quorate
        Member Name                                ID   Status
         ------ ----                                ---- ------
        vm4.rhcm.com                                   1 Online, rgmanager
        vm3.rhcm.com                                   2 Online, Local, rgmanager
        Service Name                      Owner (Last)                      State        
         ------- ----                      ----- ------                      -----        
        service:apache_service            vm3.rhcm.com                      started    

   
          9】为两个高可用节点添加fence设备
               a】 两虚拟机所处真机(4.4.64.254)安装cman
                     yum install cman
               b】利用web页面配置fence设备,在vm3的/etc/cluster/目录下生成两个文件
                    cluster.conf  fence_xvm.key       
       
                    scp  /etc/cluster/fence_xvm.key  4.4.64.254:/etc/cluster
    
               c】 真机启动服务
                      fence_xvmd -I eth0 -L

               d】 手动测试是否可以正常工作
                     fence_xvm -H vm3  -d    

       -- args @ 0xbfaecf78 --
       args->addr = 225.0.0.12
       args->domain = vm8
       args->key_file = /etc/cluster/fence_xvm.key
       args->op = 2
       args->hash = 2
       args->auth = 2
       args->port = 1229
       args->ifindex = 0
       args->family = 2
       args->timeout = 30
       args->retr_time = 20
       args->flags = 0
       args->debug = 1
       -- end args --
       Remote: Operation was successful


 
       10】 测试各种故障,看是否实现双机高可用
                clustat
                tail /var/log/messages -f

       11】 附录: vm3,vm4的/etc/cluster/cluster.conf 文件
      

<?xml version="1.0"?>
<cluster alias="HA-WEB-Cluster" config_version="10" name="HA-WEB-Cluster">
 <fence_daemon clean_start="0" post_fail_delay="0" post_join_delay="3"/>
 <clusternodes>
  <clusternode name="vm4.test.com" nodeid="1" votes="1">
   <fence>
    <method name="1">
     <device domain="xen_fence" name="vm4"/>
    </method>
   </fence>
  </clusternode>
  <clusternode name="vm3.test.com" nodeid="2" votes="1">
   <fence>
    <method name="1">
     <device domain="xen_fence" name="vm3"/>
    </method>
   </fence>
  </clusternode>
 </clusternodes>
 <cman expected_votes="1" two_node="1">
  <multicast addr="239.3.64.8"/>
 </cman>
 <fencedevices>
  <fencedevice agent="fence_xvm" name="vm3"/>
  <fencedevice agent="fence_xvm" name="vm4"/>
 </fencedevices>
 <rm>
  <failoverdomains>
   <failoverdomain name="HA-WEB-Cluster" nofailback="1" ordered="1" restricted="1">
    <failoverdomainnode name="vm4.test.com" priority="7"/>
    <failoverdomainnode name="vm3.test.com" priority="2"/>
   </failoverdomain>
  </failoverdomains>
  <resources>
   <ip address="4.4.64.66" monitor_link="0"/>
   <netfs export="/www" force_unmount="0" fstype="nfs" host="4.4.64.5" mountpoint="/var/www/html" name="NFS-Mount"/>
   <script file="/etc/init.d/httpd" name="Script"/>
  </resources>
  <service autostart="1" domain="HA-WEB-Cluster" exclusive="1" name="webservice" recovery="relocate">
   <ip ref="4.4.64.66">
    <netfs ref="NFS-Mount">
     <script ref="Script"/>
    </netfs>
   </ip>
  </service>
 </rm>
</cluster>
 

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值