本文档中所讲述的Linux-HA系统安装是基于Pacemaker+Heartbeat+DRBD组合的高可用集群系统。主要用于数据容灾和服务在多个节点间进行热切换,保证服务的高可用性。

本文档撰写的系统安装环境为CentOS6.2X86_64,硬件为VMware7.1(单芯片双核&&双网卡桥接&&双SCSI硬盘20G+15G)。

如果手册在使用过程中遇到任何问题欢迎致信 lxgbest@163.com ,进行技术交流。

第一章Linux-HA 安装 1.1 系统安装 1.1.1 系统安装

选择操作系统CentOS6.2x86_64,最小化安装。

1.1.2 系统配置

1、禁用selinux

配置文件存放位置:/etc/selinux/config

2、设置网卡

此处以双网卡配置为标准配置,配置文件位置:/etc/sysconfig/network-script/ifcfg-ethN

添加:IPADDR=“192.168.20.X”       IP地址

     NETMASK=“255.255.255.0”    子网掩码

     GATEWAY=“192.168.20.1”     添加网关

3、设置DNS

        DNS配置文件存储位置:/etc/resolv.conf

内容:   nameserver 202.102.128.68

4、设置主机名

       配置文件位置:/etc/sysconfig/network

        内容:        HOSTNAME=hostname1

5、设置主机网络名

        配置文件位置:/etc/hosts

        添加文件内容:  IPADDR1 hostname1

                                              IPADDR2  hostname2

6、重启网络服务

命令:/etc/init.d/network      restart 或者  service network   restart

(最好重新启动系统)

1.2 软件安装 1.2.1 软件安装

1、下载RPM安装包

其中包括15个必须的安装包,以及52个依赖包。可在安装资源文件内找到或到网络下载对应系统的最新版本。

安装包安装文件目录:

cluster-glue-1.0.6-1.fc14.x86_64.rpm

cluster-glue-libs-1.0.6-1.fc14.x86_64.rpm

corosync-1.4.1-4.el6_2.2.x86_64.rpm

corosynclib-1.4.1-4.el6.x86_64.rpm

heartbeat-3.0.4-1.el6.x86_64.rpm

heartbeat-libs-3.0.4-1.el6.x86_64.rpm

ldirectord-3.1.1-1.fc13.x86_64.rpm

libesmtp-1.0.4-6.el5.kb.x86_64.rpm

openais-1.1.1-7.el6.x86_64.rpm

openaislib-1.1.1-7.el6.x86_64.rpm

pacemaker-1.1.6-3.el6.x86_64.rpm

pacemaker-cts-1.1.6-3.el6.x86_64.rpm

pacemaker-libs-1.1.6-3.el6.x86_64.rpm

perl-TimeDate-1.20-1.el6.rfx.noarch.rpm

resource-agents-3.9.2-7.el6.x86_64.rpm

依赖包安装文件目录:

            OpenIPMI-libs-2.0.16-12.el6.x86_64.rpm

PyXML-0.8.4-19.el6.x86_64.rpm

cifs-utils-4.8.1-5.el6.x86_64.rpm

clusterlib-3.0.12.1-23.el6_2.1.x86_64.rpm

corosynclib-1.4.1-4.el6_2.2.x86_64.rpm

gnutls-2.8.5-4.el6_2.2.x86_64.rpm

ipvsadm-1.25-9.el6.x86_64.rpm

keyutils-1.4-3.el6.x86_64.rpm

libedit-2.11-4.20080712cvs.1.el6.x86_64.rpm

libevent-1.4.13-1.el6.x86_64.rpm

libgssglue-0.1-11.el6.x86_64.rpm

libibverbs-1.1.5-3.el6.x86_64.rpm

libnet-1.1.2.1-2.2.el6.rf.x86_64.rpm

libnl-1.1-14.el6.x86_64.rpm

librdmacm-1.0.14.1-3.el6.x86_64.rpm

libtalloc-2.0.1-1.1.el6.x86_64.rpm

libtasn1-2.3-3.el6_2.1.x86_64.rpm

libtirpc-0.2.1-5.el6.x86_64.rpm

libtool-ltdl-2.2.6-15.5.el6.x86_64.rpm

libxslt-1.1.26-2.el6.x86_64.rpm

lm_sensors-libs-3.1.1-10.el6.x86_64.rpm

mailcap-2.1.31-2.el6.noarch.rpm

