实验系统:CentOS 6.6_x86_64
实验前提:
1)提前准备好编译环境,防火墙和selinux都关闭;
2)本配置共有两个测试节点,分别coro1和coro2,对应的IP地址分别为192.168.19.55和192.168.19.98;
3)集群服务为nginx服务;
4)提供web服务的地址为192.168.19.150,即VIP;
实验软件:corosync-0:1.4.7-1.el6 pacemaker-0:1.1.12-4.el6 crmsh-2.1-1.6 drbd-8.4.4 php-5.6.11 mariadb-10.0.20 tengine-2.1.0
软件下载:
------------------------------------------分割线------------------------------------------
具体下载目录在 /2015年资料/7月/25日/基于Corosync+Pacemaker+DRBD+LNMP实现Web服务器高可用集群/
------------------------------------------分割线------------------------------------------
注意事项:单主机操作会有标注,除此之外的是两台主机都要完成的
实验拓扑:
MySQL+Corosync+Pacemaker+DRBD构建高可用MySQL
分别基于NFS服务和DRBD服务利用Corosync配置高可用集群
Corosync+pacemaker+RA实现MySQL高可用
一、准备工作
1.所有节点的主机名称和对应的IP地址解析服务可以正常工作,且每个节点的主机名称需要跟“uname -n”命令的结果保持一致。因此,需要保证两个节点上的/etc/hosts文件均添加了下面的内容:
2.为了使得重新启动系统后仍能保持如上的主机名称,还分别需要在各节点执行类似如下的命令:
coro1上:
1 sed -i 's@\(HOSTNAME=\).*@\1coro1@g' /etc/sysconfig/network 2 hostname coro1
coro2上:
1 sed -i 's@\(HOSTNAME=\).*@\1coro2@g' /etc/sysconfig/network 2 hostname coro2
3.设定两个节点可以基于密钥进行ssh通信,并测试:
coro1上:
1 ssh-keygen -t rsa 2 ssh-copy-id -i ~/.ssh/id_rsa.pub root@coro2
coro2上:
ssh-keygen -t rsa ssh-copy-id -i ~/.ssh/id_rsa.pub root@coro1
4.两个节点时间必须同步:一般使用ntpdate进行操作,这里不再演示。
二、安装corosync和pacemaker并配置
1.安装epel源:
1 yum -y install epel*
2.安装corosync和pacemaker:
1 yum -y install corosync pacemaker
3.在coro1上编辑/etc/corosync.conf
1 cd /etc/corosync/ 2 cp corosync.conf.example corosync.conf 3 vim corosync.conf 4 ------------------------------------ 5 bindnetaddr: 192.168.19.0 //为你的网卡所在网络的网络地址 6 mcastaddr: 239.255.19.1 //组播地址 7 service { //添加此部分 8 ver: 0 9 name: pacemaker 10 # use_mgmtd: yes 11 }
4.在coro1上生成节点间通信时用到的认证密钥文件:
1 corosync-keygen
5.将corosync.conf和authkey复制至coro2上:
1 scp -p corosync.conf authkey coro2:/etc/corosync/
三、安装crmsh并启动corosync
1.安装crmsh,需要提前下好rpm包:
1 yum -y install crmsh-2.1-1.6.x86_64.rpm
2.启动corosync(在coro1上执行):
1 service corosync start
3.查看corosync引擎是否正常启动: