负载均衡实战 - 图文

2026/1/27 5:21:59

connect_port 3000 } } real_server 61.135.93.87 3000{ weight 100 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 3000 } } } virtual_server 61.135.93.100 4000 { delay_loop 6 lb_algo wlc lb_kind DR persistence_timeout 50 protocol TCP real_server 61.135.93.88 4000{ weight 100 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 4000 } } real_server 61.135.93.89 4000{ weight 100 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 4000 } } real_server 61.135.93.90 real_server 61.135.93.87 3000{ weight 100 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 3000 } } } virtual_server 61.135.93.100 4000 { delay_loop 6 lb_algo wlc lb_kind DR persistence_timeout 50 protocol TCP real_server 61.135.93.88 4000{ weight 100 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 4000 } } real_server 61.135.93.89 4000{ weight 100 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 4000 } } real_server 61.135.93.90 4000{ weight 100 TCP_CHECK { connect_timeout 3 nb_get_retry 3 4000{ weight 100 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 4000 } } real_server 61.135.93.91 4000{ weight 100 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 4000 } } } delay_before_retry 3 connect_port 4000 } } real_server 61.135.93.91 4000{ weight 100 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 connect_port 4000 } } } 表3 lvs负载均衡器配臵文件keepalived.conf 三、多vrrp_instance负载均衡集群功能测试

在进行测试之前,需要把lvs客户端、负载均衡器(keepalived)、各真实服务器上的服务都启动,并逐个检验其正确性,具体的检查方法可参照本章前面的内容,不再赘述。 ● 健康检查功能(故障隔离)测试

多vrrp_instance健康检查功能(故障隔离)测试的方法与单vrrp_instance相同。因多vrrp_instance所涉及的服务较多(本案3个),因此需要多花些时间逐个测试。如果多vrrp_instance涉及的服务很多,则可采用随机抽样的方式进行测试,通过观察lvs负载均衡器的转发状态(ipvsadm)及lvs负载均衡器的系统日志了解健康检查测试的有效性。 ● 负载均衡器失败切换

本案的多vrrp_instance负载均衡环境正常运行后,每个lvs负载均衡器都有MASTER和BACKUP两种状态,每一个lvs负载均衡器都承担转发任务。当我们在每个lvs负载均衡器上执行ipvsadm时,其输出结果正好交错的,即lvs-1上如果有非0输出时,则lvs_2相对应的项为0;反之亦然。表4为某运行环境lvs负载均衡器的输出截取对比。 Lvs_1 的ipvsadm输出(部分) IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 61.128.10.4:9000 wlc persistent 50 Lvs_2 的ipvsadm输出(部分) IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 61.128.10.4:9000 wlc persistent 50 -> 61.128.10.16:9000 -> 61.128.10.16:9000 Route 200 4607 139 Route 100 0 0 -> 61.128.10.17:9000 -> 61.128.10.17:9000 Route 200 4611 154 Route 100 0 0 -> 61.128.10.5:9000 -> 61.128.10.5:9000 Route 100 2306 65 Route 100 0 0 -> 61.128.10.8:9000 -> 61.128.10.8:9000 Route 100 2307 89 ……………………………… TCP 61.128.20.124:http wlc persistent 30 -> 61.128.20.98:http Route 100 0 0 …………………………… TCP 61.128.20.124:http wlc persistent 20 -> 61.128.20.98:http Route 100 0 0 Route 100 821 1437 -> 61.128.20.93:http -> 61.128.20.93:http Route 100 0 0 -> 61.128.20.81:http Route 100 0 0 -> 61.128.20.82:http Route 100 823 1562 -> 61.128.20.82:http Route 100 823 1336 -> 61.128.20.81:http Route 100 0 0 Route 100 825 1033 表4 多vrrp_instance 负载均衡器转发输出对比(注意观察ActiveConn InActConn的值)

现在,我们来停掉lvs_1的keepalived进程,观察lvs_2的系统日志,将会发现

vrrp_instance(VI_WEB)从BACKUP状态变成MASTER.于是lvs_2负载均衡器有了两个 MASTER状态;另外lvs_2的ipvsadm的输出字段 \的值将全部变成非零。同样,当我们启动lvs_1的keepalived进程、关闭lvs_2的keepalived进程,则lvs_1的状态都是MASTER,所有的转发请求都被转移到lvs_1。 在上述lvs_1和lvs_2手动切换过程中,我们可以通过在客户端浏览器地址栏输入站点名(dns解析域名到lvs的vip),来验证lvs的可用性。自定义服务可以通过在客户端执行 telnet 61.135.93.100 3000 及 telnet 61.135.93.100 4000 来初步验证。

