建立高可用OpenStack云(一):安装集群

欢迎来到我的首篇讨论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使它高可用度。