OpenAIS是基于SA Forum 标准的集群框架的应用程序接口规范。OpenAIS提供一种集群模式,这个模式包括集群框架,集群成员管理,通信方式,集群监测等,能够为集群软件或工具提供满足 AIS标准的集群接口,但是它没有集群资源管理功能,不能独立形成一个集群。OpenAIS组件包括AMF,CLM,CKPT,EVT,LCK,MSG,TMR,CPG,EVS等,因OpenAIS分支不同,组件略有不同

OpenAIS主要包含三个分支:Picacho,Whitetank,Wilson。Wilson是最新的,比较稳定的版本是从openais 1.0.0到openais1.1.4。Whitetank现在是主流分支版本,比较稳定的版本是openais0.80到openais0.86。Picacho第一代的OpenAIS的分支,比较稳定的版本是openais0.70和openais0.71。现在比较常用的是Whitetank和Wilson,两者之间有很多不同。OpenAIS从Whitetank升级到Wilson版本后,组件变化很大,Wilson把Openais核心架构组件独立出来放在Corosync(Corosync是一个集群管理引擎)里面。Whitetank包含的组件有AMF,CLM,CKPT,EVT,LCK ,MSG, CPG,CFG,EVS, aisparser, VSF_ykd,bojdb等。而Wilson只含有AMF,CLM,CKPT,LCK, MSG,EVT,TMR(TMR,Whitetank里面没有),这些都是AIS组件。其他核心组件被放到了Corosync内。Wilson被当做Corosync的一个插件。

本次试验需要两个节点的系统版本,时间等都相同
实验拓扑图:

hwclock –s 保持目前版本时间一致

vim /etc/hosts 编辑别名文件
192.168.100.22 node1.a.com    node1
192.168.100.33 node2.a.com    node2
vim /etc/sysconfig/network    修改主机名
HOSTNAME=node1.a.com
重启或刷新主机名
ssh-keygen -t rsa 编辑一个便于管理的ssh连接进程
ssh-copy-id -i id_rsa.pub node2 把产生的公钥文件与node2匹配
yum localinstall -y cluster-glue-1.0.6-1.6.el5.i386.rpm cluster-glue-libs-1.0.6-1.6.el5.i386.rpm corosync-1.2.7-1.1.el5.i386.rpm corosynclib-1.2.7-1.1.el5.i386.rpm heartbeat-3.0.3-2.3.el5.i386.rpm heartbeat-libs-3.0.3-2.3.el5.i386.rpm libesmtp-1.0.4-5.el5.i386.rpm openais-1.1.3-1.6.el5.i386.rpm openaislib-1.1.3-1.6.el5.i386.rpm pacemaker-1.1.5-1.1.el5.i386.rpm pacemaker-cts-1.1.5-1.1.el5.i386.rpm pacemaker-libs-1.1.5-1.1.el5.i386.rpm perl-TimeDate-1.16-5.el5.noarch.rpm resource-agents-1.0.4-1.1.el5.i386.rpm –nogpgcheck
安装所有相关软件包
cd /etc/corosync/
cp corosync.conf.example corosync.conf 生成corosync的配置文件
vim corosync.conf
bindnetaddr: 192.168.100.0 修改第10行
添加以下内容
service {
        ver: 0
        name: pacemaker
}
 
aisexec {
        user: root
        group: root
}
 
corosync-keygen 执行命令,增加脚本
scp -p authkey corosync.conf node2:/etc/corosync/ 把编写好的文件拷贝到node2
mkdir /var/log/cluster 创建日志目录
ssh node2 'mkdir /var/log/cluster' 在node2上同样创建
service corosync start 启动服务
grep -i -e "corosync cluster engine" -e "configuration file" /var/log/messages
验证 cotosync引擎是否正常启动
grep -i error: /var/log/messages |grep -v unpack_resources检查过程是否有错
crm_verify -L 检查是否有错
若有执行以下命令排错
[root@node1 corosync]# crm
crm(live)# configure
crm(live)configure# property stonith-enabled=false
crm(live)configure# commit
排错之后添加一个资源
crm(live)configure# primitive webIP ocf:heartbeat:IPaddr params ip=192.168.100.100
crm(live)configure# commit
资源添加完后可以查看ifconfig多了一块网卡参数
yum install -y httpd 安装apace
primitive webserver lsb:httpd 定义http资源
此时在node2上查看,发现node2上的http正在运行
echo "node1.a.com" >/var/www/html/index.html 给node1设置一个测试网页
echo "node2.a.com" >/var/www/html/index.html 再node2上也设置测试网页

service corosync stop 关闭node1上的服务