21.1、heartbeat部署规划:
本文的实验环境是虚拟机设备;
名称
接口
ip
用途
master-db(主)
eth0
10.0.0.16/24
用于服务器之间的心跳连接(直连)
eth1
172.16.1.16/24
管理ip用于数据转发
vip
172.16.1.26/24
提供对外访问的ip
slave-db(从)
eth0
10.0.0.17/24
用于服务器之间的心跳连接(直连)
eth1
172.16.1.17/24
管理ip用于数据转发
vip
172.16.1.26/24
提供对外的访问的ip
21.2、关闭selinux和防火墙:
master-db和slave-db的操作相同;
1、关闭selinux:
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
grep "SELINUX=disabled" /etc/selinux/config
setenforce 0
2、关闭防火墙:
/etc/init.d/iptables stop
chkconfig iptables off
21.3、修改主机名:
1、master-db:
[root@master-db ~]#sed -i "s#HOSTNAME=.*#HOSTNAME=master-db#g" /etc/sysconfig/network
[root@master-db ~]#hostname master-db
[root@master-db ~]#hostname
master-db
2、slave-db:
[root@slave-db ~]#sed -i "s#HOSTNAME=.*#HOSTNAME=slave-db#g" /etc/sysconfig/network
[root@slave-db ~]#hostname slave-db
[root@slave-db ~]#hostname
slave-db
21.4、配置master-db和slave-db之间的直连心跳线路由:
主从之间的关系全靠心跳线进行联系;
1、master-db:
[root@master-db ~]#route add -host 10.0.0.17 dev eth0
[root@master-db ~]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.17 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
[root@master-db ~]#echo '/sbin/route add -host 10.0.0.17 dev eth0' >>/etc/rc.local
2、slave-db:
[root@slave-db ~]#route add -host 10.0.0.16 dev eth0
[root@slave-db ~]#route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.16 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
[root@slave-db ~]#echo '/sbin/route add -host 10.0.0.16 dev eth0' >>/etc/rc.local
21.5、修改域名解析文件:
master-db和slave-db的操作相同;
vim /etc/hosts
10.0.0.16 master-db
10.0.0.17 slave-db
ping域名看是否可以ping通;
21.6、安装heartbeat:
master-db和slave-db的操作相同;
1、安装:
yum install heartbeat -y
rpm -qa heartbeat
heartbeat-3.0.4-2.el6.x86_64
2、heartbeat配置模板拷贝:
cd /usr/share/doc/heartbeat-3.0.4/
cp -a ha.cf haresources authkeys /etc/ha.d/
21.7、heartbeat配置文件配置:
master-db和slave-db的操作相同;
1、ha.cf配置文件:
vim /etc/ha.d/ha.cf
debugfile /var/log/ha-debug
#heartbeat调试日志的存放位置;
logfile /var/log/ha-log
#heartbeat日志存放位置;
logfacility local0
#在syslog服务中配置通过local1设备接收日志;
keepalive 2
##############################################
#指定心跳间隔为2秒,即每2秒发送在监听的网
#卡上发送一次广播,单播或组播
##############################################
deadtime 30
##############################################
#指定备用节点在30秒内没有收到主节点的心跳信号,则
#立即接管主节点的服务资源;
##############################################
warntime 10
##############################################
#指定心跳延迟时间为10秒,当10秒钟内备份节点不能接收到
#主节点的心跳信号时,会网日志中写入一个警告日志,但此时
#不会切换服务;
##############################################
initdead 60
##############################################
#指定在heartbeat首次运行后,需要等待60秒才能启动主服务器
#的任何资源,取值至少为datatime时间的2倍;
##############################################
udpport 694
#heartbeat心跳通信端口;
mcast eth0 225.0.0.1 694 1 0
##############################################
#多播:直连网卡eth0,多播范围(224-239),udp通信端口,ttl值
#为1,关闭本地回环;
#单播:ucast eth0 10.0.0.17,包被发送到的对等的IP地址;
#广播:bcast eth0
##############################################
auto_failback on
#当主节点恢复后从备节点接管资源;
node master-db
#主节点主机名,通过命令uname -n进行查看;
node slave-db
#备用节点主机名,通过命令uname -n进行查看;
crm no
#不开启集群资源管理功能;
2、authkeys配置文件:
(1)生成sha1字符串;
echo heartbeat|sha1sum
1c81b56e0878d42e95064acfe07613edd5c6c29d
(2)修改参数:
vim /etc/ha.d/authkeys
auth 1
1 sha1 1c81b56e0878d42e95064acfe07613edd5c6c29d
(3)设置权限:
chmod 600 /etc/ha.d/authkeys
3、haresources配置文件:
vim /etc/ha.d/haresources
master-db IPaddr::172.16.1.26/24/eth1
#slave-db IPaddr::172.16.1.27/24/eth1
#master-db #表示主节点的主机名
#IPaddr::172.16.1.26/24/eth1#表示使用IPaddr脚本创建浮动ip在eth1网卡上;
21.8、测试:
[root@master-db ~]#/etc/init.d/heartbeat start
Starting High-Availability services: INFO: Resource is stopped
Done.
[root@slave-db ~]#/etc/init.d/heartbeat start
[root@master-db ~]#ip addr
3: eth1:
link/ether 00:0c:29:5c:f0:d0 brd ff:ff:ff:ff:ff:ff
inet 172.16.1.16/24 brd 172.16.1.255 scope global eth1
inet 172.16.1.26/24 brd 172.16.1.255 scope global secondary eth1
inet6 fe80::20c:29ff:fe5c:f0d0/64 scope link
valid_lft forever preferred_lft forever
[root@slave-db ~]#ip addr
3: eth1:
link/ether 00:0c:29:4a:99:4c brd ff:ff:ff:ff:ff:ff
inet 172.16.1.17/24 brd 172.16.1.255 scope global eth1
inet6 fe80::20c:29ff:fe4a:994c/64 scope link
valid_lft forever preferred_lft forever
[root@master-db ~]#/etc/init.d/heartbeat stop
[root@slave-db ~]#ip addr
3: eth1:
link/ether 00:0c:29:4a:99:4c brd ff:ff:ff:ff:ff:ff
inet 172.16.1.17/24 brd 172.16.1.255 scope global eth1
inet 172.16.1.26/24 brd 172.16.1.255 scope global secondary eth1
inet6 fe80::20c:29ff:fe4a:994c/64 scope link
valid_lft forever preferred_lft forever
21.9、总结:
1、heartbeat安装后默认是自启动的;
chkconfig --list heartbeat
heartbeat 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
在生产环境中是不需要开机自启动的,进行手动启停,比较安全;
chkconfig heartbeat off
2、互为主备模式:
(1)配置参数;
cat /etc/ha.d/haresource
master-db IPaddr::172.16.1.26/24/eth1
slave-db IPaddr::172.16.1.27/24/eth1
(2)配置说明:
master-db和slave-db上的heartbeat启动后,各自都会配置一个vip地址,当其中一台宕机
后所有的vip都会漂移到一台服务器上;
个人认为实质是按照浮动ip前的主机名定义浮动ip的主从的;
(3)将本地置从的命令是(主):/usr/share/heartbeat/hb_standby
(4)接管自己的资源的命令是(主):/usr/share/heartbeat/hb_takeover local
手机扫一扫
移动阅读更方便
你可能感兴趣的文章