1   集群安装与配置

1.1  集群安装

1.1.1  确认安装pacemaker,cmanpcs

# yum install -y pacemaker cman pcs

1.1.2  确认关闭corosync服务

# chkconfig corosync off

1.1.3  升级pacemaker,cmanpcs

RHEL6.6安装光盘放入光驱中,并确认本地yum源配置无误的情况下,执行以下命令:

# yum update -y pacemaker cman pcs

1.2  创建并启动集群

1.2.1  hacluster用户创建密码

分别在节点zhcbdppm01zhcbdppm02中执行以下命令:

# passwd hacluster

1.2.2  启动pcsd服务

# service pcsd start

# chkconfig pcsd on

1.2.3  认证pcs

# pcs cluster auth zhcbdppm01 zhcbdppm02

1.2.4  创建集群

# pcs cluster setup --start --name zhcbdppmclusterzhcbdppm01 zhcbdppm02

1.3  配置stonith

1.3.1  zhcbdppm01节点stonith配置

# pcs stonith create zhcbdppm01_fencefence_ipmilan \

 ipaddr=” 21.244.112.195” \

 passwd=” superuser” \

 login=” zteroot” \

 action=”reboot”\

 pcmk_host_list= zhcbdppm01

1.3.2  zhcbdppm02节点stonith配置

# pcs stonith create zhcbdppm02_fencefence_ipmilan \

 ipaddr=” 21.244.112.196” \

 passwd=” superuser” \

 login=” zteroot” \

 action=”reboot” \

 pcmk_host_list= zhcbdppm02

1.4  创建资源与资源组

1.4.1  创建mariadbDRBD资源

# pcs resource create mariadb_drbd_res \

 ocf:linbit:drbd\

 drbd_resource=mariadb_drbd

 

# pcs resource master mariadb-drbdmariadb_drbd_res \

 master-max=1 \

 master-node-max=1 \

 clone-max=2 \

 clone-node-max=1 \

 notify=true

1.4.2  创建managerDRBD资源

# pcs resource create manager_drbd_res \

 ocf:linbit:drbd \

 drbd_resource=manager_drbd

 

# pcs resource master manager-drbd manager_drbd_res\

 master-max=1 \

 master-node-max=1 \

 clone-max=2 \

 clone-node-max=1 \

 notify=true

1.4.3  创建mariadb_service资源组

# pcs resource create mariadbIPocf:heartbeat:IPaddr2 \

 ip=21.244.112.198\

 cidr_netmask=24 \

 --groupmariadb_service

 

# pcs resource create mariadbFS ocf:heartbeat:Filesystem\

 device=”/dev/drbd0” \

 directory=” /data2” \

 fstype=”ext4” \

 --group mariadb_service

 

# pcs resource create mariadbScript lsb:mysql\

 --group mariadb_service

1.4.4  创建manager_service资源组

# pcs resource create managerIPocf:heartbeat:IPaddr2 \

 ip=21.244.112.197\

 cidr_netmask=24 \

 --groupmanager_service

 

# pcs resource create managerFS ocf:heartbeat:Filesystem\

 device=” /dev/drbd1” \

 directory=” /data1” \

 fstype=”ext4” \

 --groupmanager_service

 

# pcs resource create managerScript lsb:managerha\

 --group manager_service

1.4.5  创建loaderActive资源

# pcs resource create loaderActive lsb:loaderActive.sh

1.4.6  创建loaderStandby资源

# pcs resource create loaderStandby lsb: loaderStandby

1.5  创建资源规则

1.5.1  创建Loaction规则

# pcs constraint location loaderStandbyprefers \

 zhcbdppm01=200

# pcs constraint location loaderStandbyprefers \

 zhcbdppm02=100

 

# pcs constraint location loaderActiveprefers \

 zhcbdppm02=200

# pcs constraint location loaderStandbyprefers \

 zhcbdppm02=100

 

# pcs constraint location mariadb_serviceprefers \

 zhcbdppm01=200

# pcs constraint location mariadb_serviceprefers \

 zhcbdppm02=100

 

# pcs constraint location manager_serviceprefers \

 zhcbdppm01=200

# pcs constraint location manager_serviceprefers \

 zhcbdppm02=100

1.5.2  创建order规则

# pcs constraint order promote mariadb-drbdthen start mariadb_service

# pcs constraint order promote manager-drbdthen start manager_service

# pcs constraint order start mariadb_servicethen start manager_service

1.5.3  创建colocation规则

# pcs constraint colocation addloaderStandby with loaderActive \

 score=-INFINITY

 

# pcs constraint colocation add mariadb_servicewith master mariadb-drbd \

 score=INFINITY

 

# pcs constraint colocation addmanager_service with master manager-drbd \

 score=INFINITY

1.6  资源默认参数配置

# pcs resource defaultsresource-stickness=100

# pcs resource defaults failure-timeout=60s

# pcs resource defaults migration-threshold=1

1.7  特殊资源参数配置

# pcs resource meta loaderActivemigration-threshold=20

# pcs resource update op monitorinterval=5s

2   集群切换

2.1  zhcbdppm01节点资源切换到zhcbdppm02

zhcbdppm01节点上执行:

# pcs cluster standby zhcbdppm01

 

等待资源切均换到zhcbdppm02上时,执行:

# pcs cluster unstandby zhcbdppm01

2.2  zhcbdppm02节点资源回切到zhcbdppm01

zhcbdppm02节点上执行:

# pcs cluster standby zhcbdppm02

 

等待资源切均换到zhcbdppm02上时,执行:

# pcs cluster unstandby zhcbdppm02

2.3  切换单一资源/资源组

例:切换manager_service资源组到zhcbdppm02节点

# crm_resource --resource manager_service--move --node zhcbdppm02

 

例:将manager_service资源组回切到zhcbdppm01节点

# crm_resource --resource manager_service--move --node zhcbdppm01

2.4  切换时监控资源状态命令

# crm_mon

# pcs status

3   应急方案

3.1  DRBD应急方案

DRBD服务出现脑裂时,两个节点的内容将不能同步,因此需要进行脑裂恢复。

3.1.1  备份数据

为防止在恢复过程中造成数据丢失,建议先对数据进行备份。

3.1.2  停止双机服务

DRBD出现脑裂时,首先应该停止双机服务,以便释放应用对DRBD磁盘的使用。需要在两个节点分别执行以下命令:

# pcs cluster stop

3.1.3  进行脑裂恢复

I.      在两个节点分别手动启动DRBD服务

# service drbd start

II.     在主节点执行命令,强制提升为DRBD主节点

# drbdadm primary all

III.   在备节点执行命令,强制降为DRBD备节点

# drbdadm secondary all

IV.  在备节点上执行数据同步此操作

# drbdadm -- --discard-my-data connect all

V.    在主节点上执行连接操作

# drbdadm connect all

3.1.4  停止DRBD服务

在恢复完DRBD后,需要停止DRBD服务,以便让双机来正常拉动DRBD服务。分别在两个节点执行以下命令

# service drbd stop

3.1.5  启动双机服务

在两个节点上,分别执行以下操作

# pcs cluster start

3.2  双机应急方案

当双机状态出现异常时,需要手动重启双机,以便恢复到正常状态。

I.      分别在两个节点重启双机

# pcs cluster stop

# pcs cluster start

II.     重启服务器后,再启动双机服务

如果出现只重启双机服务后,部分服务不能正常恢复,建议重启服务器后,在启动双机服务:

# reboot

# pcs cluster start