为什么虚拟服务器?
由于Internet以爆炸速度增长并且它在我们生活中日益重要的角色,Internet上的信息流量戏剧性的每年以100%的速度增长。服务器上的工作量迅速的增长,以至于服务器极容易在某个小的时间段内超负荷,尤其是流行的web服务器。为了解决服务器超载的问题,有两种解决方案。一种是单服务器方案,也就是将服务器升级为更高性能的服务器,但是当请求增长服务器不久又会超负荷,以至于我们得再次升级,升级过程十分复杂并且花费也很高。另一种是多服务器方案,也就是在一个服务器集群上建立一个可升级的服务器。当负荷增加时,我们可以在集群中简单的增加一台或者更多新的服务器来满足增加的请求。无论用什么方法,有几种方法来构造服务器集群。
现在普遍使用的是DNS循环,其通过循环方式将一个名字映射到多个IP地址;从而在理想状况下,不同的客户端将被映射到集群中不同的服务器。通过这种方式,负载将被分布到这些服务器当中。然而,由于客户端和分层域名解析系统的一些隐藏特性,会导致动态的负载不会均衡的分布在每一台服务器上,因此读于一台服务器来说最大负载仍然是不容易控制的。一个名字映射的TTL(Time To Live)值不能很好的确定选择循环域名解析,小的负载使循环域名解析将是一个瓶颈,而大量的不平均动态负载将使情况恶化。即使TTL值被至为零,调度单位是每台服务器,不同的用户的访问方式可能也会导致动态负载的不均衡,因为一些人会从站点拖下大量的页面,而另外的一些任职浏览某些页面就离开了。此外,当服务器节点失败时,把名字映射到IP地址的客户端会发现服务器已经被关闭了,即使他们在浏览器里按“重载”或者“刷新”键,显然这是非常不可靠的。
一个更好的方法是使用一个负载均衡器来分发负载到集群中的服务制造一个看上去只使用一个IP的虚拟服务,以至最终用户只看到一个虚拟服务器,而不是一个服务器集群。调度尺度是每个连接,其可以使一个合理的负载平衡到服务器当中。失败可以被伪装,甚至是更多的失败。服务器的管理将变得简单,并且管理员可以随时提出或者插入一台甚至更多的服务器,而不用中断对用户的服务。
负载均衡可以做成两级,应用级和IP级。举个例子,Reverse-proxy(http://www.engelschall.com/pw/wt/loadbalance/)和pWEB(http://www.nsrc.nus.sg/STAFF/edward/)是用一种应用级负载均衡方法建立的可升级WEB服务器。他们运送HTTP请求到集群中不同的WEB服务器,取回结果,并且返回客户端。因为在应用层中的处理HTTP请求和回复的开销是高的,我们相信当服务器的节点为四个或者更多的时候,应用层负载均衡将成为一个新的瓶颈,她依赖于每台服务器的吞吐量。
我更喜欢IP级的负载均衡,因为IP级的花销是小的,并且最大服务器书可以达到25,直至100。那就是Linux负载均衡服务器的设计目的。他如何工作将在下面的章节详细解释。
最后升级日期:1999/6/27
创新于:1998/5/28