服务器负载均衡 |
互联网应用的快速增长对多媒体网络服务器 ,特别是 Web 服务器提出了更高的性能要求。面对访问量的快速增加,网络服务器需要具备提供大量并发访问服务的能力,而这通常不是单机可以胜任的。简单地提高硬件性能并不能真正解决这个问题,因为单台服务器的性能总是有限的。一般来讲,一台PC 服务器所能支持的并发访问数量大约为1000个,更为高档的专用服务器能够支持3000~5000个并发访问,这样的能力还是无法满足负载较大的网站的要求的。尤其是网络请求具有突发性,当某些重大事件发生时,网络访问就会急剧上升,从而造成网络瓶颈。利用前面介绍的服务器集群技术优势当然可以解决这问题,但对于一般企业来说,搭建专门的服务器集群系统投资成本明显过大,难以承受。这时就可以考虑多台服务器的简单软件集群,实现网络负载均衡。 服务器负载均衡概述 说到负载均衡( Load Balance ),就要联想起服务器集群。集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。例如一个提供 Web 服务的集群,对外界来看是一个大 Web 服务器。不过集群的节点也可以单独提供服务。 1.负载均衡的含义和功能 负载均衡建立在现有网络结构之上,提供一种廉价、有效的扩展服务器带宽和增加吞吐量的方法。它有两方面的含义:首先,大量的并发访问或数据流量分组到多台节点设备上分别处理,减少用户等待响应的时间:其次,单个重负载的运算分担到多台节点设备上作并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高 。 负载均衡可加强服务器网络数据处理能力,提高网络的灵活性和可用性。它主要完成以下任务:解决网络拥塞问题,服务就近提供,实现地理位置无关性;为用户提供更好的访问质量;提高服务器响应速度;提高服务器和其他资源的利用效率;避免了网络关键部位出现单点故障。 服务器负载均衡一般用于提高服务器的整体处理能力,并提高可靠性、可用性和可维护性,最终目的是加快服务器的响应速度,从而提高用户的体验度。在负载均衡的思路下得每台服务器都具备同等的地位,都可以单独对外提供服务而无须其他服务器的辅助。然后通过某种负载分担技术,将从外部发送来的请求均匀分配到对称结构中的某些服务器上,而接收到请求的服务器都独立回应客户机的请求。 2.服务器负载均衡的分类 服务器负载均衡从结构上分为本地负载均衡(Local Server Load Balance )和全局负载均衡(Global Server Load Balance),前者指对本地的服务器群作负载均衡,后者是指对分别放置在不同的地理位置、有不同的网络及服务器群之间作负载均衡。 本地负载均衡能有效地解决数据流量过大、网络负荷过重的问题,并且不需花费昂贵开支购置性能卓越的服务器,充分利用现有设备,避免服务器单点故障造成数据流量的损失。它具有灵活多样的均衡策略把数据流量合理地分配给服务器群内的服务然共向负担。即使是再给现有服务器扩充升级 ,也只是简单地增加一个新的美国服务器到服务群中,而不须改变现有网络结构、停止现有的服务。 全局负载均衡主要用于在一个多区域拥有自己服务器的站点,为了使全局用户只以一个IP地址或域名就能访问到离自己最近的服务器,从而获得最快的访问速度。它也可用于子公司分散站点分布广的大公司通过 Internet 来达到资源统一合理分配的目的。 全局负载均衡有以下特点: • 解决网络拥塞问题,服务就近提供,实现地理位置无关性。 • 对用户提供更好的访问质量。 • 提高服务器响应速度。 • 提高服务器及其他资源的利用效率。 • 避免了数据中心单点故障。 另外,在负载均衡实现方式上,还有软、硬件之分。软件负载均衡解决方案是指在一台或多台服务器相应的操作系统上,安装一个或多个附加软件来实现负载均衡,如DNS 负载均衡等。它的优点是基于特定环境、配置简单、使用灵活、成本低廉,可以满足一般的负载均衡需求。 硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备我们通常称之为负载均衡器。由于专门的设备完成专门的任务,独立于操作系统,整体性能得到 很大提高,加上多样化的负载均衡策略,智能化的流量管理,可达到簸佳的负载均衡需求。一般而言,硬件负载均衡在功能、性能上优于软件方式,不过成本昂贵。 负载均衡策略 要部署负载均衡,首先要选择适当的均衡策略,也就是依据什么来达到负载均衡的目的, 或者说是依据什么来把负载分配给不同的服务器。 选则合适的负载均衡策略,使多个设备能很好地共同完成任务,消除或避免现有网络负载分布不均、数据流量拥挤反应时间长的瓶颈。在各负载均衡方式中,针对不阔的应用需求。负载均衡策略的优劣及其实现的难易程度有两个关键因素:一、负载均衡算法,二、对网络系统状况的检测方式和能力。一般来说,常见的负载均衡策略有如下儿种。 1)轮循均衡(Round Robin )机制 轮循均衡机制就是把每一次来自网络的请求轮流分配给集群中的服务辘,从l至 n,然后重新开始。此种均衡算法适合于服务器集群中的所有服务器都有相同的软硬件配置,并且平均服务请求时间相对均衡的情况。 2)极重轮循均街(Weighted Round Robin )机制 权重轮循均衡机制是根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求 。例如,服务器 A 的权值被设计成1, B 的权值是3, C 的权值是6,则服务器 A、B、C 将分别接受到10%、30% 、60%的服务请求。此种均衡算法能够确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。 3)随机均衡( Random )机制 随机均衡机制是把来自网络的请求随机分配给内部中的多个服务器,这显然不是个好的均衡策略,因为它可能造成服务器集群中有些服务器负载过大,而有些又无事可干。 4 )权重随机均衡(Weighted Random)机制 权重随机均衡机制类似于权重轮循算法,不过在处理请求分担时是个随机选择的过程。它结合了权重轮循均衡机制和随机均衡机制双重优点,同时避免了两者的缺点。 5 )响应速度均衡( Response Time)机制 响应速度均衡机制是先由负载均衡设备对内部各服务器发出一个探测请求(例如 Ping) ,然后根据内部中各服务器对探测请求的最快响应时间来决定哪 台服务器来响应客户端的服务请求。此种均衡算法能较好地反映服务器的当前运行状态,但这最快响应时间仅仅指的是负载均衡设备与服务器间的最快响应时间,而不是客户端与服务器间的最快响应时间,并且还存在一定的延时。 6)最少连接翻均衡(Least Connection)机制 客户端的每一次请求服务在服务器停留的时间可能会有较大的差异。随着工作时间加长,如果采用简单的轮循或随机均衡算法,每一台服务器上的连接进程可能会产生极大的不同,并没有达到真正的负载均衡。最少连接数均衡算法是对集群中的服务器都有一个数据记录器,记录当前该服务器正在处理的进程数量。当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,与轮循机制相比,可使均衡更加符合实际情况,负载更加均衡。此种均衡算法适合长时处理的请求服务,如FTP 。 7)处理能力均衡 (Process Power)机制 处理能力均衡机制是在系统安装时,要求用户先给出每一台服务器的配置情况,主要是影响服务器处理能力的 CPU 型号、CPU 数量和内存数量,然后系统将其换算成处理能力单位,CLB 根据每一台服务器的能力,均衡地将任务分配给服务器。由于考虑到了内部服务器的处理能力及当前网络运行状况,所以此种均衡算法相对来说更加精确,尤其适合运用到第7层(应用层)负载均衡的情况下。 8) DNS 响应均衡(Flash DNS)机制 在 Internet 上,无论是 HTTP 、FTP 或是其他的服务请求,客户端一般都是通过域名解析来找到服务器确切的 IP 地址的。通过 DNS 响应均衡机制,分处在不同地理位置的负载均衡设备就会收到同一个客户端的域名解析请求,并在间一时间内把此域名解析成各自相对应服务器的 IP 地址(与此负载均衡设备在间一位地理位置的服务器的 IP 地址)并返回给客户端,则客户端将以最先收到的域名解析 IP 地址来继续请求服务 ,而忽略其他的 lP 地址响应。在种均衡策略适合应用在全局负载均衡的情况下,对本地负载均衡是没有意义的。 |