构建LVS+Keepalived高可用群集
防伪码:不必向我诉说春天,我的心里并没有秋寒第六章 构建LVS+Keepalived高可用群集
前言:keeplived是专门针对LVS设计的一款辅助工具,主要功能是实现故障切换和健康检查,官方网站:http://www.keepalived.org。类似于我们以前学习过的HSRP热备份路由协议,HSRP是思科的私有协议,而VRRP是通用协议,都是为了实现故障切换,当一台路由器发生故障的时候,另一台马上接替工作,用户感觉不到服务器发生了问题,而且不会中断服务。我们今天学习的双机热备是就是利用了VRRP虚拟路由冗余协议,和HRSP一样都拥有一个虚拟的ip地址对外提供服务,而不是真正的服务器ip地址,也拥有一台主服务器和多台备份服务器,优先级高的做主路由器,备份服务器处于冗余状态,当主服务器发生故障的时候,从服务器会变成主服务器,当主服务器修好之后,会重新成为主路由器。这里和HSRP不同的是,HSRP需要配置占先权,而这里不用配置,默认都有占先权。
http://s3.运维网.com/wyfs02/M00/89/B5/wKioL1gar1ri6lqgAACZUD0FYkQ131.png-wh_500x0-wm_3-wmp_4-s_1548149004.png
综上所述,VRRP即一主 + 多备,共用同一个IP地址,但优先级不同。
实验案例:构建LVS+Keepalived高可用群集
实验分析:
Keepalived的设计目标是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器、管理服务器池,而不仅仅用作双机热备。使用Keepalived构建LVS群集更加简便易用,主要优势体现在:对LVS负载调度器实现热备切换,提高可用性;对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入。
本节将以DR模式的LVS群集为基础,增加一台从负载调度器,使用Keepalived来实现主、从调度器的热备,从而构建兼有负载均衡、高可用两种能力的LVS网站集群平台,如图所示:
http://s2.运维网.com/wyfs02/M02/89/B5/wKioL1gasu2x18HCAAHFHrxxWTw574.png-wh_500x0-wm_3-wmp_4-s_4001908230.png
实验基础:
http://s1.运维网.com/wyfs02/M02/89/B6/wKioL1gatOCxALtBAAA1YrX8zfI100.png-wh_500x0-wm_3-wmp_4-s_2419994498.png
http://s3.运维网.com/wyfs02/M01/89/B8/wKiom1gatMOjcjYYAAAn1xycxiQ117.png-wh_500x0-wm_3-wmp_4-s_3643964597.png
http://s2.运维网.com/wyfs02/M02/89/B8/wKiom1gatNHi1tq4AACPI8ddDHI619.jpg-wh_500x0-wm_3-wmp_4-s_928367742.jpg
1、配置主调度器
1)安装支持软件(开发内核包kernel-devel、openssl-devel,popt-devel支持库)
http://s1.运维网.com/wyfs02/M02/89/B6/wKioL1gatX7yIZQCAAAhgIhC3e4853.png
2)编译安装Keepalived
http://s1.运维网.com/wyfs02/M01/89/B8/wKiom1gateThDXwSAAA0GiPGiaY637.png
http://s2.运维网.com/wyfs02/M01/89/B6/wKioL1gathngXHuCAAAhdkvc0uU095.png-wh_500x0-wm_3-wmp_4-s_3128716786.png
3)使用Keepalived服务(手动添加为系统服务)
http://s5.运维网.com/wyfs02/M02/89/B8/wKiom1gatinBBrhrAAAtVk8u-ww305.png-wh_500x0-wm_3-wmp_4-s_3257567607.png
4)配置主调度器
Vi/etc/keepalived/keepalived.conf
http://s2.运维网.com/wyfs02/M02/89/B8/wKiom1gatj3yVl_3AADxdlkk1q8988.jpg-wh_500x0-wm_3-wmp_4-s_4248518639.jpg
http://s2.运维网.com/wyfs02/M02/89/B6/wKioL1gatlHiKF6eAABEYXPInjw742.png-wh_500x0-wm_3-wmp_4-s_1320512968.png
详解配置参数:
! Configuration File for keepalived
global_defs {
notification_email { //接收邮件的地址,需要postfix,这里可不写
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1 //邮件服务器地址,这里填写本机地址
smtp_connect_timeout 30
router_id R1 //主调度器路由器名称(注意与从调度器不能相同)
}
vrrp_instance VI_1 {
state MASTER //热备状态,主为MASTER,备为BACKUP
interface eth0 //承载VIP地址的物理接口,即外网卡的名称
virtual_router_id 1 //虚拟路由器的ID号,每个热备组保持一致
priority 100 //优先级,数值越大优先级越高
advert_int 1 //通告间隔秒数(心跳频率)
authentication { //认证信息,每个热备组保持一致
auth_type PASS //认证类型
auth_pass 1111 //密码字串
}
virtual_ipaddress { //漂移地址(VIP),可以有多个
172.16.16.200
}
}
virtual_server 172.16.16.200 { //虚拟服务器地址(VIP)
delay_loop 6 //健康检查的间隔时间(秒)
lb_algo rr //轮询(rr)调度算法
lb_kind DR //群集工作模式(DR即路由模式)
persistence_timeout 50 //连接保持时间
protocol TCP //应用服务采用的是TCP协议
real_server 172.16.16.173{ //第一个节点的地址
weight 1 //节点的权重
TCP_CHECK { //健康检查方式
connect_timeout 3 //连接超时
nb_get_retry 3 //重试次数
delay_before_retry 3 //重试间隔(秒)
}
}
}
real_server 172.16.16.174{ //同上
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
5)开启keepalived服务
http://s4.运维网.com/wyfs02/M00/89/B8/wKiom1gatm7TxnwCAAAk_CaaCwU524.png-wh_500x0-wm_3-wmp_4-s_3850941917.png
http://s4.运维网.com/wyfs02/M00/89/B6/wKioL1gatrOR0S3aAABE6BIEnYQ773.png-wh_500x0-wm_3-wmp_4-s_2548639743.png
注:inet 172.16.16.200/32 scope global eth0 //漂移地址,通俗来讲,谁是主,谁优先级高,跟着谁
6)从调度服务器的配置
首先安装keepalived,和主服务器一样,在配置的时候主要有三个地方不一样:优先级99,调度器名称R2,热备状态为BACKUP
Vi /etc/keepalived/keepalived.conf(使用scp命令远程拷贝一份)
http://s2.运维网.com/wyfs02/M01/89/B6/wKioL1gawFyQk7tgAAAqXKdhMo4361.png
http://s3.运维网.com/wyfs02/M02/89/B6/wKioL1gawYnBva7fAABUihqWTHE890.png-wh_500x0-wm_3-wmp_4-s_1725302557.png
http://s2.运维网.com/wyfs02/M00/89/B9/wKiom1gawZqDq33LAABG3JipNRM531.png-wh_500x0-wm_3-wmp_4-s_2308580255.png
7)启动从服务器的Keepalived服务
http://s2.运维网.com/wyfs02/M01/89/B9/wKiom1gawmOh-AoXAAAiJGbKhLg958.png-wh_500x0-wm_3-wmp_4-s_3589173555.png
8) 测试lvs+keepalived群集
在客户机上访问172.16.16.172,可以正常访问,效果如下:
http://s5.运维网.com/wyfs02/M02/89/B6/wKioL1gaw83hbdtqAAArTfoGats301.png-wh_500x0-wm_3-wmp_4-s_2927172140.png
然后把主调度器的外网卡断掉,如果客户端依然可以访问网站,说明成功。
http://s5.运维网.com/wyfs02/M01/89/B9/wKiom1gaxA-jfdaNAAEpNhDMJho277.jpg-wh_500x0-wm_3-wmp_4-s_3187076726.jpg
再次访问网站
http://s5.运维网.com/wyfs02/M02/89/B6/wKioL1gaxP_TldWYAAAsnAHg5Hw276.png-wh_500x0-wm_3-wmp_4-s_3663144135.png
在从调度器上查看网卡配置,可以看到虚拟ip显示了,说明现在从服务器成为了主调度器。
http://s2.运维网.com/wyfs02/M00/89/B9/wKiom1gaxRPgi-PLAABASLNmjZo240.png-wh_500x0-wm_3-wmp_4-s_4244274240.png
9) 测试联通性
在客户机上ping 172.16.16.172 -t,然后断掉主调度器的外网卡,发现断掉一下之后马上又恢复通信,说明今天的实验成功了,
当然最关键还是当主服务器故障之后,用户访问网站没有感觉,web节点的网页也要完全一样。
http://s4.运维网.com/wyfs02/M02/89/B9/wKiom1gax4SRMCS5AABBaCwYz2Y419.png-wh_500x0-wm_3-wmp_4-s_3269311644.png
结语:通过主、从调度器的/var/log/messages日志文件,可以跟踪故障切换过程;若要查看负载分配情况,可以执行“ipvsadm -ln或ipvsadm -lnc”等命令。
最终可以验证LVS+Keepalived高可用负载均衡群集的健壮性。
谢谢观看,真心的希望能帮到您!
页:
[1]