Corosync/openais+pacemaker+DRBD实现DRBD服务高可用集群

1、配置node1和node2的物理IP地址:|
node1:
ifconfig eth0 192.168.0.202/24

node2:
ifconfig eth0 192.168.0.204/24

2、配置两主机名,保证重启之后主机名不变

node1:
sed -i 's@\(HOSTNAME=\).*@\1node1.a.org@g'
hostname node1.a.org

node2:
sed -i 's@\(HOSTNAME=\).*@\1node2.a.org@g'
hostname node2.a.org

3、配置/etc/hosts文件,保证能够进行本地主机名解析
node1:
vim /etc/hosts 添加如下内容:
192.168.0.202 node1.a.org node1
192.168.0.204 node2.a.org node2
在node2上进行同样的配置

4、配置两个主机之间能够实现无密码访问

node1:
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node2

node2:
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@node1

二、安装Corosync/openais+pacemaker

1、下载、安装软件包

我们只是为了验证这个解决方案,为了方便演示,使用rpm包进行安装

所需的软件包:

cluster-glue-1.0.6-1.6.el5.i386.rpm
libesmtp-1.0.4-5.el5.i386.rpm
cluster-glue-libs-1.0.6-1.6.el5.i386.rpm
openais-1.1.3-1.6.el5.i386.rpm
corosync-1.2.7-1.1.el5.i386.rpm
openaislib-1.1.3-1.6.el5.i386.rpm
corosynclib-1.2.7-1.1.el5.i386.rpm
pacemaker-1.0.11-1.2.el5.i386.rpm
pacemaker-libs-1.0.11-1.2.el5.i386.rpm
heartbeat-3.0.3-2.3.el5.i386.rpm
perl-TimeDate-1.16-5.el5.noarch.rpm
heartbeat-libs-3.0.3-2.3.el5.i386.rpm
resource-agents-1.0.4-1.1.el5.i386.rpm

将所有的软件包放到一个自建的目录yum中,方便安装

安装软件包
cd /yum
yum localinstall * --nogpgcheck -y

配置node1

2、配置node1的corosync

cd /etc/corosync/
cp corosync.conf.example corosync.conf 创建配置文件

修改配置文件

vim corosync.conf 添加如下内容:

service {
ver: 0
name: pacemaker
}

aisexec { 这个是安装了openais才需要添加的内容
user: root
group: root
}
并设定此配置文件中 bindnetaddr后面的IP地址为你的网卡所在网络的网络地址,我们这里的两个节点在192.168.0.0网络,因此这里将其设定为192.168.0.0;如下
bindnetaddr: 192.168.0.0
保存退出即可

创建所需要的日志目录

mkdir /var/log/cluster/

3、使用corosync-keygen 生成一个密钥,来进行同个集群主机的认证

corosync-keygen

4、将配置文件和密钥同步到node2上,并在node2上创建日志目录

scp –p corosync.conf authkey node2.a.org;/etc/corosync/
ssh node2 ‘mkdir –v /var/log/cluster’

5、启动node1的corosync服务

/etc/init.d/corosync start

6、验证是否成功启动了服务,在两个节点上进行同样的操作

(1)查看corosync引擎是否正常启动:

grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/messages 下面为输出信息

2011-09-15 12-01-06_thumb[5]

(2)查看初始化成员节点通知是否正常发出:

grep TOTEM /var/log/messages

2011-09-15 11-59-18_thumb[7]

(3)检查启动过程中是否有错误产生:

grep ERROR: /var/log/messages | grep -v unpack_resources 应该没有信息输出

(4)查看pacemaker是否正常启动:

grep pcmk_startup /var/log/messages

2011-09-15 12-02-56_thumb[6]

如果上面命令执行均没有问题,接着可以执行如下命令启动node2上的corosync

ssh node2 -- /etc/init.d/corosync start

注意:启动node2需要在node1上使用如上命令进行,不要在node2节点上直接启动;

使用同样的方法验证node2是否成功启动

(5)使用Crm status命令, 查看两个节点的信息,看该服务是否已经同步

2011-09-14-11-57-14_thumb2_thumb

表示两个节点上的服务已经同步

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/92dce069f8947ac241fe2333c5a51e1d.html