欢迎来到我的首篇讨论OpenStack和High Availability(高可用性)的文章,在这几篇文章里,我要来解释我如何为我的公司建立高可用性的OpenStack云。
我们以两台机器开始我们的集群,两台都有一个公共和两个私有网卡。
·server1:5.x.x.x(公共ip),10.0.0.1 (eth1), 10.1.0.1 (eth2)
·server2:5.x.x.x(公共ip),10.0.0.2 (eth1), 10.1.0.2 (eth2)
两个节点的hosts文件(相关部分)
10.0.0.1 server1
10.0.0.2 server2
Pacemaker与Corosync的安装
首先我们需要安装Pacemaker和Corosync:
apt-get install pacemaker corosync
要对corosync进行设置,将如下内容复制粘贴到所有节点的/etc/corosync/corosync.conf内:
# Please read the corosync.conf.5 manual page
compatibility: whitetank
totem {
version: 2
secauth: off
threads: 0
interface {
ringnumber: 0
bindnetaddr: 10.8.0.0
mcastaddr: 226.94.1.1
mcastport: 5405
ttl: 1
}
}
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
}}
service {
# Load the Pacemaker Cluster Resource Manager
name: pacemaker
ver: 1
}
amf {
mode: disabled
}
quorum {
provider: corosync_votequorum
expected_votes: 2
}
原因不明,但你必须手动创建/var/log/cluster目录,避免产生parse error in config: parse error in config: .的错误:
mkdir /var/log/cluster
我们还需要在启动时候开启两个服务,因此使用:
update-rc.d pacemaker start 50 1 2 3 4 5 . stop 01 0 6 .
要添加Pacemaker并编辑/etc/default/corosync设置:
START=yes
要安装Corosync
注意:上面的设置在两台主机都要进行
检查Corosync配置
开启corosync服务:
service corosync start
检查是否一切正常:
#corosync-cfgtool -s
Printing ring status.
Local node ID 33556490
RING ID 0
id = 10.8.0.2
status = ring 0 active with no faults
还要检查集群节点和人数:
corosync-quorumtool -l
Nodeid Votes Name
16779274 1 server1
33556490 1 server2
检查Pacemaker配置
在确认Corosync工作正常后,让我们来配置Pacemaker,首先,开启服务:
service pacemaker start
现在检查它是否识别出我们的集群:
crm_mon -1
============
Last updated: Mon Jul 16 15:01:57 2012
Last change: Mon Jul 16 14:52:34 2012 via cibadmin on server1
Stack: openais
Current DC: server1 – partition with quorum
Version: 1.1.6-9971ebba4494012a93c03b40a2c58ec0eb60f50c
2 Nodes configured, 2 expected votes
2 Resources configured.
============
Online: [ server1 server2 ]
因为这是两个主机的安装,你还需要禁用人数,由于split brain,因此要禁用人数检查:
crm configure property no-quorum-policy=ignore
在这之后还可以禁用STONITH,如果不需要的话:
crm configure property stonith-enabled=false
现在我们就安装完corosync和pacemaker了,下一步就是安装MySQL并让Pacemaker使它高可用度。