实现Keepalived+Lvs , 主要做 RealServer 健康检查及LoadBalance 主机与Master,Backup 主机正常运行,其中一部分主机做高可用,另一部分做负载均衡。通过在HA 主机上安装 keepalived 服务形成主备形式并进行 rr 轮询调度,使用VIP 来 Director向客户端提供服务 IP,Keepalived 能在服务器出现故障时将其从系统中剔除并将服务改换至其他正常节点,当坏掉的节点恢复正常时能够将其加入到服务器集群中,并在实时发现故障时能够发送警告到指定邮箱。
主机环境:RHEL6 X86 (selinux&iptables disabled)
实验主机:
LVS ‐ ACTIVE:
192.168.122.103(server3)
LVS ‐ BACKUP:
192.168.122.104(server4)
LVS ‐ VIP:
192.168.122.111(vip)
Realsever:
192.168.122.101(server1)
192.168.122.102(server2)
SOFT :keepalived-1.2.20
LVS(Server3,server4)配置:
[root@server3 ~]#cd /mnt/
[root@server3mnt]# ls
keepalived-1.2.20.tar.gz
[root@server3mnt]# tar zxf keepalived-1.2.20.tar.gz
[root@server3mnt]# ls
keepalived-1.2.20 keepalived-1.2.20.tar.gz
[root@server3mnt]# cd keepalived-1.2.20
[root@server3keepalived-1.2.20]# ./configure --prefix=/usr/local/keepalived
![Screenshot from 2017-02-02 22-10-35.png wKioL1iVblvh8M9_AAApISW66LY365.png-wh_50]()
(看来是缺少C编译器了,我们安装上GCC)
[root@server3keepalived-1.2.20]# yum install gcc
[root@server3keepalived-1.2.20]#./configure --prefix=/usr/local/keepalived
![Screenshot from 2017-02-02 22-09-12.png wKiom1iVbrOSAdKpAAAW4Wm3Dng745.png-wh_50]()
(还缺少 openssl)
太麻烦了查了查执行 yum install ipvsadmkernel-devel openssl-devel popt-devel libnl-devel gcc make -y 一次安装完
![Screenshot from 2017-02-02 22-08-06.png wKioL1iVby6jnNtHAAAMoZrdLpE296.png-wh_50]()
居然还少东西,libnfnetlink-devel这个东西没有
我在我的rhel6.5镜像里面居然没有搜索到这个东西,在网上搜索下载后安装即可重新编译。
![Screenshot from 2017-02-02 22-06-12.png wKioL1iVb0rzqlDwAACA9HmwBYg945.png-wh_50]()
成功无报错.
[root@server3keepalived-1.2.20]# cd /usr/local/keepalived/
执行4个软链接
ln -s/usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
(启动脚本,可方便调用)
ln -s/usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
(引用启动脚本变量的文件)
ln -s/usr/local/keepalived/etc/keepalived /etc/
(方便使用)
ln -s/usr/local/keepalived/sbin/keepalived /usr/sbin
(环境变量添加)
scp -r/usr/local/keepalived/ root@172.25.33.4:/usr/local/(发到SERVER4后也需要四个链接)
vim /etc/keepalived/keepalived.conf
![Screenshot from 2017-02-03 11-52-26.png wKioL1iVb8jACGr0AADyPHGp1uI885.png-wh_50]()
![Screenshot from 2017-02-03 12-18-02.png wKioL1iVb97SVOqjAAClB-s4-gc494.png-wh_50]()
![Screenshot from 2017-02-03 12-18-38.png wKiom1iVb-uigQbnAADk7GQoWV0496.png-wh_50]()
Scp /etc/keepalived/keepalived.conf root@192.168.122.104:/etc/keepalived/
将设置文件拷入BACKUP机中,然后作以下修改
![Screenshot from 2017-02-03 12-21-55.png wKioL1iVcCGihHbDAAA8ePBaSu8872.png-wh_50]()
启动server3&server4上的keepalived服务
/etc/init.d/keepalived start
在两个real_server上添加
ip addr add192.168.122.111/32 dev eth0
浏览器 192.168.122.101上显示
![Screenshot from 2017-02-03 15-43-36.png wKiom1iVcL3jc9UiAAAVynSKqpE659.png-wh_50]()
浏览器 192.168.122.102上显示
![Screenshot from 2017-02-03 15-44-38.png wKiom1iVcTeTg0HLAAAS8DnwxIw821.png-wh_50]()
在浏览器输入 http://192.168.122.111,会出现
![Screenshot from 2017-02-03 15-41-58.png wKiom1iVcZSTzBGaAAAm6GT91Ng972.png-wh_50]()
刷新一下
![Screenshot from 2017-02-03 15-42-16.png wKiom1iVca6w9PmWAAAZqREwaRQ267.png-wh_50]()
会发现在权重都为1时,虚拟IP所显示的为192.168.122.101和
192.168.122.102的轮流替换,实现了负载均衡的功能。
高可用测试:停止master 上的 keepalived 服务,看backup 是否接管。
![Screenshot from 2017-02-03 15-56-19.png wKioL1iVcd7xPcqQAADtryhF_k0235.png-wh_50]()
如上图,在BACKUP机测试,关掉MASTER后BACKUP进入了MASTER状态。当恢复MASTER机的服务后,如下
![Screenshot from 2017-02-03 15-57-49.png wKioL1iVcfvSR8S2AADfArO6EmU999.png-wh_50]()
可以看到备机重新恢复了BACKUP标签状态。
这样,简单的keepalived和lvs的功能就得以实现了。