OpenSUSE 11.1中的DRBD,OpenAIS,Pacemaker + Xen的安装和设置指南
以下将在OpenSUSE 11.1上安装和配置DRBD,OpenAIS,Pacemaker和Xen,以提供高可用性的虚拟机。 此设置不会利用Xen的实时迁移功能。 相反,一旦检测到主机故障,VM将在辅助节点上启动。 Xen虚拟磁盘映像在使用DRBD的节点之间进行复制,集群上的所有服务将由OpenAIS和Pacemaker进行管理。 以下设置使用DRBD 8.3.2和Pacemaker 1.0.4。 重要的是要注意,DRBD 8.3.2自从以前的版本在与Pacemaker的兼容性方面已经走了很长的路。 特别是新的DRBD OCF资源代理脚本和新的DRBD级资源击剑功能。 此配置将不适用于旧版本的DRBD。
本文档不涵盖Xen虚拟机的配置。 相反,假设您有一个正在使用基于文件的磁盘映像在本地配置的虚拟机。 例如,我们的domU资源将管理在debian.cfg中配置的Debian虚拟机。
有关这些组件的更多信息以及其他文档,请访问这些链接:
DRBD - http://www.drbd.org
Pacemaker - http://www.clusterlabs.org
OpenaAIS - http://www.openais.org
内容:
1.安装Xen
2.安装并配置DRBD
3.安装并配置OpenAIS +Pacemaker
4.配置DRBD主/从资源
5.配置文件系统资源
6.配置domU资源
7.附加信息
1.安装Xen
安装Xen及其先决条件的最简单方法是通过yast命令行工具:
# yast
选择“虚拟化” - >“安装管理程序和工具”。 如果您正在远程服务器上工作,则在询问有关安装图形组件时可能需要回答“否”。 有关Xen Network Bridge的提示时,请选择“是”。
选择“系统” - >“引导加载程序”,并将Xen内核设置为默认内核。
重启。
此时,应该引导Xen内核并将网络接口br0配置为eth0的桥接。
2.安装并配置DRBD
在两个节点上进行编译和安装:
# cd /usr/src
# wget http://oss.linbit.com/drbd/8.3/drbd-8.3.2.tar.gz
# tar -zxf drbd-8.3.2.tar.gz
# cd drbd-8.3.2/
# make clean all
# make install
编辑/etc/drbd.conf
:
global { usage-count no; } common { protocol C; } resource r0 { disk { fencing resource-only; } handlers { # these handlers are necessary for drbd 8.3 + pacemaker compatibility fence-peer "/usr/lib/drbd/crm-fence-peer.sh"; after-resync-target "/usr/lib/drbd/crm-unfence-peer.sh"; } syncer { rate 40M; } on alpha { device /dev/drbd0; disk /dev/sdb1; address 192.168.10.22:7789; meta-disk internal; } on bravo { device /dev/drbd0; disk /dev/sdb1; address 192.168.10.23:7789; meta-disk internal; }
复制到其他节点:
alpha:~ # scp /etc/drbd.conf root@bravo:/etc/drbd.conf
创建元数据:
alpha:~ # drbdadm create-md r0
bravo:~ # drbdadm create-md r0
开始DRBD:
alpha:~ # /etc/init.d/drbd start
Starting DRBD resources: [ d(r0) s(r0) n(r0) ]..
bravo:~ # /etc/init.d/drbd start
Starting DRBD resources: [ d(r0) s(r0) n(r0) ].
DRBD启动并连接后,请查看任一节点上的/ proc / drbd以获取资源的状态:
# cat /proc/drbd
GIT-hash: dd7985327f146f33b86d4bff5ca8c94234ce840e build by root@alpha, 2009-07-31 14:27:05
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:3156604
同步资源:
alpha:~ # drbdadm -- --overwrite-data-of-peer primary r0
从DRBD 8.3.2开始,添加了一个新功能,以便在需要时跳过初始同步:
注意:这仅适用于空白或具有完全相同数据的磁盘。
alpha:~ # drbdadm -- --clear-bitmap new-current-uuid r0
3.安装并配置OpenAIS +Pacemaker
先决条件:
zypper install tcl-devel ncurses-devel tcl
获取并安装最新版本的HA实用程序:
wget http://download.opensuse.org/repositories/openSUSE:/11.1/standard/i586/OpenIPMI-2.0.14-1.35.i586.rpm
wget http://download.opensuse.org/repositories/server:/ha-clustering/openSUSE_11.1/i586/heartbeat-common-2.99.2-8.1.i586.rpm
wget http://download.opensuse.org/repositories/server:/ha-clustering/openSUSE_11.1/i586/heartbeat-2.99.2-8.1.i586.rpm
wget http://download.opensuse.org/repositories/server:/ha-clustering/openSUSE_11.1/i586/heartbeat-resources-2.99.2-8.1.i586.rpm
wget http://download.opensuse.org/repositories/server:/ha-clustering/openSUSE_11.1/i586/libheartbeat2-2.99.2-8.1.i586.rpm
wget http://download.opensuse.org/repositories/server:/ha-clustering/openSUSE_11.1/i586/libopenais2-0.80.5-13.1.i586.rpm
wget http://download.opensuse.org/repositories/server:/ha-clustering/openSUSE_11.1/i586/libpacemaker3-1.0.4-24.1.i586.rpm
wget http://download.opensuse.org/repositories/server:/ha-clustering/openSUSE_11.1/i586/openais-0.80.5-13.1.i586.rpm
wget http://download.opensuse.org/repositories/server:/ha-clustering/openSUSE_11.1/i586/pacemaker-1.0.4-24.1.i586.rpm
rpm -ivh *.rpm
创建AIS密钥:
alpha:~ # ais-keygen bravo:~ # ais-keygen
编辑/etc/ais/openais.conf
:
aisexec { user: root group: root } service { name: pacemaker ver: 0 } totem { version: 2 token: 1000 hold: 180 token_retransmits_before_loss_const: 20 join: 60 consensus: 4800 vsftype: none max_messages: 20 clear_node_high_bit: yes secauth: off threads: 0 interface { ringnumber: 0 bindnetaddr: 192.168.10.0 mcastaddr: 226.94.1.2 mcastport: 5406 } } logging { debug: off fileline: off to_syslog: yes to_stderr: no syslog_facility: daemon timestamp: on } amf { mode: disabled }
复制到其他节点:
alpha:~ # scp /etc/ais/openais.conf root@bravo:/etc/ais/openais.conf
启动OpenAIS:
alpha:~ # /etc/init.d/openais start
bravo:~ # /etc/init.d/openais start
配置默认群集选项:
alpha:~ # crm
crm(live)# configure
crm(live)configure# property no-quorum-policy=ignore
crm(live)configure# property stonith-enabled=false
crm(live)configure# property default-resource-stickiness=1000
crm(live)configure# commit
crm(live)configure# bye
两个节点集群不应该涉及到法定人数。 STONITH在此配置中被禁用,尽管在任何生产环境中强烈推荐使用STONITH,以消除不同数据的风险。 默认资源粘性为1000将在故障转移后将资源保留在其中,并防止它们在重新联机后返回失败的节点。
4.配置DRBD主/从资源
alpha:~ # crm configure
crm(live)configure# primitive drbd_xen ocf:linbit:drbd \
params drbd_resource="r0" \
op monitor interval="15s"
crm(live)configure# ms ms_drbd_xen drbd_xen \
meta master-max="1" master-node-max="1" \
clone-max="2" clone-node-max="1" \
notify="true"
crm(live)configure# commit
crm(live)configure# bye
此时,Pacemaker正在处理DRBD资源r0。 检查crm_mon以确保。
5.配置文件系统资源
对于此设置,将有一个文件系统资源在DRBD主机和虚拟机资源上运行,该资源在文件系统的任何节点上运行。
创建文件系统和装载点:
[root@alpha ~]# mkfs.ext3 /dev/drbd0
[root@alpha ~]# mkdir /xen
[root@bravo ~]# mkdir /xen
请注意,您必须在当前主/主节点上运行mkfs命令。
将现有的虚拟机配置文件和磁盘映像复制到共享存储:
[root@alpha ~]# mount /dev/drbd0 /xen
[root@alpha ~]# cp /etc/xen/vm/debian.cfg /xen
[root@alpha ~]# cp /etc/xen/vm/debian.img /xen
[root@alpha ~]# umount /xen
注意:不要忘记更新debian.cfg以指向磁盘映像的新位置。
配置文件系统资源,限制在DRBD之前和之后运行:
[root@alpha ~]# crm configure
crm(live)configure# primitive xen_fs ocf:heartbeat:Filesystem \
params device="/dev/drbd0" directory="/xen"
crm(live)configure# colocation fs_on_drbd inf: xen_fs ms_drbd_xen:Master
crm(live)configure# order fs_after_drbd inf: ms_drbd_xen:promote xen_fs:start
crm(live)configure# commit
crm(live)configure# bye
6.配置domU资源
domU将被配置为使用存储在安装在/ xen上的DRBD资源上的虚拟磁盘映像。 这不是必需的,但也是在共享资源上存储domU配置文件是个好主意。
配置Xen domU资源并限制它在xen_fs之后运行:
[root@alpha ~]# crm configure
crm(live)configure# primitive debian ocf:heartbeat:Xen \
params xmfile="/xen/debian.cfg" \
op monitor interval="10s" \
op start interval="0s" timeout="30s" \
op stop interval="0s" timeout="300s"
crm(live)configure# colocation debian-with-xen_fs inf: debian xen_fs
crm(live)configure# order debian-after-xen_fs inf: xen_fs:start debian:start
crm(live)configure# commit
文件系统和domU资源现在应该在DRBD主节点上运行:
Online: [ alpha bravo ] Master/Slave Set: ms_drbd_xen Masters: [ alpha ] Slaves: [ bravo ] xen_fs (ocf::heartbeat:Filesystem): Started alpha debian (ocf::heartbeat:Xen): Started alpha
Debian virutal机器及其后备存储器现在配置为完全冗余以及高可用性。 如果主机alpha失败,服务将自动故障切换到bravo。
这种配置可以扩展到包括任何数量的虚拟机,假设它们遵守环境的存储和内存限制。 为此,只需重复6.为每个domU 配置domU资源 。
7.附加信息
LINBIT自2001年以来一直领先高可用性,并继续成为业务正常运行时间,灾难恢复和连续性解决方案的市场领导者。 建立在坚实的奥地利软件工程和开源技术基础之上,DRBD是关键任务系统的高可用性和数据冗余的行业标准。
有关LINBIT如何发展IT基础设施电话1-877-4-LINBIT的更多信息,请访问http://www.linbit.com ,或者加入我们在#DRBD中的irc.freenode.net