BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

LVS在大规模网络环境中的应用

| 作者 郭蕾 关注 9 他的粉丝 发布于 2014年10月14日. 估计阅读时间: 4 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器。目前LVS已经是Linux内核标准的一部分。阿里云技术团队近日分享了题为《LVS在大规模网络环境中的应用》的演讲,InfoQ对演讲内容进行了整理。

为什么引入LVS?

举个例子,一个用户访问淘宝网站,淘宝网前端共有5台Apache服务器,如何决定访问哪一台Apache?常用的方式是用DNS做负载均衡,将5台Apache服务器的ip地址添加到域名www.taobao.com中。
但DNS有一些缺点,第一个缺点:例如第二台Apache宕了,运维赶紧把DNS中该Apache的ip地址删除掉,但很多地方的Local DNS不一定遵守TTL协议,这样删除操作什么时候生效,你根本不可控的;尤其移动网络中,这个问题更突出,我记得10年时移动网络部分地区Local DNS一天才更新。
第二个缺点:服务调度算法只支持WRR。如果你用户范围很有限,就会有负载不均衡的问题。第三个缺点:攻击防御能力很弱,每次有攻击靠一台机器抗。
针对DNS的不足,引入了Virtual Server的概念,即最前端有一个入口设备把流量均衡到后端的Apache上去;无论是LVS软负载还是F5硬负载均衡也都是这种概念。

LVS是什么?

LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器。LVS工作在网络4层之上仅作分发之用,所以抗负载能力比较强。LVS有完整的双机热备方案,几乎支持对所有应用做负载均衡。LVS在互联网应用中的位置是在Nginx之上,具体如下:

LVS如何应用?

LVS本身只是一个叫IP_VS的内核模块,这个模块可以做负载均衡,但是只用这个模块来做工程应用是远远不够的,比如LVS本身宕机后如何处理?实际生产环境中,一般配合Keepalived来使用LVS,keepalived支持VRRP心跳协议,可以实现LVS主备冗余,以解决LVS本身单点故障。另外,Keepalived支持健康检测,4层和7层健康检测,防止服务器宕机。对于LVS的服务监控问题,可以使用开源软件SNMP Patch解决。

LVS问题以及解决方案

  1. LVS的3种转发模式,部署成本比较高
    使用新转发模式FULLNAT,FULLNAT实现了LVS-RealServer间跨vlan通讯,并且in/out流都经过LVS。FULLNAT转发数据包是类似NAT模式,IN和OUT数据包都是经过LVS,唯一的区别后端RealServer或者交换机 不需要做任何配置。FULLNAT的主要原理是引入local address(内网ip地址),cip-vip转换为lip->rip,而 lip和rip均为IDC内网IP,可以跨vlan通讯;
  2. 和商用的负载均衡比,LVS没有DDOS防御攻击功能;
    使用SYNPROXY(synflood攻击防御模块),Synproxy实现的主要原理是参照Linux TCP协议栈中syncookies的思想,LVS构造特殊seq的synack包,验证ack包中ack_seq是否合法实现了TCP三次握手代理。

  3. 主备部署模式,性能无法扩展;
    Cluster部署模式。基于FullNAT模式做横向扩展。

LVS的性能优化

  1. 多队列网卡,即一个队列绑定到一个CPU核上,让多核同时处理网络数据包。如果网卡不支持多队列,可以用Google提供的软多队列-RPS,Linux内核默认已经集成;
  2. 对Keepalived进行了优化,主要将网络模式从select改为了epool。
  3. 建议把网卡LRO、GRO功能关掉,尤其是broadcom的网卡。

LVS的创始人和主要开发者章文嵩博士目前就职于阿里云,任职阿里云副总裁。在10月16日举行的阿里云开发者大会上,他所带领的阿里云团队将会在现场进行互动问答,与用户共同探讨云时代的产品、运维、服务等相关问题,欢迎关注。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT