简介:
keepalived是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换(Failover)和健康检查(Health Checking)功能——判断LVS负载调度器、节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机修复后将其重新加入群集。
Keepalived采用VRRP(Virtual Router Redundancy Protocl,虚拟路由冗余协议)热备份协议,以软件的方式实现Linux服务器的多机热备功能。
实验拓扑:
实验环境:
序号 | 名称 | 类型 | IP地址 |
---|---|---|---|
1 | keepalived 主 | centos7 | 192.168.10.10 |
2 | keepalived 从 | centos7 | 192.168.10.20 |
3 | 节点服务器 web1 | centos7 | 192.168.10.100 |
4 | 节点服务器 web2 | centos7 | 192.168.10.200 |
5 | 客户机 client | centos7 | 192.168.10.15 |
实验过程:
一、调度服务器
1、安装环境部署、关闭防火墙、安全功能,两台调度服务器相同操作
[[email protected] ~]#yum install keepalived ipvsadm -y
[[email protected] ~]#systemctl stop firewalld.service
[[email protected] ~]#setenforce 0
2、修改网卡为仅主机模式,配置静态IP,两台调度服务器相同操作,DR 1:192.168.10.10 DR 2:192.168.10.20
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[[email protected] ~]#service network restart
3、开启路由功能、关闭重定向功能,两台调度服务器相同操作
[[email protected] ~]#vi /etc/sysctl.conf
[[email protected] ~]#sysctl -p
4、配置虚拟IP,并开启。注意:如果DR开启虚拟网卡时报错,可用 service network restart 重启网卡,再次开启即可成功。
[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]#cp ifcfg-ens33 ifcfg-ens33:0
[[email protected] network-scripts]#vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.10.2
NETMASK=255.255.255.0
[[email protected] ~]#ifup ens33:0
DR 1:
DR 2:
5、编辑服务脚本,并执行,两台调度服务器相同操作
[[email protected] ~]# cd /etc/init.d/
[[email protected] ~]#vim dr.sh
[[email protected] ~]#chmod +x dr.sh
[[email protected] ~]#service dr.sh start
二、节点服务器
1、安装环境部署,关闭防火墙、安全功能,两台节点服务器同样操作
[[email protected] ~]#yum install httpd -y
[[email protected] ~]#systemctl stop firewalld.service
[[email protected] ~]#setenforce 0
2、开启网页服务,并设置测试页面,web1和web2测试页面加以区分
[[email protected] ~]#systemctl start httpd.service
[[email protected] ~]#cd /var/www/html/
[[email protected] html]#echo "this is aaa" > index.html #web1
[[email protected] html]#echo "this is bbb" > index.htm #web2
3、修改网卡为仅主机模式,web1配置静态IP为192.168.10.100,web2:192.168.10.200,并配置回环网卡的虚拟IP
[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[[email protected] ~]#service network restart
[[email protected] ~]#cd /etc/sysconfig/network-scripts
[[email protected] network-scripts]#cp ifcfg-lo ifcfg-lo:0
[[email protected] network-scripts]#vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.10.2
NETMASK=255.255.255.0
ONBOOT=yes
web1:
web2:
4、编辑服务脚本,并执行,两台节点服务器相同操作
[[email protected] ~]#cd /etc/init.d/
[[email protected] ~]#vim web.sh
[[email protected] ~]#chmod +x web.sh
[[email protected] ~]#service web.sh start
[[email protected] ~]#ifup lo:0
5、用火狐浏览器进行自测:firefox "http://127.0.0.1/" & ,访问后重启脚本服务
web1:
web2:
*到此部分,节点服务器服务部署完成,DR调度服务器配置完成,便可用客户机检测:通过访问调度服务器虚拟IP,可以访问到web1、web2的测试页面
三、在两台调度服务器上配置keepalived服务
1、在192.168.10.10上配置主服务器
[[email protected] ~]#cd /etc/keepalived/
[[email protected] ~]#vim keepalived.conf
2、开启服务,并查看状态
[[email protected] ~]#systemctl start keepalived
[[email protected] ~]#systemctl status keepalived
3、在192.168.10.20上配置备用服务器
[[email protected] ~]#cd /etc/keepalived/
[[email protected] ~]#vim keepalived.conf
4、开启服务,并查看状态
5、测试,如果客户机无法访问,此时只需要将其防火墙重新关闭,并重启相关服务即可。
访问到网页后,down掉keepalived的主服务器,再次访问,如果成功,说明热备冗余设置成功。
到此实验已全部完成,其中报错较多,可以试着用重启服务等方式进行调整,并注意是否是虚拟网卡的问题!
原文地址:http://blog.51cto.com/13784264/2165148