2.keepalived是什么?
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机
,或工作出现故障,Keepalived将检测到,通过VRRP协议,将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后
Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
3.VRRP协议是什么?
VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议) 可以认为是实现路由器高可用的协议,简单的说,当一个路由器故障时可以由另一个备份路由器继续提供相同的服务。
keepalive就是通过基于VRRP协议的VIP漂移来实现主从VS的切换来实现高可用。
4.实验目标
通过配置两台VS,实现两VS间的相互检测,当其中一台VS宕机后,另一台VS能够自动顶替,使用户能够正常访问后端webserver资源,从而实现高可用
5.实验环境
VS-master:主负载均衡器
VIP:172.17.252.1(eth0:0)
VS-backup:从负载均衡器
VIP:172.17.252.1(eth0:0)
RS1:webserver
VIP:172.17.252.1(lo:0)
RS2:webserver
VIP:172.17.252.1(lo:0)
注意:①VS无须进行DR的任何配置,只需打开路由转发功能即可;RS需符合DR所有配置
②基于DR模式的LVS架构搭建过程,请看此博客 http://blog.51cto.com/13172823/1980791
6.实验前的必要准备
①关闭VS和RS的selinux,并禁用iptables
②两台VS使用yum安装keepalived软件
7:实验步骤(操作环境:VS)
(1)修改VS-master的keepalived配置文件
global_defs { ##全局配置 notification_email { ##邮件通知 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 LVS_DEVEL } vrrp_instance VI_1 { ##虚拟路由示例名 state MASTER ##初始状态,MASTER|BACKUP,当state指定的instance的初始 化状态,在两台服务器都启动以后,马上发生竞选,优先级高的成为MASTER, 所以这里的MASTER并不是表示此台服务器一直是MASTER interface eth0 virtual_router_id 51 ##虚拟路由id号,最大255,一般不随意改动 priority 100 ##优先级,数值越大,优先级越高(主高从低) advert_int 1 ##VRRP通告间隔,单位为s authentication { auth_type PASS auth_pass pp } virtual_ipaddress { ##VIP 172.17.252.1 } # nopreempt ##开启非抢占模式(默认抢占,即当从服务器健康时,VIP强制漂移到主服务器上) } virtual_server 172.17.252.1 80 { ##配置VS delay_loop 6 ##服务轮训时间 lb_algo wrr ##LVS集群调度算法为加权轮寻算法 lb_kind DR ##LVC集群模式 nat_mask 255.255.255.255 persistence_timeout 600 ##会话保持时间(s) protocol TCP ##健康检查protocol(UDP | TCP) real_server 172.17.250.121 80 { ##指定RS1 weight 1 ##权重 HTTP_GET { url { path / } connect_timeout 3 ##连接超时时间 nb_get_retry 3 ##重连次数 delay_before_retry 3 ##重连连接间隔 } } real_server 172.17.250.122 80 { ##指定RS2 weight 1 HTTP_GET { url { path / } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }
(2)修改VS-backup的keepalive配置文件
global_defs { ##全局配置 notification_email { ##邮件通知 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 LVS_DEVEL } vrrp_instance VI_2 { ##虚拟路由示例名 state BACKUP interface eth0 virtual_router_id 51 ##虚拟路由id号,最大255,一般不随意改动 priority 98 ##优先级,数值越大,优先级越高 advert_int 1 ##VRRP通告间隔,单位为s authentication { auth_type PASS auth_pass pp } virtual_ipaddress { ##VIP 172.17.252.1 } } virtual_server 172.17.252.1 80 { ##配置VS delay_loop 6 ##服务轮训时间 lb_algo wrr ##LVS集群调度算法 lb_kind DR ##LVC集群模式 nat_mask 255.255.255.255 persistence_timeout 600 ##会话保持时间(s) protocol TCP ##健康检查protocol(UDP | TCP) real_server 172.17.250.121 80 { ##指定RS1 weight 1 ##权重 HTTP_GET { url { path / } connect_timeout 3 ##连接超时时间 nb_get_retry 3 ##重连次数 delay_before_retry 3 ##重连连接间隔 } } real_server 172.17.250.122 80 { ##指定RS2 weight 1 HTTP_GET { url { path / } connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }
8.实验结果测试
(1)同开启两台VS的keepalived服务,VIP在VS-master上,而不在VS-backup上
(2)关闭master的keepalived服务,backup主机自动获得VIP,而master上没有VIP
(3)再次开启master的keepalived服务,VIP又飘回master
注意事项:查看VIP应使用ip命令,ifconfig无效。
总结:到这里,我们已经通过利用keepalived的VIP漂移来实现了主从服务器的自由切换,从而满足了企业基本的服务器高可用目标。
原文地址:http://blog.51cto.com/13172823/2044447