实验环境:两台虚拟机

server1:172.25.50.1 #master主机

server2:172.25.50.2 #slave主机

iptables:off  selinux:disabled

 

所需的软件包:crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm

server1上:yum install pacemaker corosync crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm -y

server2上:yum install pacemaker corosync crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm -y

server1上:cd /etc/corosync/

             cp corosync.conf.example corosync.conf

             vim corosync.conf

修改:

 bindnetaddr: 172.25.50.0 #添加网段地址

在文件的最后添加:

service {

          name: pacemaker

          ver: 0

}

 

scp corosync.conf root@172.25.50.2:/etc/corosync/

在两台虚拟机上:

/etc/init.d/pacemaker start

/etc/init.d/corsync start

执行命令:crm_mod 可以看到两个节点在运行

crm_verify -L

crm_verity -LV

在真机上把配置好的/etc/cluster/fence_xvm.key文件scpserver1server2

两台虚拟机上:yum install fence_* -y 不然使用下面的命令找不到所需的文件

分别在两台虚拟机上:cd /etc/cluster/

然后: stonith_admin -a fence_xvm -M

       stonith_admin -I

执行命令crm可进入交互的命令行界面

[root@server4 corosync]# crm

crm(live)# configure

crm(live)configure# show

node server2.example.com

node server4.example.com

property $id="cib-bootstrap-options" \

dc-version="1.1.10-14.el6-368c726" \

cluster-infrastructure="classic openais (with plugin)" \

expected-quorum-votes="2"

crm(live)configure# primitive vmfence stonith:fence_xvm params pcmk_host_map="server4.example.com:vm4;server2.example.com:vm2" op monitor interval=1min

crm(live)configure# commit

crm(live)configure# primitive vip ocf:heartbeat:IPaddr2 params ip=172.25.50.100 cidr_netmask=

cidr_netmask (string): CIDR netmask

    The netmask for the interface in CIDR format

    (e.g., 24 and not 255.255.255.0)

    

    If unspecified, the script will also try to determine this from the

    routing table.

 

crm(live)configure# primitive vip ocf:heartbeat:IPaddr2 params ip=172.25.50.100 cidr_netmask=32 op monitor interval=30s

 crm(live)configure# commit

crm(live)configure# primitive website ocf:heartbeat:apache params configfile=/etc/httpd/conf/httpd.conf op monitor interval

interval-origin=  interval=         

crm(live)configure# primitive website ocf:heartbeat:apache params configfile=/etc/httpd/conf/httpd.conf op monitor interval=lmin

crm(live)configure# commit

WARNING: website: default timeout 20s for start is smaller than the advised 40s

WARNING: website: default timeout 20s for stop is smaller than the advised 60s

vim /etc/httpd/conf/httpd.conf 修改

<Location /server-status>

    SetHandler server-status

    Order deny,allow

    Deny from all

    Allow from 127.0.0.1

如果另一台主机挂了 可以同步httpd服务 使httpd服务显示在同一台主机上

测试:如果一台主机挂了,另一台会接管他,屏蔽故障节点,同时将服务转移到正常节点来执行,从而保证了服务的高可用。