LVS(Linux Vitual Server)在行动
组建高可扩展的网络服务是一项非常复杂的工程,而且花费高昂。对此,LVS(Linux Vitual Server)源代码研发者、TelTel的首席科学家章文嵩主张:"LVS可以使得这项工作(组建高可扩展的网络服务)变得容易起来,而且LVS已经被证明非常稳定,也正在被越来越多站点和系统所部署。"
Ok,基于开源的项目开发已然成为国内众多系统架构师或编程人员的参照首选,然而LVS作为开源性质的系统架构及部署则再一次将Linux的精神推向了高潮。在8月28日-29日召开的2009年系统架构师大会上,章文嵩作为网络架构设计专场的首场演讲人得到了原本400人会场的爆满人气,这或许已经说明了LVS的魅力。
然而,究竟人们为什么对组建高可扩展的网络服务有如此高的关注度呢?正如章文嵩所阐述的那样,随着Internet的飞速发展,横行在网络上的流量以每年100% 速度增长,各行业或企业都有很多关键性业务在网上开展。由此所带来的直接结果就是:很多网站收到前所未有的工作负载,更别说如今视频分享网站、社交网络网站等新兴互联网应用的接连出现的风靡……或许这些描述还不足以明确高可扩展的网络服务组建需求有多么紧迫,那么诸如系统平台所需要的渐进的可扩展性、7*24小时的可用性、可管理性、价格有效性等非常硬性的技术需求则足以清晰。
对于上述需求的解决之道,章文嵩指出,可能的解决方案有2种:一种是,针对单服务的升级,但是升级过程复杂、成本高、且针对的往往是单一故障点;另一种是,针对服务器集群的升级,也即架设网络服务的有效结构,这样做的好处在于:通过增强集群系统的冗余性从而实现高可用性、通过分而治之实现高性能和高吞吐率、通过对结点数目的动态调整实现高可扩展性和高性能/价格比等。
简要来讲,章文嵩给出了IP Virtual Server的实现要素:1.在Linux内核中实现;2.三种IP负载均衡技术(通过网络地址转换实现虚拟服务器、通过IP隧道实现虚拟服务器、通过直接路由实现虚拟服务器);3.十种负载调度算法;4.支持IPv4和IPv6。对于系统的高可用性而言,可组建的集群可以是WEB集群、Cache集群、邮件集群、Media集群、DNS集群、MySql集群等。此外,LVS的硬件平台方面:1.任何跑Linux的硬件平台都可以运行LVS;2.LVS的负载均衡和报文转发对CPU速度要求低;3.可以用低功耗的硬件平台运行LVS,如Intel ATOM CPU 1.6GHz, 功耗2~3W,及Gigabit Ethernet。
与此同时,我们不得不承认,Linux开源项目给广大的系统架构师提供了非常好的资源平台,更值得向往的是,一旦这个平台得到全球系统架构师智囊团级别的全力支撑时,LVS项目更能为所有热衷于网络应用的人们带来最贴心的安慰。