科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道X86服务器负载均衡实战之三:cdn缓存服务器攻略

负载均衡实战之三:cdn缓存服务器攻略

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在cdn的某个区域,需要部署多个缓存服务器,以集群方式来应对大量用户的访问请求,提高系统的高可用性。在机器数量较少的时候,我曾用dns轮训的方式把访问负载分担给服务器,效果不佳,因为DNS不会做健康检查。

作者:田逸 来源:IT168 2009年9月28日

关键字: 服务器 负载均衡 CDN

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

  三、 负载均衡服务的启用和验证

  前面我们也提过,keepalived启动过程不会检查配置文件的语法,因此在启动keepalived以前,需要人工对/etc/keepalived/keepalived.conf文件做全面的语法检查。一个比较容易犯的错误就是把花括号"}"写漏了,不成对!

  当lvs客户端都正常启动并且配置文件经检查无误后(当然有错误也无妨,随时可以修改嘛!),执行命令 /usr/local/keepalived/sbin/keepalived -D ,然后我们查看系统进程,看是否是3个keepalived进程。如果配置文件的路径不是/etc/keepalived/keepalived.conf则需要在启动时用选项-f指定。

  最能反映keepalived启动情况的地方当属系统日志。手动执行启动操作后,使用命令 tail -f /var/log/messages 滚动查看输出,就能详细了解其运行情况。下图为某个lvs环境的keepalived启动输出:

  

  启动keepalived时系统日志的输出(截取)

  另外一个反映keepalived正常运行状态的地方是网络接口vip的启用。通过执行ip add 即可看见vip已经被绑定在制定的网络接口(注意:ifconfig 不能显示 vip)。需要注意的是,BACKUP的vip暂时不绑定。下图显示了这种比较。

  

  主负载均衡器(MASTER) 与备份负载均衡器(BACKUP)输出对比

  主负载均衡器(MASTER)和备份负载均衡器(BACKUP)的keepalived 都把它运行起来,然后我们进行功能测试。

  ● 测试前的准备

  1、 保证所有服务器的网络服务正常。这可以通过ping 所有机器的ip地址已经ping vip 来检查。

  2、 修改本地计算机的hosts文件,把域名跟vip绑定起来。然后再 ping 一下域名,看是否正常。如 125.38.38.64 www.sery.com

  ● 转发功能测试

  1、 在本地机器执行命令 telnet www.sery.com 80 ,检查访问是否正常。

  2、 在本地计算机的浏览器地址栏输入 http://www.sery.com ,看网站默认页是否能正常访问。

  3、 登录主负载均衡器,察看转发情况。Lvs的转发情况,是不能通过netstat -an这样的方式来察看的。这时,前面我们安装的ipvsadm终于上场了。执行不带任何选项的 ipvsadm指令,即可察看tcp连接情况。下图为主负载均衡器的转发情况:

  

  负载均衡器转发状态

  如果想知道当前测试机的访问请求被转发到那个服务器去了,可以在ipvsadm命令后带一个选项,其完整形式为:ipvsadm -lcn | grep 159.226.240.63 。

  [root@hld081028-mk ~]# ipvsadm -lcn | grep 159.226.240.63

  TCP 14:56 ESTABLISHED 159.226.240.63:39783 125.38.38.64:80 125.38.38.99:80

  ● 健康检查功能(故障隔离)测试

  通过手工的方法,使真实服务器提供的服务实效,然后再从客户端发起访问请求,检验lvs提供的服务是否可用。这种测试,有两种方式:停止某个真实服务器的服务(本例为varnish)、关闭网络服务。

  1、 关闭真实服务器125.38.38.99的varnish服务。先 telnet 125.38.38.99 80 ,不能访问为正常。然后再从本地计算机执行 telnet 125.38.38.64 80,如访问正常,再检查负载均衡器的输出。这时停止服务的机器125.38.38.99 将被lvs从转发列表中删除,系统日志也会有被删除的消息打印出来,如下图所示:

  

  服务停止,真实服务器从转发队列删除

  2、 关闭主机的网络。可以关闭网络接口或关闭服务器,然后再按第"1"步的方法测试,检查客户端的访问请求是否不受影响;转发队列是否把关闭网络服务的对象删除。下图为某个真实服务器网络启停时ipvsadm输出对比。

  

  关闭服务器前后ipvsadm输出对比

  3、 关闭lvs的客户端配置脚本/usr/local/bin/lvs_real。这个测试不会成功,关闭真实机器的vip以后,负载均衡器依然会把用户请求转发过来,可是tcp连接却不能成功,部分用户的访问失败。因此在部署和运维lvs环境时,要特别注意这一点。

  从上面的测试可知,关闭或停止服务,负载均衡器通过健康检查自动把实效的机器从转发队列删除掉,实现故障隔离,保证用户的访问不受影响。

  ● 失败切换(FailOver)测试

  关闭主负载均衡器(MASTER)的keepalived进程,然后从客户端访问vip地址及本地绑定的域名。方法是telnet 125.38.38.64 80 及用浏览器访问 http://www.sery.com . 检查访问是否正常。这是最直观的表现方法。

  正常情况下,当主负载均衡器(MASTER)实效时,备份负载均衡器(BACKUP)能立即接替转发任务(接替时间由keepalived.conf文件的advert_int指定)。在确认主负载均衡器(MASTER)的keepalived进程关闭后,我们来看看备份负载均衡器的运行情况。这里我们观察两个地方:ipvsadm的输出及系统日志的输出。

  1、 ipvsadm输出变化。未接替转发任务前,ipvsadm的输出字段ActionConn、InActionConn对应的值皆为"0"(因为没有请求转发);接替转发任务后,这两个字段的值立即发生变化。

  2、 系统输出日志将记录备份负载均衡器从BACKUP向MASTER切换过程,下面截取系统日志关于keepalived输出的部分:

  Jul 6 21:04:32 telcom-dl-1 Keepalived_vrrp: VRRP_Instance(VI_CACHE) Transition to MASTER STATE

  Jul 6 21:04:32 telcom-dl-1 Keepalived_vrrp: VRRP_Group(VGM) Syncing instances to MASTER state

  Jul 6 21:04:37 telcom-dl-1 Keepalived_vrrp: VRRP_Instance(VI_CACHE) Entering MASTER STATE

  Jul 6 21:04:37 telcom-dl-1 Keepalived_vrrp: VRRP_Instance(VI_CACHE) setting protocol VIPs.

  Jul 6 21:04:37 telcom-dl-1 Keepalived_vrrp: VRRP_Instance(VI_CACHE) Sending gratuitous ARPs on eth1 for 218.24.35.105

  Jul 6 21:04:37 telcom-dl-1 Keepalived_vrrp: Netlink reflector reports IP 125.38.38.64 added

  Jul 6 21:04:37 telcom-dl-1 Keepalived_healthcheckers: Netlink reflector reports IP 125.38.38.64 added

  Jul 6 21:04:42 telcom-dl-1 Keepalived_vrrp: VRRP_Instance(VI_CACHE) Sending gratuitous ARPs on eth1 for 125.38.36.64

  现在再回来启动主负载均衡器(MASTER)的keepalived进程,接着察看辅助负载均衡器(BACKUP)的系统日志,截取一段输出如下:

  Jul 6 21:18:12 telcom-dl-1 Keepalived_vrrp: VRRP_Instance(VI_CACHE) Received higher prio advert

  Jul 6 21:18:12 telcom-dl-1 Keepalived_vrrp: VRRP_Instance(VI_CAHCE) Entering BACKUP STATE

  Jul 6 21:18:12 telcom-dl-1 Keepalived_vrrp: VRRP_Instance(VI_CACHE) removing protocol VIPs.

  Jul 6 21:18:12 telcom-dl-1 Keepalived_vrrp: VRRP_Group(VGM) Syncing instances to BACKUP state

  Jul 6 21:18:12 telcom-dl-1 Keepalived_vrrp: Netlink reflector reports IP 125.38.38.64 removed

  Jul 6 21:18:12 telcom-dl-1 Keepalived_healthcheckers: Netlink reflector reports IP 125.38.38.64 removed

  这段输出显示,备份服务器尽管曾经行使了一段MASTER的职权,一旦原来的MASTER复活,它就得把控制权乖乖地交给原MASTER,自己打回原形BACKUP。是什么东西在起作用呢?是配置文件里设置的那个优先级"priority"。为了保证FailOver正常发挥作用,应确保主负载均衡器的"priority"值大于备份负载均衡器的"priority"值。同样,辅助负载均衡器的ipvsadm的输出也会发生变化,这里不再多做说明。

  下篇文章,介绍多负载均衡应用攻略,敬请关注。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章