实验环境:
虚拟机ha1:192.168.61.130
虚拟机ha2:192.168.61.132
vip:192.168.61.100
实验说明:
ha1的httpd服务index.html 内容设置为ha1
ha2的httpd服务index.html 内容设置为ha2
两主机切换工作时以方便观察效果
注意事项:
(a) .节点间时间必须同步:使用ntp协议实现;
服务端/etc/ntp.conf供参考:
driftfile/var/lib/ntp/drift
restrict -6default kod nomodify notrap nopeer noquery
restrict127.0.0.1
restrict -6 ::1
restrict192.168.61.0 mask 255.255.255.0 nomodify
restrict 0.0.0.0mask 0.0.0.0 nomodify notrap noquery notrust
server127.127.1.0
fudge 127.127.1.0stratum 8
server220.130.158.71 prefer
server220.130.158.51
includefile/etc/ntp/crypto/pw
keys/etc/ntp/keys
注意:设置重启服务后一定要等10-15分钟再尝试同步,命令:ntpdata 192.168.61.130,对比两机时间是否同步命令:data;ssh 192.168.61.130 ‘data’
ha2 最好设定一个定时任务,每5分钟同步时间:
crontab -e
*/5 * * * * /usr/sbin/ntpdata 192.168.61.130
(b) .节点间需要通过主机名互相通信,必须解析主机至IP地址;
(1)建议名称解析功能使用hosts文件来实现;
(2)通信中使用的名字与节点名字必须保持一致:“uname -n”命令,或“hostname”展示出的名字保持一致;
(3) .建立各节点之间的root用户能够基于密钥认证;
# ssh-keygen -t rsa -P ‘‘
#ssh-copy-id -i /root/.ssh/id_rsa.pub root@HOSTNAME
(4) .一定要确保SELINUX关闭,iptables清空
注意:定义成为集群服务中的资源,一定不能开机自动启动;因为它们将由crm管理;
ha1配置
安装heartbeat V2
(a).先安装epel源,系统源没有libnet
wget ftp://ftp.pbone.net/mirror/dl.iuscommunity.org/pub/ius/archive/Redhat/6/i386/epel-release-6-5.noarch.rpm
rpm -ivh epel-release-6-5.noarch.rpm
(b).安装相关包:
yum install net-snmp-libs libnet PyXML
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
yum install httpd
(c).编辑ha.cf 文件
vim /etc/ha.cf添加内容如下:
logfacility local0#日志使用rsyslog中local0设定
keepalive1 #监听频率,每1秒
deadtime3 #死亡判断时间
warntime2 #异常警告时间
mcasteth0 225.0.0.1 694 1 0 #组播地址设定
auto_failbackon #修复后自动上线
node ha1 #节点设置
node ha2 #节点设置
ping 192.168.61.2 #第三方仲裁设定
(d).编辑authkeys文件
auth 2
#1 crc
2 sha1HI! #密钥短语越长越随机越好
#3 md5Hello!
(e) 编辑haresources添加:
ha1 192.168.61.100 httpd #设定主服务主机名、VIP、服务3个资源
(f)编辑index.html首页
echo“ha1” > /var/www/html/index.html
ha2配置
安装heartbeat V2
(a).先安装epel源,系统源没有libnet
wget ftp://ftp.pbone.net/mirror/dl.iuscommunity.org/pub/ius/archive/Redhat/6/i386/epel-release-6-5.noarch.rpm
rpm -ivh epel-release-6-5.noarch.rpm
(b).安装相关包:
yum install net-snmp-libs libnet PyXML
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
yum install httpd
(c)拷贝ha1的ha.cf、haresources、authkeys
scp192.168.61.130:/etc/ha.d/{ha.cf,haresources,authkeys} /etc/ha.d/
(d)编辑index.html首页
echo“ha2” > /var/www/html/index.html
(e)添加定时校时任务,每5分钟更新一次时间
crontab-e
*/5* * * * /usr/sbin/ntpdata 192.168.61.130
分别启动两机heartbeat服务
service heartbeat start
用其他主机访问http://192.168.61.100/index.html, 关闭ha1、ha2其中一台,刷新网页就可以看到网页内容ha1、ha2轮流显
示。用ifconfig查看正在工作的主机,可以发现vip 已经配置在eth0:0上
heartbeatV2 haresources 简单实现httpd服务高可用
原文地址:http://dengxi.blog.51cto.com/4804263/1705398