Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

LVS分析(上)

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]
问题

我们知道,分布式计算机系统在成本、效益上的的高度可扩展性正是解决这个问题的有效思路。电子商务系统的管理员似乎遇到了这样一个的问题:纯粹的升级机器,既有性能的上限也有资金的困扰。

一方面,用户总是不断地追求更高的机器性能:更快的CPU、更大的内存、更多的磁盘空间、更高速的网络接入、更迅捷的响应服务、更多更方便的功能……这一切最终转化为用户对单一服务器系统不断地进行硬部件的升级。而真相往往是隐含在数字背后的:升级单一的服务器系统,其一次性投入和维护成本越来越高,但性能却越来越无法令人满意,性价比大大低于预期。

另一方面,无论在企业网、园区网还是在广域网如Internet上,业务量的发展都超出了过去最乐观的估计,热门站点几乎要同时处理数十万的在线应用;新的应用层出不穷,即使按照当时最优配置建设的网络,也很快会感到吃不消。另外,24×7小时的快速响应能力要求更加严格的商务应用环境。这一切,不仅对硬件,也对软件平台提出了更高的要求:

  • 可扩展性:通过前面的介绍我们知道,具有良好可扩展性的计算机系统能够使得性能随着成本的增加而线性的增长。并且很容易对其进行精简或者扩充。
  • 全天候的可用性支持:严格的商业环境需要软硬件系统提供透明的、自动适应的可用性支持,保证24×7的系统正常运行。
  • 可管理性:系统可以很庞大,但是要能够易于管理。
  • 相对的成本/性能优势:构造这样的系统,在投入成本上是经济的,容易根据具体的需求定制合适价位的目标系统。

解决方法

这样的系统,显然无法通过单一的服务器系统来实现。单一系统不仅面临着升级软硬件系统而带来的成本危机,而且在复杂的情况下,常常由于单点故障导致商业应用失效。这一切都大大加剧的商家的投入成本和运营维护成本。尤其是各个网络的核心部分,其数据流量和计算强度之大,使得单一设备根本无法承担,而如何在完成同样功能的多个网络设备之间实现合理的业务量分配,使之不致于出现一台设备过忙、而别的设备却未充分发挥处理能力的情况,就成了一个问题。因此,就有必要采用的分布式技术解决成本、性能、可扩展能力等各方面的矛盾。

采用分布式体系结构设计的集群系统恰恰是解决这类问题的方法。通过相对总体成本较低的计算机群集,可以实现单一系统无法提供的强大性能。通过前面文章的分析我们了解到,集群系统在可扩展性、可用性、性能表现等几个方面上,远远比单一系统或者并行计算机来得高效、经济。这里我们针对互联网的应用情况提出具备以下特性的系统:

  • 高可扩展性:支持大量的服务结点,可以根据应用规模不受限制的扩展结点数量。
  • 高可用性:完整的结点容错机制,可以自动识别结点失效和恢复事件。
  • 高性能:基于策略的动态负载均衡,保证整体系统的性能最优化。

不妨称之为“三高”系统。

现实中,有许多技术能够实现这样的系统。总的来说,他们都是借助某个层面上的负载均衡,将网络请求化整为零,由大量集群的服务结点来共同分担,以实现性能最大化的一项集群技术。 集群的负载均衡技术总概

其实,负载均衡并非传统意义上的“均衡”,一般来说,它只是把有可能拥塞于一个地方的负载交给多个地方分担。如果将其改称为“负载分担”,也许更好懂一些。说得通俗一点,负载均衡在网络中的作用就像轮流值日制度,把任务分给大家来完成,以免让一个人累死累活。不过,这种意义上的均衡一般是静态的,也就是事先确定的“轮值”策略 。

与轮流值日制度不同的是,动态负载均衡通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理分配出去。结构上分为本地负载均衡和地域负载均衡(全局负载均衡),前一种是指对本地的服务器集群做负载均衡,后一种是指对分别放置在不同的地理位置、在不同的网络及服务器群集之间作负载均衡。

集群中每个服务结点运行一个所需服务器程序的独立拷贝,诸如Web、FTP、Telnet或e-mail服务器程序。对于某些服务(如运行在Web服务器上的那些服务)而言,程序的一个拷贝运行在群集内所有的主机上,而网络负载均衡则将工作负载在这些主机间进行分配。对于其他服务(例如e-mail),只有一台主机处理工作负载,针对这些服务,网络负载均衡允许网络通讯量流到一个主机上,并在该主机发生故障时将通讯量移至其他主机。

负载均衡技术实现结构

在现有网络结构之上,负载均衡提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。它主要完成以下任务:

  • 解决网络拥塞问题,服务就近提供,实现地理位置无关性
  • 为用户提供更好的访问质量
  • 提高服务器响应速度
  • 提高服务器及其他资源的利用效率
  • 避免了网络关键部位出现单点失效

对一个网络的负载均衡应用,可以从网络的不同层次入手,具体情况要看对网络瓶颈所在之处的具体分析。在多数的网络应用中,都采取了B/S模式,中间还有代理服务器之类的中间层,如果从客户端应用为起点纵向分析,参考前一章节的分层模型,我们把负载均衡技术的实现分为客户端负载均衡技术、应用服务器技术、高层协议交换、网络接入协议交换等几种方式。

说明

负载均衡的层次

◆基于客户端的负载均衡

这种模式指的是在网络的客户端运行特定的程序,该程序通过定期或不定期的收集服务器群的运行参数:CPU占用情况、磁盘IO、内存等动态信息,再根据某种选择策略,找到可以提供服务的最佳服务器,将本地的应用请求发向它。如果负载信息采集程序发现服务器失效,则找到其他可替代的服务器作为服务选择。整个过程对于应用程序来说是完全透明的,所有的工作都在运行时处理。因此这也是一种动态的负载均衡技术。

但这种技术存在通用性的问题。因为每一个客户端都要安装这个特殊的采集程序;并且,为了保证应用层的透明运行,需要针对每一个应用程序加以修改,通过动态链接库或者嵌入的方法,将客户端的访问请求能够先经过采集程序再发往服务器,以重定向的过程进行。对于每一个应用几乎要对代码进行重新开发,工作量比较大。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:如何架构高性价比的分布式计算机集群   下一篇:LVS分析(下)

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号