net-snmp-libs-5.5-37.el6_2.1.x86_64.rpm

nfs-utils-1.2.3-15.el6_2.1.x86_64.rpm

nfs-utils-lib-1.1.5-4.el6.x86_64.rpm

openhpi-libs-2.14.1-3.el6.x86_64.rpm

openssh-5.3p1-70.el6_2.2.x86_64.rpm

openssh-clients-5.3p1-70.el6_2.2.x86_64.rpm

openssh-server-5.3p1-70.el6_2.2.x86_64.rpm

openssl098e-0.9.8e-17.el6.centos.2.x86_64.rpm

pacemaker-cli-1.1.6-3.el6.x86_64.rpm

pacemaker-cluster-libs-1.1.6-3.el6.x86_64.rpm

perl-5.10.1-119.el6_1.1.x86_64.rpm

perl-Compress-Raw-Zlib-2.023-119.el6_1.1.x86_64.rpm

perl-Compress-Zlib-2.020-119.el6_1.1.x86_64.rpm

perl-HTML-Parser-3.64-2.el6.x86_64.rpm

perl-HTML-Tagset-3.20-4.el6.noarch.rpm

perl-IO-Compress-Base-2.020-119.el6_1.1.x86_64.rpm

perl-IO-Compress-Zlib-2.020-119.el6_1.1.x86_64.rpm

perl-IO-Socket-INET6-2.56-4.el6.noarch.rpm

perl-MailTools-2.04-4.el6.noarch.rpm

perl-Module-Pluggable-3.90-119.el6_1.1.x86_64.rpm

perl-Pod-Escapes-1.04-119.el6_1.1.x86_64.rpm

perl-Pod-Simple-3.13-119.el6_1.1.x86_64.rpm

perl-Socket6-0.23-3.el6.x86_64.rpm

perl-URI-1.40-2.el6.noarch.rpm

perl-libs-5.10.1-119.el6_1.1.x86_64.rpm

perl-libwww-perl-5.833-2.el6.noarch.rpm

perl-version-0.77-119.el6_1.1.x86_64.rpm

quota-3.17-16.el6.x86_64.rpm

rpcbind-0.2.0-8.el6.x86_64.rpm

tcp_wrappers-7.6-57.el6.x86_64.rpm


2、安装RPM

        将安装包和依赖包安装文件,上传至服务器(或下载)临时目录中,例如:/root/RPMSRC下。

        在服务器上运行:

   # cd /root/RPMSRC

         #yum     localinstall      *.rpm       - -nogpgcheck

1.2.2 HA配置

1、修改HA配置文件

   其一,创建配置文件:/etc/corosync/corosync.conf

        内容:

compatibility: whitetank

totem {

        version: 2

        secauth: off

        threads: 0

        interface {

                  ringnumber:0

bindnetaddr:192.168.20.0  #此处按实际情况修改

                  mcastaddr:226.94.1.1

                  mcastport:5405     #注意该端口,需在防火墙中放开

                  ttl: 1

        }

}


logging {

        fileline: off

        to_stderr: no

        to_logfile: yes

        to_syslog: yes

        logfile:/var/log/cluster/corosync.log

        debug: off

        timestamp: on

        logger_subsys {

                  subsys: AMF

                  debug: off

        }

}

amf {

        mode: disabled

}

service{  /**此处添加**/

        ver:0

        name:pacemaker

}

aisexec{

        user:root

        group:root

}

其二,创建ha节点通讯密码,配置文件:/etc/ha.d/authkeys

        内容:

        auth          1

1        sha1       secret     #sha1为加密算法,secret为设置的密码

2、关闭防火墙

          关闭防火墙测试HA是否安装成功,测试完成后,实际生产环境应该打开防火墙,放开HA所需的端口。

命令:chkconfig    iptables    off


3、重启系统

        命令:reboot



第二章 Linux-HA 配置2.1 HA启动和检测2.1.1 HA启动

启动命令:service        corosync         start


当提示启动后,使用命令查看运行状态,

命令为:crm_mon


如果没有异常,则会显示,当前集群的运行参数。

   如果有异常则检测异常出现的原因。

2.1.2 HA运行检测

1、检测HA引擎是否正常启动,查看其日志文件。

命令:grep -i  -e "corosync cluster engine" -e"configuration file" /var/log/messages

 出现图示中的提示说明启动成功,否则检查原因。


