【无标题】Heartbeat高可用配置实践
Heartbeat高可用配置实践
1,环境准备
Data-1: 10.25.144.16 VIP: 10.25.8.213
Data-2: 10.25.157.103 VIP: 10.25.92.68
配置hostname和Host
Hostname data-1
Vi /etc/sysconfig/network 修改hostname为data-1
Vi /etc/hosts
Ping data-1,data-2验证host是否生效
Uname –n 查看hostname
2,安装heartbeat
Yum install heartbeat -y
把配置文件copy到ha.d下面
/usr/share/doc/heartbeat-3.0.4/
cp ha.cf authkeys haresources /etc/ha.d/
2.1 配置ha.cf文件
start
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local1
keepalive 2
deadtime 30
warntime 10
initdead 60
bcast eth0 #通过那块网卡检测心跳消息
#mcast eth0 225.0.0.181 694 1 0
udpport 694
ucast eth0 10.25.144.103 #对方的IP地址从而检测心跳
auto_failback on
node data-1
node data-2
crm no
#end
2.2 配置authkeys文件
auth 1
1 sha1 47e9336850f1db6fa58bc470bc9b7810eb397f04
chmod 600 /etc/ha.d/authkeys
2.3 配置haresources文件
#start
data-1 10.25.8.213/16/eth0:0 #VIP地址和绑定的网卡别名
3启动heartbeat
/etc/init.d/heartbeat start
查看vip是否绑定
IP add
[root@data-2 ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1454 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:06:2e:ab brd ff:ff:ff:ff:ff:ff
inet 10.25.144.16/16 brd 10.25.255.255 scope global eth0
3.1 高可用测试
常用log文件/var/log/ha-log和/var/log/ha-debug
通过tail –f可以实时监控log文件的内容
tail -f /var/log/ha-debug
step1:启动master ,观察log日志的启动流程
step2:启动slave检查log日志
step3:关闭master,看slave接管的过程
step4:再次启动master,看master重新掌权的过程。
通过ip add命令可以看到vip绑定在master还是slave,从而判断活跃的主机是哪一个。
4 搭建高可用Web服务
4.1 安装httpd服务
yum install httpd –y
###/etc/init.d/httpd start
4.2 修改默认index
cd /var/www/html/
echo master-data-1 index.html
echo slave-data-2 index.html
通过外网Ip可以访问两个地址并显示正确
4.3 httpd的服务启动和关闭都交给heartbeat完成
只需在haresource中添加服务名即可。
脚本在默认路径下,脚本执行需要以/etc/init.d/httpd start/stop方式,具备可执行权限。启动名字应该和配置文件对应。
data-1 10.25.8.213/16/eth0:0 httpd
4.4 验证web的高可用服务
lsof -i :80 可以查看master和salve的httpd服务是否已经开启。
经过验证,heartbeat可以同时控制VIP的漂移和httpd服务的启动。
Masters上heartbeat服务停止,服务器故障时,slave上自动获取VIP并且启动httpd的服务。
注:对于mysql等有资源的服务,要么共享存储,要么实时同步,否则高可用就没有意义。
问题:
虽然VIP可以在内网漂移,但是目前只能通过EIP访问Web服务。怎么把EIP映射到VIP,并通过VIP来访问Web服务呢。
Heartbeat正常的状态