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 下面为输出信息
(2)查看初始化成员节点通知是否正常发出:
grep TOTEM /var/log/messages
(3)检查启动过程中是否有错误产生:
grep ERROR: /var/log/messages | grep -v unpack_resources 应该没有信息输出
(4)查看pacemaker是否正常启动:
grep pcmk_startup /var/log/messages
如果上面命令执行均没有问题,接着可以执行如下命令启动node2上的corosync
ssh node2 -- /etc/init.d/corosync start
注意:启动node2需要在node1上使用如上命令进行,不要在node2节点上直接启动;
使用同样的方法验证node2是否成功启动
(5)使用Crm status命令, 查看两个节点的信息,看该服务是否已经同步
表示两个节点上的服务已经同步