2、检查初始化节点通知是否发出。

  命令:grep -i totem /var/log/messages

 出现上图所示提示,表示节点初始化通知发送成功。


出现上图提示则表示,初始化通知发送失败,并且失败的原因有可能是防火墙没有放开HA配置的端口。



3、检查启动后运行过程中是否有运行错误。

命令:grep -i error:  /var/log/messages  |grep -v unpack_resources

(为了检查stonith的错误,因为我们在这里没有安装stonith,所以得将stonith去掉,不去掉的话会报错)


4、检查pacemaker是否启动。

命令:grep -i pcmk_startup /var/log/messages

如图所示,pacemaker启动成功。可以进行资源配置了。


2.2 HA资源配置2.2.1 禁用STONITH

 STONITH组件是用来严格控制节点是否下线,强制节点脱离集群的工具,在没有安装的时候运行pacemaker,日志中会出现报错信息。

因此,如不使用它,最好是禁用,命令为:

[root@node1 corosync]#crm                              //进入crm界面

crm(live)#configure                                         //进入配置模式

crm(live)configure# property stonith-enabled=false  //禁用stonith

crm(live)configure# commit                                        //提交本次改动


2.2.2 查看配置验证配置语法

1、查看集群当前配置。

命令:[root@node1 corosync]# crm  configure show



显示效果如上图所示。




2、验证集群配置语法正确性。

命令:[root@node1 corosync]# crm_verify -L


验证如上图所示,可能存在某些配置错误,需要及时作出修改。

2.2.3 双机HA的特殊配置(关闭票数统计)

对于双机组成的HA系统,当一台节点出现故障时,另一台并不会进行切换,原因是存活的节点不能获得其他节点的票数。因此在双机HA系统中应该关闭投票机制,当节点出现问题时直接进行切换。

改变quorum命令:

[root@node1 corosync]# crm

crm(live)#configure

crm(live)configure#property no-quorum-policy=ignore

crm(live)configure#commit


2.2.4 添加虚拟IP

多个主机(节点)对外提供服务,需要使用一个公用的IP,即虚拟IP。

在集群中添加一个虚拟IP,其实也就是添加一个IP资源。

命令:

crm(live)configure# primitive  VIP  ocf:heartbeat:IPaddr params  ip=192.168.1.100

crm(live)configure#commit


如上图所示,虚拟IP设置成功,资源名字为VIP。


2.2.5 添加其他资源

1、资源定义

集群的资源类型有4种:

primitive    本地主资源(只能运行在一个节点上)

group       把多个资源归到一个组里面,便于管理

clone        需要在多个节点上同时启用的  (如ocfs2 ,stonith ,没有主次之分)

master      有主次之分,如drbd

2、资源查询

使CRM提供的命令查询某一具体资源在什么组件的管理下,命令:

[root@node1 corosync]# crm

crm(live)# configure

crm(live)configure# ra

crm(live)configure ra# classes


如上图所示,列出了所有可管理的资源分类,可以使用命令查看某一组件内管理的具体资源,命令:

crm(live)configure ra#list  heartbeat

查看heartbeat分类下管理的资源,效果如下图:


命令:

crm(live)configurera#list  lsb

查看lsb分类下的所有分类,显示效果如下图:


在安装某一服务之后即可看到pacemaker将服务划分至某一分类下做管理。



3、向集群中添加一个资源

下面以添加一个httpd服务为例子,向集群中添加资源。

如上所述,在安装httpd服务之前在所有的分类中查询不到httpd相关的信息,安装完成之后,在LSB分类中查询到httpd服务资源,也就是说httpd服务在pacemaker下划归为LSB分类管理。

向集群中添加该资源,详细命令如下:

crm(live)configure ra#l end

crm(live)configure# primitive WEBSERVER lsb:httpd

crm(live)configure# commit

 上述命令,添加LSB分类下的httpd服务资源以私有方式(只允许在一个节点上运行)加入进集群,并取名为WEBSERVER。

查看是否添加成功,命令:

crm(live)configure# show



查看是否运行成功,命令:

crm(live)configure# end

crm(live)# status




如图所示,httpd服务在节点rpmnode2上启动成功。

2.2.6 资源的分组管理

为了方便管理对所有资源按照相应的功能进行分组设置,分组完成后,各节点按照组进行服务资源的接管或者停用。


添加分组命令:

crm(live)configure# group  WEB  VIP  WEBSERVER

crm(live)configure# commit

   命令解释,添加分组WEB,并向WEB分组中添加资源VIP和WEBSERVER,添加完成后查看相关配置信息,效果如下图。


2.2.7 配置资源监视

配置资源监视,可以在定义资源时用opmonitor命令定义。

虽然 High AvailabilityExtension 可以检测节点故障,但也能够检测节点上的各个资源何时发生故障。如果希望确保资源运行,则必须为该资源配置资源监视。资源监视包括指定超时和/或启动延迟值以及间隔。间隔告诉 CRM 检查资源状态的频率。

crm(live)# configure

crm(live)configure#monitor  WEBSERVER  5s:15s

crm(live)configure#commit

命令解释,使用monitor命令为资源WEBSERVER添加监控,监控间隔时间(interval)为5秒,超时时间(timeout)为15秒。

第三章 Linux-HA运行/调试3.1 资源的管理3.1.1资源的迁移

使用shell控制功能的帮助可以查看相关的操作命令,对资源的具体操作封装在resource目录下,

进入相关命令模式:


crm(live) # resource

crm(live) resource # help

迁移命令,具体操作:

crm(live) resource # migrate WEB rpmnode1

将分组资源WEB迁移至节点rpmnode1.

                  crm(live) resource # unmigrate WEB

取消资源迁移。

3.1.2 资源的启动停止

停止某个资源命令,具体操作:

crm(live) resource # stop WEB

停止分组资源WEB的运行。

启动分组资源WEB:

                  crm(live) resource # start WEB

重新启动分组资源WEB:

  crm(live) resource # restart WEB

3.2 资源的优先级设置3.2.1 设置的原因

之所以要设置资源的优先级,是因为集群管理工具pacemaker在安装的时候并不要求所有的节点都有相同的硬件设置,因此在你的集群系统中,各个节点的硬件配置有可能不同。在这种情况下你有可能会希望某些资源优先在某个节点上运行。

3.2.2 设置的方法

为了达到这种效果我们可以使用configure配置下的location约束条件进行约束。

具体命令:

crm(live)configure#location  WEB_NODE1_SORCE  WEB  50: rpmnode1

命令解释,使用location命令定义一个名为WEB_NODE1_SORCE的约束,约束的内容是分组资源WEB在rpmnode1节点上运行的优先级参数为50,如果其他节点优先级数比50小,则优先在rpmnode1节点上运行。

输入命令时,注意格式:


在以上设置基础上,停止节点一(rpmnode1)的资源运行,资源自动切换至节点二(rpmnode2),但是当节点一重新启动后,资源自动转移到节点一。


第四章DRBD数据同步安装/配置/运行

4.1 DRBD安装4.1.1 RPM软件安装

1、上传RPM安装包至服务器目录/root/RPMDRBD下,

RPM安装文件列表如下:

drbd-8.4.1-1.el6.x86_64.rpm

drbd-bash-completion-8.4.1-1.el6.x86_64.rpm

drbd-heartbeat-8.4.1-1.el6.x86_64.rpm

drbd-km-2.6.32_220.17.1.el6.x86_64-8.4.1-1.el6.x86_64.rpm

drbd-pacemaker-8.4.1-1.el6.x86_64.rpm

drbd-udev-8.4.1-1.el6.x86_64.rpm

drbd-utils-8.4.1-1.el6.x86_64.rpm

drbd-xen-8.4.1-1.el6.x86_64.rpm

2、安装软件包

# cd  /root/RPMDRBD

         #yum     localinstall      *.rpm       - -nogpgcheck

注意:以上1、2两步操作需要在所有节点上完成。

3、测试安装是否成功

命令:

# modprobe  drbd


出现如图所示一的错误,则说明linux内核缺少对drbd的支持,安装失败。

4、如果安装失败则需要重新编译安装,具体步骤见4.2节。

4.1.2 DRBD编译安装

1、主备节点进行系统升级,并重启:

yum update

reboot

重新启动,非常重要否则升级不生效后面编译容易出错,make km-rpm通不过,主要是因为uname -r得出的内核版本,与/usr/src/kernels/目录下的内核版本不一致。

2、主备节点安装编译环境:

yum -y install gcc make automake autoconf flex rpm-buildkernel-devel

3、主备节点创rpmbuild目录,为后面编译rpm包做准备:

mkdir -p rpmbuild/SOURCES  

4、主备节点下载drbd源码包,并编译成rpm:

wget   http://oss.linbit.com/drbd/8.4/drbd-8.4.1.tar.gz

或者上传drbd-8.4.1.tar.gz源码包。

5、解压编译

tar -zxvf drbd-*

cd drbd-*

./configure

make rpm

make km-rpm

6、安装rpm文件

cd /root/rpmbuild/RPMS/x86_64/

yum localinstall *.rpm --nogpgcheck

7、主备节点载入drbd模块,创建drdb分区元数据,并启用资源:

modprobe drbd

lsmod |grep drbd

如果结果无报错,有drbd的字样,说明安装成功。

drbdadm create-md drbddisk //创建元数据

drbdadm up drbddisk //启用资源

4.2 DRBD配置4.2.1 创建DRBD分区

首先查看系统当前分区情况,以确定为DRBD分区分配空间的大小。

使用命令:

[root@rpmnode1 ~]# lvs

如图所示:


系统共有20G空间。

为DRBD分配一个1G空间,具体命令:

# lvcreate  -n  drbdlabel  -L  1G  vg_rpmnode1



4.2.2 DRBD详细配置

1、划分独立的逻辑分区

命令:#lvs

查看逻辑分区的使用空间,至少留有1G的空闲空间。

命令:# lvcreate  -n  drbdlabel  -L  1G  vg_rpmnode1

命令解释,使用lvcreate命令在卷标为vg_rpmnode1的分区上划分一个分区名为drbdlabel的逻辑分区。

如果使用独立的硬盘作为drbd的数据存放区,则需要为系统重新挂载新硬盘(详细步骤查看网络教程《linux系统硬盘挂载》)。

2、配置drbd文件

该配置文件位置为/etc/drbd.conf。

global {

usage-count yes;

}

common {

protocol C;

}

resource drbddisk {

meta-disk internal;

device /dev/drbd1;

syncer {

verify-alg sha1;

}

net {

allow-two-primaries;

}

on rpmnode1 {

disk /dev/mapper/VolGroup-drbd--demo; #独立硬盘则写独立硬盘号,如:/dev/sdb1

address 192.168.20.39:7789;

}

on rpmnode2 {

disk /dev/mapper/VolGroup-drbd--demo; #独立硬盘则写独立硬盘号,如:/dev/sdb1

address 192.168.20.29:7789;

}

}

3、修改配置

文件/etc/drbd.d/global_common.conf

文件/etc/drbd.d/redis.res,

可以修改本地示例配置文件后上传。

4、初始化drbd资源,两个节点上都执行

命令:

# drbdadm  create-md  drbddisk

其中drbddisk是上面配置文件中所配置的资源名。


4、将drbd载入linux内核并检验是否正确

命令:

# modprobe  drbd


出现如图所示一的错误,则说明linux内核缺少对drbd的支持,安装失败。

# drbdadm  up  drbddisk    


# cat  /proc/drbd    


5、设置主节点

drbdadm primary --force drbddisk

成功后会看到正在同步数据,使用命令:

cat  /proc/drbd

如图:    


6、格式化(只在主节点上完成即可)

命令:    mkfs.ext4   /dev/drbd1

7、测试主备节点之间的数据同步(注意步骤):

1) 在主节点上:

创建测试文件:echo –e  "hell0">/data/test.txt

卸载drbd设备:umount/data

主节点角色降级:drbdadm secondary drbddisk

2)在备用节点上:

把备用节点设置为primary角色:drbdadm  primary  drbddisk

挂载drbd设备:mount /dev/drbd0  /data

查看备用节点的/data目录,可以看到在主节点上的创建的文件。

说明切换成功!再次查看drbd状态,两个节点的角色应该已经转换过来了。

4.3 集群中添加DRBD文件系统资源4.3.1创建数据克隆

进入shell管理界面,进行相关设置,

命令:

#crm

crm(live) #  cib  new drbd

crm(drbd) # configure primitive DRBDDATA ocf:linbit:drbdparams drbd_resource=drbddisk  \

      op monitorinterval="30s" role="Master" \

      op monitor interval="31s" role="Slave" \

      op start interval="0" timeout="240s" \

      op stop interval="0" timeout="100s"

