实验环境:

    虚拟机ha1:192.168.61.130

    虚拟机ha2:192.168.61.132

    vip:192.168.61.100

实验说明:

       ha1httpd服务index.html 内容设置为ha1

       ha2httpd服务index.html 内容设置为ha2

   两主机切换工作时以方便观察效果

注意事项:

      (a) .节点间时间必须同步:使用ntp协议实现;

          服务端/etc/ntp.conf供参考:

        driftfile/var/lib/ntp/drift

        restrict -6default kod nomodify notrap nopeer noquery

        restrict127.0.0.1

        restrict -6 ::1

        restrict192.168.61.0 mask 255.255.255.0 nomodify

        restrict 0.0.0.0mask 0.0.0.0 nomodify notrap noquery notrust

        server127.127.1.0

        fudge 127.127.1.0stratum 8

        server220.130.158.71 prefer

        server220.130.158.51

        includefile/etc/ntp/crypto/pw

           keys/etc/ntp/keys

注意:设置重启服务后一定要等10-15分钟再尝试同步,命令:ntpdata 192.168.61.130,对比两机时间是否同步命令:data;ssh 192.168.61.130 ‘data’

ha2 最好设定一个定时任务,每5分钟同步时间:

crontab -e

*/5 * * * * /usr/sbin/ntpdata 192.168.61.130

 

 

       (b) .节点间需要通过主机名互相通信,必须解析主机至IP地址;

           (1)建议名称解析功能使用hosts文件来实现;

           (2)通信中使用的名字与节点名字必须保持一致:“uname -n”命令,或hostname”展示出的名字保持一致;

           (3) .建立各节点之间的root用户能够基于密钥认证;

             # ssh-keygen -t rsa -P ''

             #ssh-copy-id -i /root/.ssh/id_rsa.pub root@HOSTNAME

           (4) .一定要确保SELINUX关闭,iptables清空

 注意:定义成为集群服务中的资源,一定不能开机自动启动;因为它们将由crm管理;

 

ha1配置

    安装heartbeat V2

        (a).先安装epel源,系统源没有libnet

wget ftp://ftp.pbone.net/mirror/dl.iuscommunity.org/pub/ius/archive/Redhat/6/i386/epel-release-6-5.noarch.rpm

          rpm -ivh epel-release-6-5.noarch.rpm

       

        (b).安装相关包:

        yum install net-snmp-libs libnet PyXML

        rpm-ivh heartbeat-2.1.4-12.el6.x86_64.rpm

               heartbeat-pils-2.1.4-12.el6.x86_64.rpm              

               heartbeat-stonith-2.1.4-12.el6.x86_64.rpm 

          yum install httpd

 

        (c).编辑ha.cf 文件

            vim /etc/ha.cf添加内容如下:

            logfacility local0#日志使用rsyslog中local0设定

            keepalive1 #监听频率,每1秒

            deadtime3 #死亡判断时间

            warntime2 #异常警告时间

            mcasteth0 225.0.0.1 694 1 0 #组播地址设定

            auto_failbackon #修复后自动上线

            node    ha1 #节点设置

            node    ha2 #节点设置

            ping 192.168.61.2 #第三方仲裁设定

 

        (d).编辑authkeys文件

            auth 2

            #1 crc

            2 sha1HI! #密钥短语越长越随机越好

            #3 md5Hello!

             (e) 编辑haresources添加:

                ha1 192.168.61.100 httpd  #设定主服务主机名、VIP、服务3个资源

                    

             (f)编辑index.html首页

                echo“ha1” > /var/www/html/index.html

 

ha2配置

安装heartbeat V2

        (a).先安装epel源,系统源没有libnet

wget ftp://ftp.pbone.net/mirror/dl.iuscommunity.org/pub/ius/archive/Redhat/6/i386/epel-release-6-5.noarch.rpm

          rpm -ivh epel-release-6-5.noarch.rpm

       

        (b).安装相关包:

        yum install net-snmp-libs libnet PyXML

        rpm-ivh heartbeat-2.1.4-12.el6.x86_64.rpm

               heartbeat-pils-2.1.4-12.el6.x86_64.rpm               

               heartbeat-stonith-2.1.4-12.el6.x86_64.rpm 

          yum install httpd

 

             (c)拷贝ha1ha.cfharesourcesauthkeys

                scp192.168.61.130:/etc/ha.d/{ha.cf,haresources,authkeys} /etc/ha.d/

 

             (d)编辑index.html首页

                echo“ha2” > /var/www/html/index.html

 

             (e)添加定时校时任务,5分钟更新一次时间

                crontab-e

                */5* * * * /usr/sbin/ntpdata 192.168.61.130

 

    分别启动两机heartbeat服务

    service heartbeat start

 

    用其他主机访问http://192.168.61.100/index.html,  关闭ha1ha2其中一台,刷新网页就可以看到网页内容ha1ha2轮流显

    示。用ifconfig查看正在工作的主机,可以发现vip 已经配置在eth0:0