一、corosync、pacemaker介绍
corosync是用于高可用环境中的提供通讯服务的,它位于高可用集群架构中的底层(Message Layer),扮演着为各节点(node)之间提供心跳信息传递这样的一个角色;
pacemaker是一个开源的高可用资源管理器(CRM),位于HA集群架构中资源管理、资源代理(RA)这个层次,它不能提供底层心跳信息传递的功能,它要想与对方节点通信需要借助底层的心跳传递服务,将信息通告给对方。通常它与corosync的结合方式有两种:
pacemaker作为corosync的插件运行;
pacemaker作为独立的守护进程运行;
corosync与pacemaker组成的是高可用的容器,需要高可用的服务,可随时添到容器中,或者从容器中删除。灵活性很强。
heartbeat我也用过,请参考:heartbeat mysql双机互备实现高可用 安装配置,
用过corosync与pacemaker后,个人推荐corosync与pacemaker。
二,服务器说明
192.168.10.130 虚拟ip
192.168.10.103 node1
192.168.10.219 node2
三,安装配置corosync,pacemaker,crmsh
1,node1和node2上安装
代码如下# yum install corosync pacemaker python-dateutil redhat-rpm-config pssh
# rpm -ivh :/ha-clustering:/Stable/CentOS_CentOS-6/x86_64/crmsh-2.1-1.6.x86_64.rpm
2,node1和node2,修改主机名
代码如下# vim /etc/sysconfig/network
HOSTNAME=node1 //103机器node1,219机器就是node2
# vim /etc/hosts //添加以下内容
192.168.10.103 node1
192.168.10.219 node2
# /etc/init.d/network restart //重启网络
3,node1配置corosync
代码如下[root@node1 corosync]# cp corosync.conf.example corosync.conf
[root@node1 corosync]# cat /etc/corosync/corosync.conf |awk '{if($0 !~ /^$/ && $0 !~ /#/) {print $0}}'
compatibility: whitetank //兼容08.以前的版本
totem { //totem定义集群内各节点间是如何通信的,totem本是一种协议,专用于corosync专用于各节点间的协议,协议是有版本的
version: 2 //totme 的版本
secauth: off //安全认证是否打开,最好打开
threads: 0 //用于安全认证开启并行线程数
interface {
ringnumber: 0 //环号码,如果一个主机有多块网卡,避免心跳信息回流
bindnetaddr: 192.168.10.0 //网络地址(节点所在的网络地址段)
mcastaddr: 239.255.1.1 //广播地址(系统自带的广播地址,没作任何修改)
mcastport: 5405 //多播占用的端口
ttl: 1 //只向外一跳心跳信息,避免组播报文环路
}
}
logging {
fileline: off
to_stderr: no //日志信息是否发往错误输出(否)
to_logfile: yes //是否记录日志文件
to_syslog: yes //是否记录于syslog日志-->此类日志记录于/var/log/message中
logfile: /var/log/cluster/corosync.log //日志存放位置
debug: off //只要不是为了排错,最好关闭debug,它记录的信息过于详细,会占用大量的磁盘IO.
timestamp: on //记录日志的时间戳
logger_subsys {
subsys: AMF
debug: off
}
}
amf {
mode: disabled
}
service {
ver:0
name:pacemaker //corosync启动后会自动启动pacemaker
}
aisexec { //启用ais功能时以什么身份来运行,默认为root,aisexec区域也可以不写
user :root
group:root
}
4,node1上用corosync-keygen命令来生成密钥
[root@node1 corosync]# corosync-keygen //在/etc/corosync目录下生成一个文件,authkey
网上查资料时,很多资料都说要,配置各节点ssh互信(就是ssh不要密码登录),经证实根本不需要,多此一举。
5,将node1上配置文件复制到node2,nodeN上
代码如下- 下一篇: wps文字横向树型图如何设置
- 上一篇: 《君王2》火法师加点攻略