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

2014年09月09日 技术资料 3830 views
【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   
     
[plain] view plaincopy

# 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】 http://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

[plain] view plaincopy

[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    
[plain] view plaincopy

-- 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 文件
       
[html] view plaincopy

<?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>  
   
赞赏
扫描二维码
扫描微信 845532699

温馨提示:

欢迎您访问贝壳iT官网
纯净绿色资源分享标杆


BeikeiT.Com