负载均衡实战之五:集群运行维护攻略

要使负载均衡环境真正的高可用并符合业务需求,还有事情需要去做的。这些事情包括:负载均衡环境中对象新增、变更及删除,状态监控,故障的排查处理等。

一、对象新增、变更及删除

这里的对象包括vip、真实服务器、服务(vip+端口号)等。从前面的事例可以得知,一对负载均衡器,可以承担多个服务的转发任务,因此在运行过程中,很可能因为业务本身的变化而新增、变更或删除对象。比如:某个服务负载趋于饱和,需新加服务器;有些业务下线了,需要从转发队列中把服务删除掉。

对象增加、变更及删除的操作,涉及负载均衡器和真实服务器。在负载均衡器方面,主要的操作就是修改keepalived的配臵文件keepalived.conf;在真实服务器上,进行的操作主要是编写lvs配臵脚本、运行或者关闭这个配臵脚本。

在有2个负载均衡器的lvs环境,所作的配臵文件keepalived.conf变更操作要在这两个服务器上都进行一遍,以保持配臵和服务的一致性。

当我们进行对象增加、变更或删除的操作时,只要注意好执行的先后顺序,就能保证提供的服务不中断,用户的正常访问不受影响。 ● 对象新增

假定在负载均衡环境新增一个web服务器,其操作顺序是: 1、 启用新增服务器的web服务。

2、 启用新增服务器的lvs客户端配臵脚本。 3、 检验\和\两步的正确性。

4、 修改负载均衡器的配臵文件keepalived.conf。

5、 关闭第一个lvs负载均衡器,所有的转发服务将切换到另外一个负载均衡器上。 6、 启用\关闭的那个负载均衡器,然后关闭\中还在运行的那个负载均衡器。 7、 重新启动\所关闭的负载均衡器。 ● 删除对象

假定在负载均衡环境删除一个web服务器,其操作顺序是:

1、 关闭欲下线服务器的web服务。这样负载均衡器的健康检查会自动把该web服务从转发队列删除掉。

2、 卸载欲下线服务器的vip地址。即执行/usr/local/bin/lvs_real stop操作。 3、 修改负载均衡器的配臵文件keepalived.conf。

4、 关闭第一个lvs负载均衡器,所有的转发服务将切换到另外一个负载均衡器上。 5、 启用\关闭的那个负载均衡器,然后关闭\中还在运行的那个负载均衡器。 6、 重新启动\所关闭的负载均衡器。 ● 变更对象

与前两种方式的操作步骤基本相似,不再赘述。 这里再强调一下,如果真实服务器上的服务没关闭而把其上的vip卸载的话,某些用户的请求仍然会被负载均衡器转发过来,导致请求失败。因此,要记住,无论如何,请先关服务!

二、状态监控

为了随时随地了解整个lvs负载均衡环境的运行情况,我们必须对其进行有效的监控。当出现异常或故障时,监控系统能及时有效的通知维护人员,以便问题得以及时地处理。这也是提高可靠性的一个保障措施。

有很多开源的或商业类型的监控系统可供选择,本文选定开源的nagios作为监控平台,关于nagios的相关细节,请参照\网络服务及主机资源监控-nagios\一章。

可供nagios监控的对象很多,对lvs负载均衡环境而言,怎么选定对象才是最有效的呢?这里我们先来回顾一下lvs负载均衡环境运行时,其存在的表现形式有哪些? 1、 负载均衡器及真实服务器。 2、 各真实服务器上运行的服务。 3、 Lvs公用的vip。

根据这些表现形式,我们选取存活检查及服务状态作为监控对象,就可以清晰地了解lvs负载均衡环境的运行状况。把它具体化,可分为:

1、 负载均衡器及真实服务器的存活检查。只有这些服务器运行正常,才可能有其他依赖服务。

2、 Vip的存活检查。一般情况下,启用了lvs环境后,是可以用ping的方式检查vip的。

3、 真实服务器服务状态检查。


负载均衡实战 - 图文.doc 将本文的Word文档下载到电脑
搜索更多关于: 负载均衡实战 - 图文 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219