你的位置:首页 > 技术文章
1.corosync概述
Corosync是OpenAIS发展到Wilson版本后衍生出来的开放性集群引擎工程。可以说Corosync是OpenAIS工程的一部分。 OpenAIS从openais0.90开始独立成两部分,一个是Corosync;另一个是AIS标准接口Wilson。Corosync包含 OpenAIS的核心框架用来对Wilson的标准接口的使用、管理。它为商用的或开源性的集群提供集群执行框架。
2.安装配置corosync+pacemaker
1).准备工作
配置各节点SSH互信:
# node1 ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' ssh-copy-id -i .ssh/id_rsa.pub root@192.168.220.133 # node2 ssh-keygen -t rsa -f ~/.ssh/id_rsa -P '' ssh-copy-id -i .ssh/id_rsa.pub root@192.168.220.132
配置主机名称与uname -n一致,并通过/etc/hosts解析:
# node1 hostname node1.wyb.com sed -i 's@\(HOSTNAME=\).*@\1node1.wyb.com@g' /etc/sysconfig/network echo '192.168.220.132 node1.wyb.com node1' >> /etc/hosts echo '192.168.220.133 node2.wyb.com node2' >> /etc/hosts # node2 hostname node2.wyb.com sed -i 's@\(HOSTNAME=\).*@\1node2.wyb.com@g' /etc/sysconfig/network echo '192.168.220.132 node1.wyb.com node1' >> /etc/hosts echo '192.168.220.133 node2.wyb.com node2' >> /etc/hosts
时间同步:
# node1 node2 ntpdate asia.pool.ntp.org echo '*/3 * * * * /usr/sbin/ntpdate asia.pool.ntp.org &> /dev/null' >> /var/spool/cron/root
2).安装
[root@node1 coorosync]# ls cluster-glue-1.0.11-3.1.x86_64.rpm corosynclib-1.4.7-1.el6.x86_64.rpm pacemaker-1.1.9-2.1.x86_64.rpm pacemaker-libs-1.1.9-2.1.x86_64.rpm cluster-glue-libs-1.0.11-3.1.x86_64.rpm crmsh-2.1-1.6.x86_64.rpm pacemaker-cli-1.1.9-2.1.x86_64.rpm pssh-2.3.1-5.el6.noarch.rpm corosync-1.4.7-1.el6.x86_64.rpm libqb0-0.14.4-1.1.x86_64.rpm pacemaker-cluster-libs-1.1.9-2.1.x86_64.rpm resource-agents-3.9.5-3.1.x86_64.rpm [root@node1 coorosync]# yum --nogpgcheck localinstall *.rpm
3).配置
主配置文件:
[root@node1 coorosync]# cp /etc/corosync/corosync.conf.example /etc/corosync/corosync.conf[root@node1 coorosync]# grep -vE "^([[:space:]]*#)|^$" /etc/corosync/corosync.confcompatibility: whitetank #表示是否支持0.8之前的版本totem { #图腾,这是用来定义集群中各节点中是怎么通信的
version: 2 #各节点互相通信的协议的版本
secauth: on #各节点间通信是否需要认证
threads: 0 #使用多少线程进行加密和发送多播信息
interface {
ringnumber: 0 #环号码,避免消息环路产生
bindnetaddr: 192.168.220.0 #绑定的网络地址
mcastaddr: 239.255.1.1 #多播地址
mcastport: 5405 #多播端口
ttl: 1
}}logging { #日志相关
fileline: off
to_stderr: no
to_logfile: yes
logfile: /var/log/cluster/corosync.log
to_syslog: no
debug: off
timestamp: on
logger_subsys {
subsys: AMF
debug: off }}service { #定义启动corosync时启动pacemaker
ver: 0
name: pacemaker}aisexec { #定义以哪个用户和组启动corosync
user: root
group: root}
生成认证文件并复制配置文件到node2上:
[root@node1 coorosync]# mv /dev/random{,.bak} #如果不替换random,可能会由
[root@node1 coorosync]# ln -sv /dev/urandom /dev/random 于熵池不足而导致生成认证文件慢
[root@node1 coorosync]# corosync-keygen
[root@node1 coorosync]#cd /etc/corosync
[root@node1 coorosync]# scp authkey corosync.conf node2:/etc/corosync/
4).启动corosync
#node1
[root@node1 ~]# service corosync start
#查看corosync引擎是否正常启动:
[root@node1 ~]# grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/cluster/corosync.log
Sep 16 21:46:30 corosync [MAIN ] Corosync Cluster Engine ('1.4.7'): started and ready to provide service.
Sep 16 21:46:30 corosync [MAIN ] Successfully read main configuration file '/etc/corosync/corosync.conf'.
#查看初始化成员节点通知是否正常发出:
[root@node1 ~]# grep TOTEM /var/log/cluster/corosync.log
Sep 16 21:46:30 corosync [TOTEM ] Initializing transport (UDP/IP Multicast).
Sep 16 21:46:30 corosync [TOTEM ] Initializing transmit/receive security: libtomcrypt SOBER128/SHA1HMAC (mode 0).
Sep 16 21:46:30 corosync [TOTEM ] The network interface [192.168.202.132] is now up.
Sep 16 21:46:30 corosync [TOTEM ] A processor joined or left the membership and a new membership was formed.
#检查启动过程中是否有错误产生:
[root@node1 ~]# grep ERROR: /var/log/cluster/corosync.log | grep -v unpack_resources
#查看pacemaker是否正常启动:
[root@node1 ~]# grep pcmk_startup /var/log/cluster/corosync.log
Sep 16 21:46:30 corosync [pcmk ] info: pcmk_startup: CRM: Initialized
Sep 16 21:46:30 corosync [pcmk ] Logging: Initialized pcmk_startup
Sep 16 21:46:30 corosync [pcmk ] info: pcmk_startup: Maximum core file size is: 4294967295
Sep 16 21:46:30 corosync [pcmk ] info: pcmk_startup: Service: 9
Sep 16 21:46:30 corosync [pcmk ] info: pcmk_startup: Local hostname: node1.wyb.com
#如果上面命令执行均没有问题,接着可以执行如下命令启动node2上的corosync
#注意:启动node2需要在node1上使用如下命令进行,不要在node2节点上直接启动
[root@node1 ~]# ssh node2 'service corosync start'
#使用如下命令查看集群节点的启动状态:
[root@node1 ~]# crm status
Last updated: Wed Sep 30 22:16:09 2015
Last change: Thu Sep 17 16:58:00 2015 via crm_attribute on node1.wyb.com
Stack: classic openais (with plugin)
Current DC: node1.wyb.com - partition with quorum
Version: 1.1.9-2.1-2db99f1
2 Nodes configured, 2 expected votes
0 Resources configured.
Online: [ node1.wyb.com node2.wyb.com ]
安装问题:在安装corosync+pacemaker时,通过yum安装CentOS6.5自带的pacemaker-1.1.12+corosync-1.4.7,启动corosync后,pacemaker的cib进程一直崩溃导致集群不成功,换成redhat6.4系统配置centos源安装出现同样问题,换电脑之后一样出现同样问题,最后通过网络(http://rpm.pbone.net)自己下载不同版本的rpm安装包,安装成功。
3.drbd安装和配置
请参考上一篇博客:分布式块设备drbd基础概念、原理及其主从模式配置
参考资料:
openais集群分析:http://blog.sina.com.cn/s/blog_7695e9f40100pcnz.html
linux高可用集群详解:http://blog.csdn.net/flcandclf/article/details/14520501
CentOS 6.5 Corosync + pacemaker实现httpd服务的高可用:http://tanxw.blog.51cto.com/4309543/1401399/
文章来源:http://blog.51cto.com/wangyongbin/1698485

- 发表评论
- 查看评论
【暂无评论!】发表评论: