安装配置高可用集群需要注意:
1、节点名称:集群每个节点的名称都得能互相解析
/etc/hosts
hosts主机名的正反解析结果必须跟"uname -n"的结果保持一致
2、时间必须的同步
使用网络时间服务器同步
3、并非必须:各节点间能基于ssh秘钥认证通信
heartbeat V2版本环境测试
环境准备节点两个
node1:10.10.10.202
node2:10.10.10.203
系统环境CentOS release 6.5 (Final)
1、建立双机互信
node1:
ssh-keygen -t rsa -P ""
ssh-copy-id -i .ssh/id_rsa.pub root@node2
node2:
ssh-keygen -t rsa -P ""
ssh-copy-id -i .ssh/id_rsa.pub root@node1
2、添加定时任务,每五分钟同步一次时间
node1:
*/5 * * * * /usr/sbin/ntpdate 192.168.1.203 &> /dev/null
node2:
*/5 * * * * /usr/sbin/ntpdate 192.168.1.203 &> /dev/null
或者:
ansible webserver -m cron -a "name='heartbeat' job='/usr/sbin/ntpdate 192.168.1.203 &> /dev/null' minute=5"
3、安装依赖的包
yum -y install perl-TimeDate PyXML libnet net-snmp-libs gettext
4、安装heartbeat组件
rpm -ivh heartbeat-2.1.4-12.el6.x86_64.rpm heartbeat-pils-2.1.4-12.el6.x86_64.rpm heartbeat-stonith-2.1.4-12.el6.x86_64.rpm
5、复制heartbeat的配置文件到/etc/ha.d/目录中
cp /usr/share/doc/heartbeat-2.1.4/{ha.cf,haresources,authkeys} /etc/ha.d/
6、修改认证的配置文件
vim authkeys
auth 1 #认证方式
1 sha1 fansik #认证密码
chmod 600 authkeys #修改权限为600否则服务无法启动
7、修改主配置文件
vim ha.cf
logfile /var/log/ha-log
keepalive 1 #多少秒探测一次
deadtime 10 #多久后判定节点挂掉了
warntime 5 #多久提示一次
udpport 694 #监听的宽口
bcast eth0 #探测的网卡接口
auto_failback on #上线后自动转回
initdead 120 #第一次上线时的等待时间
node node1
node node2
ping 10.10.10.201
compression bz2 #心跳信息的压缩算法
compression_threshold 2 #多大的数据包才压缩,表示大于2k的数据包要压缩
8、配置资源
vim haresources
node1 10.10.10.250/24/eth0 httpd
9、复制到从节点上一份儿
scp -p authkeys haresources ha.cf node2:/etc/ha.d/
10、启动heartbeat的服务
ansible webserver -m shell -a "/etc/init.d/heartbeat start"
11、配置nfs是httpd使用公用资源
使用node3作为nfs服务器:
mkdir -pv /www/fansik
/www/fansik 10.10.10.0/24(rw)
setfacl -m u:apache:rwx /www/fansik
/etc/init.d/rpcbind start
/etc/init.d/nfs start
node1
node1 10.10.10.250/24/eth0 Filesystem::10.10.10.204:/www/fansik::/var/www/html::nfs httpd
scp haresources node2:/etc/ha.d/
12、HA集群的工作模型:
A/P:two nodes,工作与主备模型;
N-M:N>M,N个节点,M个服务;活动节点为N,备用N-M个
N-N:N个节点,N个服务;
A-A:双主模型;
13、集群资源管理器
haresources
crm
pacemaker:
资源粘性:如果所有
资源约束(3种约束):
位置约束:资源更倾向于哪个节点上;
inf:无穷大
n:
-n:
-inf:负无穷,只要有其他任何一个节点在就不会选在该节点
排列约束:资源运行在同一节点的倾向性;
inf:
-inf:
顺序约束:资源启动次序及关闭次序
rgmanager(红帽RHCS中的组件):failover domain(故障转移域)
14、heartbeatv2使用crm(xml方式的配置)资源管理器的方式配置
crm文件保存位置/var/lib/heartbeat/crm的目录下
/usr/lib64/heartbeat/haresources2cib.py将haresources(v1版的配置)文件转换成cib方式
编辑/etc/ha.d/ha.cf文件
添加crm on
crm通过mgmtd进程监听在5560/tcp
同步到node2节点
/usr/lib64/heartbeat/ha_propagate
安装heartbeat-gui接口
yum -y install pygtk2-libglade;rpm -ivh heartbeat-gui-2.1.4-12.el6.x86_64.rpm
为hacluster设置密码,登录hb_gui是需要用到
crm_mon查看节点状态
crm_sh进入crm的shell
使用heartbeat-gui需要有桌面环境,像我这个最小化安装的就要安装桌面环境
yum groupinstall "Desktop"
yum groupinstall "X Window System"
yum groupinstall "Chinese Support"
Xshell要讲X11转发到xmanager,通过文件里面的属性-->隧道进行设置
hb_gui &
15、通过hb_gui配置web的ha集群
右键点击资源--》普通资源
资源id:webip
类型:IPaddr2
添加参数:
ip:10.10.10.250
nic:eth0
cidr_netmask:24
右键点击资源--》普通资源
资源id:webserver
类型:httpd lsb
添加约束协同约束(排列约束)
标识符:webip_with_webserser
起始:webip
目标:webserser
权重:INFINTY