Pacemaker部署
部署环境
虚拟机2台(1G内存,40G硬盘,ubuntu操作系统)
hadoop2-virtual-machine1 10.10.11.252
hadoop3-virtual-machine5 10.10.11.160
分别在两台机器上安装Pacemaker,直接apt-get install pacemaker安装。安装Pacemaker的时候,与之相关的软件包也会被安装,如下
Pacemaker的配置包括两部分,corosync的配置以及Pacemaker自己本身的配置。
a. 配置corosync密钥
在hadoop2-virtual-machine中,切换到root用户下
su root
b. 生成corosync密钥,为集群节点间的通信提供授权服务
corosync-keygen //默认在/etc/corosync中创建authkey文件
修改生成的authkey文件的权限为0400
chmod 0400 /etc/corosync/authkey
把authkey文件scp到hadoop3-virtual-machine相应目录中
scp /etc/corosync/authkey hadoop3-virtual-machine:/etc/corosync
c. 配置/etc/corosync/corosync.conf文件
拷贝该目录下corosync.conf.example文件的内容到corosync.conf中。
cp /etc/corosync/corosync.conf.example /etc/corosync/corosync.conf
修改相应配置如下:
# Please read the openais.conf.5 manual page compatibility: whitetank
aisexec { # Run as root - this is necessary to be able to manage resources with Pacemaker user: root group: root }
service { # Load the Pacemaker Cluster Resource Manager name: pacemaker ver: 0 use_mgmtd: yes use_logd: yes }
totem { # Version of current configuration. version: 2 # Whether enable encryption or not secauth: off # How many threads to use for encryption/decryption threads: 0 interface { ringnumber: 0 bindnetaddr: 10.10.0.0 #此处为bindnetaddr=iface.addr & iface.netmask。此处10.10.11.252 & 255.255.0.0 =10.10.0.0 mcastaddr: 226.94.1.1 #组播地址,节点间会通过这个地址对本网段地址进行广播,默认即可 mcastport: 5405 } }
logging { fileline: off to_stderr: no to_logfile: yes to_syslog: yes logfile: /var/log/corosync/corosync.log #此处配置日志文件的路径 debug: off timestamp: on logger_subsys { subsys: AMF debug: off } }
amf { mode: disabled } |
关于配置项更多说明请参考帮助文档
man 5 corosync.conf
拷贝corosync.conf到hadoop3-virtual-machine相应目录下。
scp /etc/corosync/corosync.conf hadoop3-virtual-machine:/etc/corosync
d. 在两台机器上分别建立日志目录/var/log/corosync
mkdir /var/log/corosync/
e. 在两台机器上启动corosync并设置corosync开机启动
service corosync start 或 /etc/init.d/corosync start
chkconfig --level 2345 corosync on
注:如果启动corosync时无反应也不报错,修改/etc/default/corosync文件,把START=no改为START=yes
f. 查看启动状态
查看corosync是否正常启动
grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/corosync/corosync.log
查看是否初始化节点
grep TOTEM /var/log/corosync/corosync.log
查看Pacemaker启动状态
grep pcmk_startup /var/log/corosync/corosync.log
查看错误信息
grep ERROR: /var/log/corosync/corosync.log | grep -v unpack_resources
查看集群状态
crm_mon
Pacemaker的配置其实就是对集群资源、启动规则及集群参数的配置。应该根据具体应用去配置,这里就不再介绍,请参考hadoop热备实例配置http://blog.csdn.net/rzhzhz/article/details/7162967,以下为简略介绍。
crm configure进入cib配置模式。更多配置命令请参考帮助(如crm -help)或
http://blog.csdn.net/rzhzhz/article/details/7108405 ,http://www.clusterlabs.org/doc/crm_cli.html
集群资源:所谓资源即集群中节点上运行的任何类型的服务,如 数据库,DRBD,VIP等可用脚本运行的服务。
如配置一个VIP资源:
crm(live)configure# primitive VIP ocf:heartbeat:IPaddr2 \
params ip=10.10.12.188 cidr_netmask=32 \
op monitor interval=20s timeout=30s
启动规则:规则也被Pacemaker称之为约束,它提供了三种类型的约束——rdering, colocation , anti-colocation。
如:
crm(live)configure# order HADOOP-after-VIP inf: VIP HADOOP
集群参数:
如:
crm(live)configure# property no-quorum-polic=ignore