HA热备搭建
HA热备搭建
HA(高可用性集群)当主机处于工作状态时,从机处于休眠状态,当主机宕机时,从机便会开始工作,让用户几乎感觉不到服务的中断,类似于网络路由配置中的备份。当主机存活时,所有的资源全在主机上,通过网络存储,光纤连接或者是一些第三方存储设备。主机宕机后,资源就会从主机上自动挂到从机上。
一、实验所需的设备
在虚拟机中安装两个新的Linux服务器,每个服务器有两块网卡,eth0为主机模式,eth1为桥接模式或者是NAT模式。eth1会模拟为对外服务,eth0在内网中作为心跳线,起心跳检测的作用,用来检测主机和从机之间是否有存活。
二、从机上的服务安装
采用的事yum安装,yum安装能解决安装包依赖的问题。
1、 yum install epel-release 安装epel yum源
yum install heartbeat* 安装heartbeat服务
yum install nginx 拿web服务做测试
yum install libnet 安装libnet函数库
2、cd /etc/ha.d/
把所需要的文件从/usr/share/doc/heartbeat/中拷到/etc/ha.d/目录下,所需要的文件是haresources,authkeys,ha.cf。
然后进行文件的修改
(1)、vim /etc/ha.d/authkeys
把#auth1
#3 md5 Hello改为
auth3
3 md5 Hello
(2)、然后更改该文件的权限
chmod 600 authkeys
(3)、修改haresources文件
vim haresources
在最后一行加上
主机名(主机) VIP(VIP是虚拟IP,改为对外提供服务的eth1网段内的一个虚拟IP)/24/eth1:0 nginx
例如:zhuji1 192.168.137.11/24/eth1:0 nginx
(4)、修改ha.cf文件
vim ha.cf
把#debugfile调试日志文件
#logfile日志文件
#keepa:live 2 2秒检测一下存活时间
#deadtime 30 30秒为检测到存活则认为主机死亡
#warntime 10 警告时间段为10 秒
#initdead 120 120秒的初始时间
#udpport 694 提供服务通信的udp端口
#ucast单播对方的IP
#node 主机名
#node 从机名
#ping 这个是仲裁IP
#respawn hacluster /usr/lib/heartbeat/ipfail
64位系统改为、/usr/lib64/heartbeat/ipfail
之前的#去掉
在ucast 那行加上
ucast eth0 192.168.13.129
其中eth0 192.168.13.129 是对方的内网即心跳线的IP
再加上
node 主机名
node 从机名
还有很重要的一步
加上ping 192.168.13.1这个IP是作为仲裁,一般是内网的网关,因为网关较为稳定。意思是可以通过这个仲裁IP找到单播IP
(5)、vim /etc/hosts
加上主机和从机的IP和用户名
例如 主机IP 主机名
从机IP 从机名
第五步在主机上也要写
三、把在从机上配置好的文件复制到主机上去
可以用在从机的/etc/ha.d/目录下scp haresources ha.cf authkeys 主机名:/etc/ha.d下的方法进行复制
如果没有scp命令的话可以安装一下
yum install openssh-clients主机从机上都要安装
复制完之后再主机上只需要更改一个地方即可,就是ha.cf中的一个配置即ucast eth0 加对方心跳线的IP
四、配置完上述配置之后,关闭所有的防火墙和selinux
iptables -F
vim /etc/sysconfig/selinux
把SELINUX=enforcing改为SELINUX=disabled
五、然后就是服务的启动了
应该先启动主机上的heartbeat服务再启动从机上的heartbeat服务。
service heartbeat start
六、测试
可以在主机上通过ifconfig和ps aux |grep nginx来查看
先启动主机再启动从机之后我们可以看到在主机上有我们配置的VIP以及nginx 服务的进程,而在从机上没有。我们可以在主机上写一条防火墙记录来测试我们服务的正确性。
iptables -I INPUT -p icmp -j DROP
然后注意观察我们的日志文件 tail -f /var/log/ha-log可以看到日志明显的变化。而在从机上通过ifconfig可以看到VIP,这就说明我们的配置成功了。
也可以利用测试网页来验证
在主机上echo “主机” >>/usr/share/nginx/html/index.html
在从机上echo “从机” >>/usr/share/nginx/html/index.html
然后我们可以在浏览器上通过输入我们配置的VIP以及把主机切断在输入我们的VIP来验证。
- 点赞
- 收藏
- 关注作者
评论(0)