Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能。
本实验实现web服务器的主备双热备份系统
Linux系统:Linux6.8
规划:2台主机做集群
目录:
1、修改主机名,并设置主机名解析
2、建立SSH互信,ssh-keygen
3、NTP时间同步
4、安装heartbeat软件
5、heartbeat服务配置
6、启动服务,进行测试-编写网站页面
1、修改主机名,并设置主机名解析
配置信息
NA1
vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=na1.server.com vim /etc/hosts 添加 192.168.94.129 na1 na1.server.com 192.168.94.130 na2 na2.server.comNA2
vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=na2.server.com vim /etc/hosts 添加 192.168.94.129 na1 na1.server.com 192.168.94.130 na2 na2.server.com
测试效果
在NA1和NA2上进行测试,ping na1 | ping na2
2、建立SSH互信,ssh-keygen
配置信息
NA1
ssh-keygen -t rsa -f ./.ssh/id_rsa -P ‘‘ ssh-copy-id -i .ssh/id_rsa.pub root@192.168.94.130NA2
ssh-keygen -t rsa -f ./.ssh/id_rsa -P ‘‘ ssh-copy-id -i .ssh/id_rsa.pub root@192.168.94.129
测试效果
分别ssh对方,不需要输入密码
3、NTP时间同步
配置信息
我们没有时间服务器,为了2台设备能够稳定,我们采用NA1作为ntp服务器。
NA1
vim /etc/ntp.conf修改内容如下
启动服务
service ntpd start chkconfig ntpd onNA2
NA2的时间需要和NA1进行同步,因此关闭NA2的ntp服务,同步NA1的时间。
关闭服务
service ntpd stop chkconfig ntpd off同步时间
由于没法每次手动同步时间,我们需要写一个计划任务,定期同步时间
时间同步计划
crontb -e 添加 */5 * * * * /sbin/ntpdate na1 &> /dev/null每5分钟同步一次
4、安装heartbeat软件
安装软件之前建议对系统备份一次,避免安装失败,又得从头再来。
下载安装包,这里我使用epel的yum进行安装。
NA1和NA2都进行安装
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm -y安装heartbeat
yum install heartbeat*
5、heartbeat服务配置
heartbeat有3个主要配置文件
1、秘钥文件 authkeys,该文件权限要为600,不然服务启动会失败。
2、服务配置文件 ha.cf
3、资源管理配置文件 haresources
配置文件路径为/etc/ha.d
默认这个路径下没有配置文件,有个配置样例,在/usr/share/doc/heartbeat-*.*.*/路径下,*是你安装的版本号。
cd /etc/ha.d/ cp /usr/share/doc/heartbeat-3.0.4/{authkeys,ha.cf,haresources} ./
设置网站主备
NA1
1、秘钥文件设置
vim /etc/ha.d/authkeys使用md5,随便计算一个md5值。
2、服务配置
vim /etc/ha.d/ha.cf在eth1接口上进行广播
添加集群节点(这里的名字必须和主机uname -n一致)
3、资源管理配置
vim /etc/ha.d/sharesources
NA2将NA1的配置文件复制过来即可。
配置完成之后,我们将三个配置文件复制到NA2上
scp authkeys haresources ha.cf na2:/etc/ha.d/
7、启动服务,进行测试
首先停止并且关闭开机自启httpd服务。
NA1&NA2
service httpd stop chkconfig httpd off
编写网站页面
NA1
echo "<h1>na1.server.com</h1>" >> /var/www/html/index.htmlNA2
echo "<h1>na2.server.com</h1>" >> /var/www/html/index.html
启动heartbeat服务
NA1&NA2
service heartbeat start
结果查看
NA1上查看日志消息
查看端口服务
现在NA1是主服务节点
访问VIP192.168.94.222
模拟NA1故障,使用内置脚本hb_standby,将NA1修改为从节点。
将NA1改为从节点
访问VIP192.168.94.222
现在NA2为主,NA2提供web服务。
查看端口状态
NA1
NA2
现在我们NA2是主节点,我们在换回来,让NA1当主。
NA2
[root@na2 ~]# /usr/share/heartbeat/hb_standby Going standby [all]. [root@na2 ~]#
模拟真实故障,我们把NA1关机测试。
NA1关机后,NA2变为了主节点,为客户端提供服务,能够实现备双热备份系统。
读书和健身总有一个在路上