crm(drbd) # configure ms DRBDDATACloneDRBDDATA \

      meta master-max="1" master-node-max="1"clone-max="2" clone-node-max="1" notify="true" crm(drbd)# configure show

crm(drbd) # cib  commit  drbd

命令解释:





4.3.2创建集群文件系统

现在DRBD已经工作了,我们可以配置一个Filesystem资源来使用它。此外,对于这个文件系统的定义,同样的我们需要告诉集群这个文件系统能在哪运行(主DRBD运行的节点)以及什么时候可以启动(在主DRBD启动以后)。

进入shell管理界面,进行相关设置,

命令:

# crm

crm(live)# cib new fs

crm(fs) # configure primitive FS ocf:heartbeat:Filesystem \

       paramsdevice="/dev/drbd1" directory="/home/data"fstype="ext4" \

       op startinterval="0" timeout="60s" \

       op stopinterval="0" timeout="60s"

crm(fs) # configure colocation fs_on_drbd  inf: FS  DRBDDATAClone:Master

crm(fs) # configure order FS-after-DRBDDATA  inf:  DRBDDATAClone:promote FS:start

crm(fs) # crm configure show

crm(fs) # cib commit fs

第五章 附录(最终配置文件)5.1 Heartbeat配置文件

文件目录:/etc/ha.d/ authkeys,文件内容:

auth 1

1 sha1 secret

5.2 Corosync配置文件

文件目录:/etc/corosync/ corosync.conf,文件内容:

compatibility: whitetank

totem {

 version: 2

 secauth: off

 threads: 0

 interface {

     ringnumber: 0

     bindnetaddr: 192.168.20.0

     mcastaddr: 226.94.1.1

     mcastport: 5405

     ttl: 1

 }

}

logging {

 fileline: off

 to_stderr: no

 to_logfile: yes

 to_syslog: yes

 logfile:/var/log/cluster/corosync.log

 debug: off

 timestamp: on

 logger_subsys {

     subsys: AMF

     debug: off

 }

}

amf {

 mode: disabled

}

service{

 ver:0

 name:pacemaker

}

aisexec{

 user:root

 group:root

}

5.3drbd配置文件

配置文件:/etc/drbd.conf,内容:

global {

usage-count yes;

}

common {

protocol C;

}

resource drbddisk {

meta-disk internal;

device /dev/drbd1;

syncer {

verify-alg sha1;

}

net {

allow-two-primaries;

}

on rpmnode1 {

disk /dev/sdb1;

address 192.168.20.39:7789;

}

on rpmnode2 {

disk /dev/sdb1;

address 192.168.20.29:7789;

}

}


5.4 CRM最终配置

配置CRM交互式配置系统内的配置文件,打开命令为:

#crm configure edit

在文件中编辑:

node rpmnode1

node rpmnode2

primitive DRBDDATA ocf:linbit:drbd \

       params drbd_resource="drbddisk"\

       op monitorinterval="30s" role="Master" \

       op monitorinterval="31s" role="Slave" \

       op startinterval="0" timeout="240s" \

       op stopinterval="0" timeout="100s"

primitive FS ocf:heartbeat:Filesystem \

       params device="/dev/drbd1"directory="/home/data" fstype="ext4" \

       op startinterval="0" timeout="60s" \

       op stopinterval="0" timeout="60s"

primitive VIP ocf:heartbeat:IPaddr \

       paramsip="192.168.20.200"

primitive WEBSERVER lsb:httpd \

       op monitorinterval="5s" timeout="15s"

group WEB VIP WEBSERVER

ms DRBDDATAClone DRBDDATA \

       metamaster-max="1" master-node-max="1" clone-max="2"clone-node-max="1" notify="true"

location WEB_NODE1_SORCE WEB 50: rpmnode1

colocation fs_on_drbd inf: FS DRBDDATAClone:Master

order FS-after-DRBDDATA inf: DRBDDATAClone:promote FS:start

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

      dc-version="1.1.6-3.el6-a02c0f19a00c1eb2527ad38f146ebc0834814558"\

      cluster-infrastructure="openais" \

      expected-quorum-votes="2" \

      stonith-enabled="false" \

      no-quorum-policy="ignore" \

      last-lrm-refresh="1338370539"

5.5 httpd配置

配置文件: /etc/httpd/conf/httpd.conf ,作如下修改:

Listen  80

修改为:

Listen 192.168.20.200:80   #红色部分IP为对外提供服务的虚拟公共IP