基于pacemaker 的高可用集群架构----2 一个示例


示例是搭建一个高可用性 KVM 系统: 

需要的组件  :pacemaker,corosync, libvirt,qemu-kvm and open-iscsi 
可以在centos  6.1 版本上完美安装  yum 安装就可以了。 

集群包括3个节点 : alice, bob andcharlie 通过  iscsi  连接共享存储iqn.2011-09.com.hastexo:virtcluster。
每个节点上安装 libvirt;/KVM 虚拟机  从iscsi 上划lun 作为存。
3个虚拟机分别: xray, yankee and zulu

corosync 的配置: 

vi /etc/corosync/corosync.conf
01totem {
02  # Enable node authentication & encryption
03  secauth: on
04 
05  # Redundant ring protocol: none, active, passive.
06  rrp_mode: active
07   
08  # Redundant communications interfaces
09  interface {
10    ringnumber: 0
11    bindnetaddr: 192.168.0.0
12    mcastaddr: 239.255.29.144
13    mcastport: 5405
14  }
15  interface {
16    ringnumber: 1
17    bindnetaddr: 192.168.42.0
18    mcastaddr: 239.255.42.0
19    mcastport: 5405
20  }
21}
22 
23amf {
24  mode: disabled
25}
26 
27service {
28  # Load Pacemaker
29  ver: 1
30  name: pacemaker
31}
32 
33logging {
34  fileline: off
35  to_stderr: yes
36  to_logfile: no
37  to_syslog: yes
38  syslog_facility: daemon
39  debug: off
40  timestamp: on
41}


这里比较重要的一点是使用了两个interface : 可以保证节点之间多条连接通路。 

authkey :  /etc/corosync/authkey 

可以通过 corosync-keygen 来生成。 

安装完一台,把他们copy到其他机器。就可以启动corosync 服务了

service  corosync start  

看看状态: 
corosync-cfgtool -s 

Printing ring status.Local node ID 303938909RING ID 0        id      = 192.168.0.1        status  = ring 0 active with no faultsRING ID 1        id      = 192.168.42.1        status  = ring 1 active with no faults


corosync 启动之后,就可以启动pacemaker 了

service  pacemaker start

用crm status 或者crm_mon 查看状态: 

============Last updated: Fri Feb  3 18:40:15 2012Stack: openaisCurrent DC: bob - partition with quorumVersion: 1.1.6-4.el6-89678d4947c5bd466e2f31acd58ea4e1edb854d53 Nodes configured, 3 expected votes0 Resources configured.============

配置资源: 
01crm  configure << EOF
02 
03primitive p_iscsi ocf:heartbeat:iscsi \
04  params portal="192.168.122.100:3260" \
05    target="iqn.2011-09.com.hastexo:virtcluster" \
06  op monitor interval="10"
07primitive p_xray ocf:heartbeat:VirtualDomain \
08  params config="/etc/libvirt/qemu/xray.xml" \
09  op monitor interval="30" timeout="30" \
10  op start interval="0" timeout="120" \
11  op stop interval="0" timeout="120"
12primitive p_yankee ocf:heartbeat:VirtualDomain \
13  params config="/etc/libvirt/qemu/yankee.xml" \
14  op monitor interval="30" timeout="30" \
15  op start interval="0" timeout="120" \
16  op stop interval="0" timeout="120"
17primitive p_zulu ocf:heartbeat:VirtualDomain \
18  params config="/etc/libvirt/qemu/zulu.xml" \
19  op monitor interval="30" timeout="30" \
20  op start interval="0" timeout="120" \
21  op stop interval="0" timeout="120"
22clone cl_iscsi p_iscsi
23colocation c_xray_on_iscsi inf: p_xray cl_iscsi
24colocation c_yankee_on_iscsi inf: p_yankee cl_iscsi
25colocation c_zulu_on_iscsi inf: p_zulu cl_iscsi
26order o_iscsi_before_xray inf: cl_iscsi p_xray
27order o_iscsi_before_yankee inf: cl_iscsi p_yankee
28order o_iscsi_before_zulu inf: cl_iscsi p_zulu
29 
30EOF


添加stonish 设备: 

01crm configure <
02primitive p_ipmi_alice stonith:external/ipmi \
03  params hostname="alice" ipaddr="192.168.15.1" \
04    userid="admin" passwd="foobar" \
05  op start interval="0" timeout="60" \
06  op monitor interval="120" timeout="60"
07primitive p_ipmi_bob stonith:external/ipmi \
08  params hostname="bob" ipaddr="192.168.15.2" \
09    userid="admin" passwd="foobar" \
10  op start interval="0" timeout="60" \
11  op monitor interval="120" timeout="60"
12primitive p_ipmi_charlie stonith:external/ipmi \
13  params hostname="charlie" ipaddr="192.168.15.3" \
14    userid="admin" passwd="foobar" \
15  op start interval="0" timeout="60" \
16  op monitor interval="120" timeout="60"
17location l_ipmi_alice p_ipmi_alice -inf: alice
18location l_ipmi_bob p_ipmi_bob -inf: bob
19location l_ipmi_charlie p_ipmi_charlie -inf: charlie
20property stonith-enabled="true"


注:  我们的虚拟机里没有stonish 设备这步可以把  
property stonith-enabled  改为false  

crm_mon的输出: 

============Last updated: Fri Feb  3 19:46:29 2012Stack: openaisCurrent DC: bob - partition with quorumVersion: 1.1.6-4.el6-89678d4947c5bd466e2f31acd58ea4e1edb854d53 Nodes configured, 3 expected votes9 Resources configured.============Online: [ alice bob charlie ] Clone Set: cl_iscsi [p_iscsi]     Started: [ alice bob charlie ] p_ipmi_alice   (stonith:external/ipmi):        Started bob p_ipmi_bob     (stonith:external/ipmi):        Started charlie p_ipmi_charlie (stonith:external/ipmi):        Started alice p_xray (ocf::heartbeat:VirtualDomain): Started alice p_yankee       (ocf::heartbeat:VirtualDomain): Started bob p_zulu (ocf::heartbeat:VirtualDomain): Started charlie


人为的制作一个故障;  crm-mon输出: 

============Last updated: Sat Feb  4 16:18:00 2012Stack: openaisCurrent DC: bob - partition with quorumVersion: 1.1.6-4.el6-89678d4947c5bd466e2f31acd58ea4e1edb854d53 Nodes configured, 2 expected votes9 Resources configured.============Online: [ alice bob ]OFFLINE: [ charlie ]Full list of resources: Clone Set: cl_iscsi [p_iscsi]     Started: [ alice bob ]     Stopped: [ p_iscsi:2 ] p_ipmi_alice   (stonith:external/ipmi):        Started bob p_ipmi_bob     (stonith:external/ipmi):        Started alice p_ipmi_charlie (stonith:external/ipmi):        Started alice p_xray (ocf::heartbeat:VirtualDomain): Started bob p_yankee       (ocf::heartbeat:VirtualDomain): Started bob p_zulu (ocf::heartbeat:VirtualDomain): Started alice

charlie 宕机了。 

但是charlie 上的服务转到了 alice 上执行了。 

系统刚搭配后的系统拓扑。

attachment.jsp?aid=4124




发生故障后的系统拓扑: 

attachment.jsp?aid=4125

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/133735/viewspace-741116/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/133735/viewspace-741116/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值