http://evolution.blog.51cto.com/3343305/665775
原文出自
Corosync提供一种HA集群的解决方案,它使用Pacemaker可扩展的高可用集群资源管理器,配合heartbeat或OpenAIS监控节点之间健康状态,通过服务资源的流转,来保证集群向外提供服务的高可用性。

DRBD是一种块设备,可以被用于高可用(HA)之中,它类似于一个网络RAID-1功能。将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上。以相同的形式记录在一个文件系统中本地(主节点)与远程主机(备节点)的数据可以保证实时同步,以提供数据的异地容灾。在高可用(HA)中使用DRBD功能,以代替昂贵的共享存储设备。
下面借用DRBD官网的一幅图简述其工作流程

本方案拓扑如下:

以下内容包括corosync、drbd的详尽安装及配置过程:
一、Corosync的安装及配置
1.要保证两台节点服务器基于ssl加密且能无障碍的监听heartbeat信号
-
ssh-keygen -t rsa
- ssh-copy-id -i ~/.ssh/id_rsa.pub node2
-
- ssh-keygen -t rsa
- ssh-copy-id -i ~/.ssh/id_rsa.pub node1
-
2.安装相关软件包

-
yum localinstall -y --nogpgcheck ./*
- #进入rpm目录下,全部安装
Ps:node2进行相同操作
3.配置corosync
-
cd /etc/corosync
- cp corosync.conf.example corosync.conf
-
- vim corosync.conf
- bindnetaddr: 192.168.0.0
-
- service {
- ver: 0
- name: pacemaker
- }
- aisexec {
- user: root
- group: root
- }
-
- corosync-keygen
-
- scp -p corosync.conf authkey node2:/etc/corosync/
-
- mkdir /var/log/cluster
- ssh node2 mkdir /var/log/cluster
-
4.在node1节点尝试启动corosync服务,并分析日志来获知其启动状态
-
service corosync start
- #启动服务
-
grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/messages
- #查看服务是否正常启动

-
grep TOTEM /var/log/messages
- #查看初始化成员节点通知是否正常发出

-
grep pcmk_startup /var/log/messages
-

node1正常启动,启动node2
-
ssh node2 service corosync start
-
- crm status
- #查看集群节点启动情况

5.配置集群的工作属性
-
crm configure property stonith-enabled=false
-
- crm configure property no-quorum-policy=ignore
-
- crm configure rsc_defaults resource-stickiness=100
-
对于上述配置的几点说明:
1.由于没有stonith设备,故关闭检测;
2.由于是双节点HA集群,如果在启动法定投票人策略quorum后,将导致其中一台节点服务器宕机另一台由于获得不够半数的法定人投票而导致整个集群无法工作 ;
3.设置资源粘性值,目的在于防止定义的服务资源在两台性能相同的节点服务器上,因其中一台服务器当机状态恢复而回流,导致无谓的消耗集群系统资源 。
-
crm configure show
- #查看配置信息

6.添加服务资源
-
crm configure primitive WebIP ocf:heartbeat:IPaddr params ip=192.168.0.73
-
- crm configure primitive WebServer lsb:httpd
-
- crm configure show
-

-
crm status
- #查看此时集群状态,资源已被均分在两节点上

corosync的配置基本完成,下面是安装、配置DRBD并将其定义为corosync资源,实现高可用。
二、DRBD的安装及配置
1.安装相关软件包
Ps:drbd共有两部分组成:内核模块和用户空间的管理工具。其中drbd内核模块代码已经整合进Linux内核2.6.33以后的版本中,因此,如果您的内核版本高于此版本的话,你只需要安装管理工具即可;否则,您需要同时安装内核模块和管理工具两个软件包,并且此两者的版本号一定要保持对应。(由于作者的内核版本较低,这里选用rpm包来安装drbd模块)
-
yum localinstall -y --nogpgcheck drbd83-8.3.8-1.el5.centos.i386.rpm kmod-drbd83-8.3.8-1.el5.centos.i686.rpm
-
2.DRBD的配置
注意:在修改配置文件之前先给drbd创建一个供其使用的磁盘设备,可以是磁盘分区raid或者逻辑卷(这里作者就直接给其分配一块磁盘分区:使用fdisk命令)
-
cp /usr/share/doc/drbd83-8.3.8/drbd.conf /etc
-
- /etc/drbd.d/global-common.conf
- global {
- usage-count no;
-
- }
- handler {
- fence-peer "/usr/lib/drbd/crm-fence-peer.sh";
- #由于没有stonith设备需要开启此项,使用drbd的fence脚本来防止脑裂
- }
- startup {
- wfc-timeout 120;
- degr-wfc-timeout 120;
- }
- disk {
- on-io-error detach;
- fencing resource-only;
- }
- net {
- cram-hmac-alg "sha1";
- shared-secret "mydrbdlab";
- }
- syncer {
- rate 100M;
- }
- }
-
- vim /etc/drbd.d/web.res
-
- resource web {
- on node1.a.org {
- device /dev/drbd0;
- disk /dev/sda5;
- address 192.168.0.71:7789;
- meta-disk internal;
- }
- on node2.a.org {
- device /dev/drbd0;
- disk /dev/sda5;
- address 192.168.0.72:7789;
- meta-disk internal;
- }
- }
-
- scp /etc/drbd.conf node2:/etc/
- scp /etc/drbd.d/* node2:/etc/drbd.d/
-
3.启动并测试DRBD
-
drbdadm create-md web
- ssh node2 drbdadm create-md web
-
- service drbd start
- ssh node2 service drbd start
-
- drbd-overview
-

-
drbdadm -- --overwrite-data-of-peer primary web
- #设置主节点
- drbd-overview
- #观察运行状态
Ps:您可以使用:watch -n1 'drbd-overview'以每秒一次的刷新频率动态观察运行状态

同步完成

4.创建文件系统,手动测试主从DRBD
-
mke2fs -j -L DRBD /dev/drbd0
- mkdir /mnt/drbd
- mount /dev/drbd0 /mnt/drbd
- #node1挂载中出现lost+found目录
- echo ’test drbd by peacmaker’ > /mnt/drbd/index.html
手动将node2设成master
-
drbdadm secondary web
-
- ssh node2 drbdadm primary web
-
- ssh node2 mount /dev/drbd0 /mnt/drbd
-
- ssh node2 ll /mnt/drbd
-
三、将DRBD整合成corosync资源,接受集群调度
先关闭两节点drbd服务,将其定义集群资源后由corosync控制其启动
-
chkconfig drbd off
- service drbd stop
- ssh node2 chkconfig drbd off
- ssh node2 service drbd stop
-
定义webdrbd资源
-
crm configure primitive webdrbd ocf:linbit:drbd params drbd_resource=web op monitor role=Master interval=50s timeout=30s op monitor role=Slave interval=60s timeout=30s
- crm configure ms MS_Webdrbd webdrbd meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"
查看状态

定义磁盘共享资源,并设置资源约束,规定启动顺序
-
crm configure primitive WebFS ocf:heartbeat:Filesystem params device="/dev/drbd0" directory="/var/www/html" fstype="ext3"
-
- crm configure colocation webserver-ip-FS-MS INFINITY: WebServer WebIP WebFS MS_Webdrbd
-
- crm configure order ip-fs- mandatory: WebIP MS_Webdrbd WebFS WebServer
-
查看资源状态

添加资源约束后,所有约束都在一个节点上,此时从浏览器输入地址
http://192.168.0.73出现drbd中index.html页面内容

现模拟node2宕机,查看资源状态
注意:由于drbd的crm-fence-peer.sh脚本存在,会自动在xml文件中生成如下语句,来保证一旦drbd的master宕机slaver不会顶上master,当master恢复之后出现脑裂或数据不同步等情况的发生。
所以在测试资源流转之前需要删除相关语句,从而实现通过corosync控制drbd资源的流转。
-
crm configure edit
-

-
ssh node2 crm node standby
-
- crm status
- #查看资源状态

资源已经全部成功转移到node1上!
刷新浏览器页面,由于drbd主从受corosync控制发生切换,故web服务将正常访问且是相同内容:

至此Corosync/Pacemaker+heartbeat+drbd高可用集群具体实现流程已叙述完毕,以上内容在您实现过程中出现的任何问题,欢迎在此交流;并请各位高手前辈大神达人予以批评指正,谢谢!
原文出自http://foreveryan.blog.51cto.com/3508502/665534
|
配置前提:
1.节点的名字必须跟uname -n的名字相同,而且两个主机必须能通过主机名来访问。尽量不通过DNS来访问。
2.双方的通信要必须通过SSL的无障碍通信机制
3.双节点之间可以通过某个IP来提供连接,但是这只是通信Ip,我们需要VIP来对外提供服务。
4.我采用虚拟机的方式实现配置,操作系统使用rhel5.4,x86平台
5.两个节点主机IP分别为172.16.19.11(node1.weiyan.org),以及172.16.19.12(node2.weiyan.org)
6.集群服务为apache的httpd服务
7.提供Web服务的地址(VIP)为172.16.19.1
8.在两个节点上分别准备一块大小为2G的分区用于实现DRBD的共享。(本文使用新分区/dev/sda5)
|
一:corosync的配置
1.准备工作
1)我们首先要保证两节点之间时间相差不应该超过1秒
-
hwclock -s
2)两台主机的主机名:node1.weiyan.org && node2.weiyan.org 3)分别在两个node节点上编辑/etc/hosts文件并加入
|
172.16.19.11 node1.weiyan.org node1 172.16.19.12 node2.weiyan.org node2
|
4)生成密钥,确保通信正常
-
- ssh-keygen -t rsa
- ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2.weiyan.org
-
- ssh-keygen -t rsa
- ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1.weiyan.org
5)安装所依赖的软件包,以及要用到的主程序包
|
这里我们创建环境所需要依赖到的软件包有: libibverbs,librdmacm,lm_sensors,libtool-ltdl,openhpi-libs,openhpi,perl-TimeDate
安装corosync和pacemaker,下载主程序包,并将其放至单独目录方便安装:(这里为/root/corosync)
cluster-glue、cluster-glue-libs、heartbeat、openaislib、resource-agents、corosync、heartbeat-libs、pacemaker、corosynclib、libesmtp、pacemaker-libs
下载地址:http://clusterlabs.org/rpm/。请根据硬件平台及操作系统类型选择对应的软件包;这里建议每个软件包都使用目前最新的版本。(本文最后提供了这些软件包,可以直接下载)
|
-
## 安装使用:
- cd /root/corosync
- yum -y --nogpgcheck localinstall *.rpm
2.配置corosync(这阶段内容都在node1上进行)
-
cd /etc/corosync/
- cp corosync.conf.example corosync.conf
1)编辑corosync.conf使其含有如下内容
|
# Please read the corosync.conf.5 manual page compatibility: whitetank totem { ##定义多个node节点之间实现心跳信息传递的相关协议详细信息 version: 2 secauth: off ##是否打开安全认证 threads: 0 interface { ringnumber: 0 bindnetaddr: 172.16.19.0 ##通过哪个网段进行通信 mcastaddr: 226.94.1.1 ##多播地址 mcastport: 5405 ##多播端口 } } 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 ##表明我们要启动pacemaker } aisexec { user:root ##定义启动的身份和组 group:root }
|
建立目录:mkdir /var/log/cluster
2)生成authkey
-
corosync-keygen
3)将配置文件和authkey传递到node2
-
scp -p authkey corosync.conf node2:/etc/corosync
- ssh node2 ‘mkdir -v /var/log/cluster’
3.启动corosync并检查配置
-
service corosync start
1)验证错误
|
##查看corosync引擎是否正常启动 grep -e “Corosync Cluster Engine” -e “configuration file” /var/log/messages
应出现含有:[MAIN ] Corosync Cluster Engine ('1.2.7'): started and ready to provide service.
##查看初始化成员节点通知是否发出 grep TOTEM /var/log/messages
应出现含有:[TOTEM ] The network interface [172.16.19.11] is now up.
##检查启动过程中是否有错误产生: grep ERROR: /var/log/messages
应没有任何内容出现
##查看pacemaker是否正常启动: grep pcmk_startup /var/log/messages
应出现含有:[pcmk ] info: pcmk_startup: Local hostname: node1.weiyan.org
|
3)当node1的检测正常之后,进行node2启动和验证
-
ssh node2 ‘/etc/init.d/corosync start’
4).查看当前集群状态:
-
crm status
|
============ Last updated: Wed Sep 14 20:16:17 2011 Stack: openais Current DC: node1.weiyan.org - partition WITHOUT quorum Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87 2 Nodes configured, 2 expected votes 0 Resources configured. ============
Online: [ node1.weiyan.org node2.weiyan.org ]
|
二.定义高可用资源
1.我们里可以通过如下命令先禁用stonith:
-
crm configure property stonith-enabled=false
2.添加IP资源
-
crm configure primitive WebIP ocf:heartbeat:IPaddr params ip=172.16.19.1
3.定义httpd资源
1)分别在两个节点上安装httpd
-
yum install -y httpd
2)添加网页以方便验证
-
- echo “node1.weiyan.org” > /var/www/html/index.html
-
- echo “node2.weiyan.org” > /var/www/html/index.html
3)手动停止其开机自动启动并确保当前没有启动中
-
chkconfig httpd off
- service httpd stop
4)定义httpd集群资源
-
crm configure primitive WebServer lsb:httpd
4.查看状态并定义约束
1)查看当前资源状态
-
crm status
|
============ Last updated: Web Sep 14 20:29:31 2011 Stack: openais Current DC: node2.weiyan.org - partition with quorum Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87 2 Nodes configured, 2 expected votes 2 Resources configured. ============
Online: [ node1.weiyan.org node2.weiyan.org ]
WebIP (ocf::heartbeat:IPaddr): Started node1.weiyan.org WebServer (lsb:httpd): Started node2.weiyan.org
|
2)定义关联以及约束
-
crm configure colocation WebServer-with-WebIP INFINITY: WebServer WebIP
- crm configure order WebServer-after-WebIP mandatory: WebIP WebServer
- crm configure location prefer-node1 WebServer rule 200: node1
3)定义quorum运行方式
-
crm configure property no-quorum-policy=ignore
4)查看配置状态
-
crm configure show
|
node node1.weiyan.org \ attributes standby="off" node node2.weiyan.org \ attributes standby="off" primitive WebIP ocf:heartbeat:IPaddr \ params ip="172.16.19.1" primitive WebServer lsb:httpd colocation WebServer-with-WebIP inf: WebServer WebIP order WebServer-after-WebIP inf: WebIP WebServer property $id="cib-bootstrap-options" \ dc-version="1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87" \ cluster-infrastructure="openais" \ expected-quorum-votes="2" \ stonith-enabled="false" \ no-quorum-policy="ignore" rsc_defaults $id="rsc-options" \ resource-stickiness="200"
|
三,配置DRBD
1.安装drbd
-
yum -y --nogpgcheck localinstall drbd83-8.3.8-1.el5.centos.i386.rpm kmod-drbd83-8.3.8-1.el5.centos.i686.rpm
2.配置drbd
1)复制样例配置文件为即将使用的配置文件:
-
cp /usr/share/doc/drbd83-8.3.8/drbd.conf /etc
2)配置/etc/drbd.d/global-common.conf
|
global { usage-count no; # minor-count dialog-refresh disable-ip-verification }
common { protocol C;
handlers { pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f"; pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f"; local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f"; # fence-peer "/usr/lib/drbd/crm-fence-peer.sh"; # split-brain "/usr/lib/drbd/notify-split-brain.sh root"; # out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root"; # before-resync-target "/usr/lib/drbd/snapshot-resync-target-lvm.sh -p 15 -- -c 16k"; # after-resync-target /usr/lib/drbd/unsnapshot-resync-target-lvm.sh; }
startup { wfc-timeout 120; degr-wfc-timeout 120; }
disk { on-io-error detach; fencing resource-only; }
net { cram-hmac-alg "sha1"; shared-secret "mydrbdlab"; }
syncer { rate 100M; }
}
|
3).定义一个新资源/etc/drbd.d/web.res,内容如下:
|
resource web { on node1.weiyan.org { device /dev/drbd0; disk /dev/sda5; address 172.16.19.11:7789; meta-disk internal; } on node2.weiyan.org { device /dev/drbd0; disk /dev/sda5; address 172.16.19.12:7789; meta-disk internal; } }
|
4).将配置文件同步至node2
-
scp -r /etc/drbd.conf /etc/drbd.d/ node2:/etc/
4.初始化已定义的资源并启动服务:
1)初始化资源,在Node1和Node2上分别执行:
-
drbdadm create-md web
2)启动服务,在Node1和Node2上分别执行:
-
/etc/init.d/drbd start
3)查看启动状态:
-
cat /proc/drbd
|
version: 8.3.8 (api:88/proto:86-94) GIT-hash: d78846e52224fd00562f7c225bcc25b2d422321d build by mockbuild@builder10.centos.org, 2010-06-04 08:04:16 0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r---- ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:1959800
|
4)设置node1为主节点
-
drbdsetup /dev/drbd0 primary –o
5)而后再次查看状态,可以发现数据同步过程已经开始:
|
# drbd-overview 0:web SyncSource Primary/Secondary UpToDate/Inconsistent C r---- [====>...............] sync'ed: 28.0% (1413848/1959800)K delay_probe: 52
|
6)等数据同步完成以后再次查看状态,可以发现节点已经牌实时状态,且节点已经有了主次:
-
drbd-overview
- 0:web Connected Primary/Secondary UpToDate/UpToDate C r----
5、创建文件系统
文件系统的挂载只能在Primary节点进行,因此,也只有在设置了主节点后才能对drbd设备进行格式化:
-
mke2fs -j -L DRBD /dev/drbd0
- mkdir /mnt/drbd
- mount /dev/drbd0 /mnt/drb
6、切换Primary和Secondary节点
对主Primary/Secondary模型的drbd服务来讲,在某个时刻只能有一个节点为Primary,因此,要切换两个节点的角色,只能在先将原有的Primary节点设置为Secondary后,才能原来的Secondary节点设置为Primary:
-
- echo “drbd.weiyan.org” > /mnt/drbd/index.html
- umount /mnt/drbd
- drbdadm secondary web
-
-
- drbd-overview
- 0:web Connected Secondary/Secondary UpToDate/UpToDate C r----
-
-
- drbdadm primary web
- drbd-overview
- 0:web Connected Primary/Secondary UpToDate/UpToDate C r----
- mkdir /mnt/drbd
- mount /dev/drbd0 /mnt/drbd
四:配置corosync使集群能争用DRBD资源。
1.为了将DRBD定义成集群服务,我们首先要做以下工作
停止drbd服务,以及不能使其开机启动
-
drbd-overview
- 0:web Unconfigured . . . .
- chkconfig drbd off
2.配置drbd为集群资源:
|
小贴士:
提供drbd的RA目前由OCF归类为linbit,其路径为/usr/lib/ocf/resource.d/linbit/drbd。我们可以使用如下命令来查看drbd信息:
crm ra info ocf:linbit:drbd
drbd需要同时运行在两个节点上,但只能有一个节点(primary/secondary模型)是Master,而另一个节点为Slave;因此,它是一种比较特殊的集群资源,其资源类型为多状态(Multi-state)clone类型,即主机节点有Master和Slave之分,且要求服务刚启动时两个节点都处于slave状态。
|
|
[root@node1 ~]# crm
crm(live)# configure
crm(live)configure# primitive webdrbd ocf:heartbeat:drbd params drbd_resource=web op monitor role=Master interval=50s timeout=30s op monitor role=Slave interval=60s timeout=30s
crm(live)configure# master MS_Webdrbd webdrbd meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"
crm(live)configure# show webdrbd ## 查看我们定义的Webdrbd资源
primitive WebDRBD ocf:heartbeat:drbd \
params drbd_resource="web" \
op monitor interval="50s" role="Master" timeout="30s" \
op monitor interval="60s" role="Slave" timeout="30s"
crm(live)configure# show MS_Webdrbd ## 查看定义的clone资源
ms MS_WebDRBD WebDRBD \
meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true"
crm(live)configure# verify
crm(live)configure# commit
|
|
## 查看当前集群运行状态:
crm status
============ Last updated: Fri Jun 17 06:24:03 2011 Stack: openais Current DC: node2.weiyan.org - partition with quorum Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87 2 Nodes configured, 2 expected votes 1 Resources configured. ============
Online: [ node2.weiyan.org node1.weiyan.org ]
Master/Slave Set: MS_Webdrbd
Masters: [ node2.weiyan.org ] Slaves: [ node1.weiyan.org ]
|
由上面的信息可以看出此时的drbd服务的Primary节点为node2.a.org,Secondary节点为node1.a.org。当然,也可以在node2上使用如下命令验正当前主机是否已经成为web资源的Primary节点:
-
drbdadm role web
- Primary/Secondary ## 发现已经是主节点
3.为Primary节点上的web资源创建自动挂载的集群服务
|
MS_Webdrbd的Master节点即为drbd服务web资源的Primary节点,此节点的设备/dev/drbd0可以挂载使用,且在某集群服务的应用当中也需要能够实现自动挂载。假设我们这里的web资源是为Web服务器集群提供网页文件的共享文件系统,其需要挂载至/www(此目录需要在两个节点都已经建立完成)目录。
此外,此自动挂载的集群资源需要运行于drbd服务的Master节点上,并且只能在drbd服务将某节点设置为Primary以后方可启动。因此,还需要为这两个资源建立排列约束和顺序约束。
|
|
## 定义挂载资源
crm crm(live)# configure crm(live)configure# primitive WebFS ocf:heartbeat:Filesystem params device="/dev/drbd0" directory="/www" fstype="ext3" crm(live)configure# colocation WebFS_on_MS_webdrbd inf: WebFS MS_Webdrbd:Master crm(live)configure# order WebFS_after_MS_Webdrbd inf: MS_Webdrbd:promote WebFS:start crm(live)configure# verify crm(live)configure# commit
## 查看集群中资源的运行状态:
crm status
============ Last updated: Fri Jun 17 06:26:03 2011 Stack: openais Current DC: node2.weiyan.org - partition with quorum Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87 2 Nodes configured, 2 expected votes 2 Resources configured. ============
Online: [ node2.weiyan.org node1.weiyan.org ]
Master/Slave Set: MS_Webdrbd Masters: [ node2.weiyan.org ] Slaves: [ node1.weiyan.org ]
WebFS (ocf::heartbeat:Filesystem): Started node2.weiyan.org
|
由上面的信息可以发现,此时WebFS运行的节点和drbd服务的Primary节点均为node2.a.org;我们在node2上复制一些文件至/www目录(挂载点),而后在故障故障转移后查看node1的/www目录下是否存在这些文件。
-
cp /etc/rc./rc.sysinit /www
4.下面我们模拟node2节点故障,看此些资源可否正确转移至node1。
|
以下命令在Node2上执行:
crm node standby ##我们先让node2节点待命 crm status ##查看状态
============ Last updated: Fri Jun 17 06:27:03 2011 Stack: openais Current DC: node2.weiyan.org - partition with quorum Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87 2 Nodes configured, 2 expected votes 2 Resources configured. ============
Node node2.weiyan.org: standby Online: [ node1.weiyan.org ]
Master/Slave Set: MS_Webdrbd Masters: [ node1.weiyan.org ] Stopped: [ webdrbd:0 ]
WebFS (ocf::heartbeat:Filesystem): Started node1.weiyan.org
由上面的信息可以推断出,node2已经转入standby模式,其drbd服务已经停止,但故障转移已经完成,所有资源已经正常转移至node1。
在node1可以看到在node2作为primary节点时产生的保存至/www目录中的数据,在node1上均存在一份拷贝。
|
|
让node2重新上线:
crm node online ## 让node2上线 crm status ## 查看状态,发现node2重新上线并成为主drbd
============ Last updated: Fri Jun 17 06:30:05 2011 Stack: openais Current DC: node2.weiyan.org - partition with quorum Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87 2 Nodes configured, 2 expected votes 2 Resources configured. ============
Online: [ node2.weiyan.org node1.weiyan.org ]
Master/Slave Set: MS_Webdrbd Masters: [ node1.weiyan.org ] Slaves: [ node2.weiyan.org ] WebFS (ocf::heartbeat:Filesystem): Started node1.weiyan.org
|