安装和设置指南适用于DRBD,OpenAIS,Pacemaker + Xen On OpenSUSE 11.1

OpenSUSE 11.1中的DRBD,OpenAIS,Pacemaker + Xen的安装和设置指南

Adam Gandelman撰写

以下将在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

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