corosync+pacemaker实现web集群高可用

本篇博文主要讲corosync+pacemaker实现web的高可用性,所以,为了配置的方便,使用yum方式安装web和php到一台主机,做为主节点,另一台做为备用

为了实现web的高可用性,两台web服务器挂载使用NFS文件系统,且NFS与MySQL数据库安装到一台服务器上

当主节点出现故障的时候,能够实现IP自动转移到备用节点上,这就需要一个虚拟IP来实现流转,这里定义VIP:172.16.7.188

3、系统平台

全部系统都为centos6.5

4、NFS

在NFS上创建目录/www,web服务器的网页目录都挂载于此

三、前提准备(两个节点都一样,这里只演示在node1上操作)

1、各节点之间实现互相解析

所有节点的主机名称和对应的IP地址解析服务可以正常工作,且每个节点的主机名称需要跟”uname -n“命令的结果保持一致

[root@node1 ~]# uname -nnode1.shuishui.com[root@node1 ~]# vim /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1localhost localhost.localdomain localhost6 localhost6.localdomain6172.16.7.10 node1.shuishui.com node1172.16.7.20 node2.shuishui.com node2[root@node1 ~]# ping node2PING node2.shuishui.com (172.16.7.20) 56(84) bytes of data.64 bytes from node2.shuishui.com (172.16.7.20): icmp_seq=1 ttl=64 time=1.41 ms

2、做双机互信

设定两个节点可以基于密钥进行ssh通信,密码要设为空,否则在节点切换的时候将会失败

[root@node1 ~]# ssh-keygen -t rsa -P ”/生成空密码[root@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node2.shuishui.com /发送到node2

验证从node1 ssh到node2不需密码

[root@node1 ~]# ssh 172.16.7.20Last login: Sun Apr 20 02:37:55 2014 from 172.16.250.87[root@node2 ~]#

3、时间同步

[root@node1 ~]# ntpdate 172.16.0.1

4、确保网页都被挂载到了NFS上

[root@node1 ~]# curl node1.shuishui.comweb in nfs[root@node1 ~]# curl node2.shuishui.comweb in nfs

5、手动停止服务并关闭开机自动启动

加在集群中的服务就交由crm来管理了,不需用户参与

[root@node1 ~]chkconfig httpd off[root@node1 ~]service httpd stop

四、corosync+pacemaker实现web高可用

1、安装corosync和pacemaker

因为有依赖关系,所以我们最好使用yum方式安装,前提配置好YUM源

[root@node1 ~]# yum -y install corosync[root@node1 ~]# yum -y install pacemaker

2、修改corosync的配置文件

1)corosync安装完成了,提供了配置文件模板,我们只需改名即可使用

[root@node1 ~]# cd /etc/corosync/[root@node1 corosync]# lscorosync.conf.example corosync.conf.example.udpu service.d uidgid.d[root@node1 corosync]# mv corosync.conf.example corosync.conf

2)修改配置文件,增加service段和aisexec段

totem {version: 2secauth: offthreads: 0interface {ringnumber: 0bindnetaddr: 172.16.0.0#绑定网络地址mcastaddr: 230.100.100.7#心跳信息传递的组播地址mcastport: 5405ttl: 1}}logging {fileline: offto_stderr: noto_logfile: yesto_syslog: yeslogfile: /var/log/cluster/corosync.log /corosync的日志文件debug: offtimestamp: onlogger_subsys {subsys: AMFdebug: off}}amf {mode: disabled}service {ver: 0name: pacemaker#定义corosync在启动时自动启动pacemaker}aisexec {#表示启动corosync的ais功能,以哪个用户的身份运行user: rootgroup: root}

3、生成密钥文件

对于corosync而言,各节点之间通信需要安全认证,所以需要安全密钥,生成后会自动保存至当前目录下,命名为authkey,权限为400

[root@node1 corosync]# corosync-keygenCorosync Cluster Engine Authentication key generator.Gathering 1024 bits for key from /dev/random.Press keys on your keyboard to generate entropy.Press keys on your keyboard to generate entropy (bits = 272).

生成的密钥文件是1024字节的,但是在这个生成密钥的过程中,系统会去调用/etc/random中的随机数,如果熵池中的随机数不够用,就会提示让我们逛敲键盘以来弥补随机数的不足,直到生成密钥。如果对安全不是要求太高,此过程可以使用伪随机数,伪随机数是有规律的,所以可能会被找到规律从而破解密钥,慎用。

经过痛苦的敲键盘,终于成生了我们想要的密钥,接下来就是把密钥和刚才配置的corosync.conf复制到node2上

[root@node1 corosync]# lsauthkey corosync.conf corosync.conf.example.udpu service.d uidgid.d[root@node1 corosync]# scp -p corosync.conf authkey node2:/etc/corosync/

4、安装pacemaker的配置接口crmsh

RHEL自6.4起不再提供集群的命令行配置工具crmsh,转而使用pcs;如果想继续使用crm命令,必须下载相关的程序包自行安装才可。crmsh依赖于pssh,因此需要一并下载,安装过程中还会有其它的依赖关系,所以使用yum方式进行安装

[root@node1 ~]# yum -y install pssh-2.3.1-2.el6.x86_64.rpm crmsh-1.2.6-4.el6.x86_64.rpm

5、启动corosync并查看相关信息

[root@node1 ~]# service corosync startStarting Corosync Cluster Engine (corosync):[ OK ]

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

每个人在他的人生发轫之初,总有一段时光,

corosync+pacemaker实现web集群高可用

相关文章:

你感兴趣的文章:

标签云: