|
阅读:739回复:4
负载均衡器 送给可爱的松柏。。
传统的网络结构已经不能满足这种高质量的需求。在仅靠不断增加带宽的方式提高访问速度收效甚微的情况下,想切实提高网络服务质量,就需要在现有网络层次结构中专门增加一层,以专门用于提高网络的响应时间。
目前这种用于加速互联网络的产品有许多,代表技术有负载均衡、高速缓存、SSL/XML加速、流量与带宽管理等。目前,此系列产品已经越来越普遍地被各数据中心、ISP、企业网站使用。他们往往分布在应用服务器和路由器/交换机之间,有人称之为“前端基础设施”。 所有这些技术都能改善网络速度、提高服务质量,但机理不同,适用的范围也不尽相同。以下详细介绍各个技术的特点和适用范围。 负载均衡技术 现在互联网上有多少客户?十分钟后客户数目会增长吗?这些问题恐怕谁也回答不了。互联网的快速增长已经使网络服务器面对的访问数量大大增加并且更加不可预知。如今,服务器必须具备提供大量并发访问服务的能力,其处理能力和I/O能力已经成为提供服务的瓶颈。如果客户的增多导致通信量超出了服务器能承受的范围,那么其结果必然是——宕机。 显然,单台服务器有限的性能不可能解决这个问题,一台普通服务器的处理能力只能达到每秒几万个到几十万个请求,无法在一秒钟内处理上百万个甚至更多的请求。但若能将10台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是负载均衡最初的基本设计思想。 最早的负载均衡技术是通过DNS来实现的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。DNS负载均衡是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反映服务器的当前运行状态。 其实,这种负载均衡的基本设计思想只能算是负载均衡技术的最初应用。现代负载均衡技术除了可以做到合理、平均、实时地均衡系统负载外,还能够确保系统正常运行的高可用性和高可靠性。 负载均衡服务能够平衡服务器群中所有的服务器和应用之间的通信负载,根据实时响应时间进行判断,将任务交由负载最轻的服务器来处理,以实现真正的智能通信管理和最佳的服务器群性能。 假设每个服务器能响应的请求为每秒10万个。如果不采用负载均衡,那么该系统就只能达到每秒10万个的响应,即使采用三台服务器,也有可能在不到每秒30万个响应的时候就会出现某台服务器由于访问量过大而宕机;如果某台服务器出现故障,则可能导致数万个请求不能得到正确的响应。但如果采用负载均衡,不仅当服务器出现故障时可以自动将指向该服务器上的响应分担到其他服务器,还可以在数据量不太大时也将任务分配到各个服务器中,避免出现有些服务器数据量很小而有的已因数据量接近极限导致性能急剧下降的现象。如果数据量超出了服务器的响应能力,只需增加服务器数目就可以平滑升级。也就是说,负载均衡技术不仅可以维持网络系统中负载的均衡分配,还能够维护网络系统的高可用性运行,因而是保证网络系统高性能的重要技术。 现代负载均衡技术通常操作于网络的第四层或第七层。负载均衡器可以根据实际的响应时间制定优先级交付决策,从而实现高性能、智能化流量管理,达到最佳的服务器群性能。采用第七层应用控制还可以减少通信高峰期的错误讯息,因为差错控制和流量管理技术可以侦测到一些错误信息并透明地将会话重定向到另一个服务器,使用户顺利地进行使用。例如,图一中服务器A不可用或者数据库出现错误,错误信息将会返回到负载均衡器上,然后会将客户的访问指向服务器B或者将消息重放到其他数据库中去,整个过程对用户是透明的。 由于采用了负载均衡技术,自动故障恢复得以实现,服务的时间可以延长,24×7可靠性和持续运行成为可能。另外,负载均衡器一般也支持路径外返回模式,即绕过流量分配器,为那些焦急等待大量数据文件请求响应的客户提供更快的响应时间。 在最新的负载均衡产品中,智能化越来越明显。一些智能化的负载均衡器能够侦测到像数据库错误、服务器不可用等信息,从而采取措施使会话恢复和重定向服务器使电子商务能够得以顺利进行。多址负载均衡器可以对客户发来的访问请求进行解析,计算出最佳地址,然后将该地址返回客户,使客户自动连接到对其请求来说最佳的数据中心。 缓存技术 负载均衡技术解决了出现大流量数据时服务器的智能化分配,但统计发现,在网络应用的需求中存在着许多冗余的内容,这些重复的需求占用了大量的网络资源。具体地说,在互联网上80%的用户都在访问20%的热门网站,而在这些热门网站中又有一些热门的内容吸引了绝大多数访问者的注意;对于企业局域网而言,员工所发出的网络指令也存在着很大的重复。以上的情况造成了计算机执行的指令具有很高的重复性,这是仅用负载均衡技术不能解决的。 缓存技术就是基于以上的情况产生的。缓存设备会监视Web请求,检索它们,然后存储为它的对象。后来的用户将直接从本地的缓存设备而不是真正的目标站点获取该对象,从而达到提高响应性能,减少带宽压力的目的。 有效放置的缓存设备可以及时向最终用户传送Web网页,提高Web站点的效率,减少WAN访问费用,甚至可以建立起一道抵御外部黑客攻击的安全防线。因此,不仅对于那些能够迅速地从缓存技术节省下来的费用中盈利的ISP和电信公司,而且对于企业而言,缓存技术也同样具有着越来越大的吸引力。 缓存技术的基本概念是:由于从网络的边缘索取对象比从Internet中索取的速度更快、费用更低廉,因此将Web数据靠近最终用户保存,可以使服务提供商保留带宽,节省费用。缓存设备工作在比路由器更高的层次上,能够把用户所要访问的网络信息“抓”到本地,在最短的时间内将信息连续、完整、实时地传递给最终用户,不仅大大缩短了访问响应时间,而且极大地提高了高峰时间网络所能承受的访问容量。可以说,缓存技术降低了目前广域网通讯带宽成本,是提升互联网访问性能的最好方法。 早期的缓存技术可用来节省带宽以减少网络拥塞,但它们不可避免地引起了以下问题:一是用户有可能得不到网页的及时更新,因为缓存区不可能自动跟踪网页的变化;二是为得到最新网页,用户访问时需要首先查询真正的服务器上的内容,这将导致访问速度的降低。 SSL加速器原理图 目前使用最多的缓存技术产品是Web Cache。一提Cache,大家自然会想到计算机里面的高速缓存,实际上,Web Cache的功用远不止存储和提供数据这么简单。Cache是作为基于软件的代理服务器的一部分或专门的硬件(appliances,容器)出现的,本文主要谈后者。与前者相比,它可以提供更好的性能。不同的生产商提供的产品在许多方面存在着差异,其中包括配置和设置的难易程度、使用的协议、安全性能、远程管理、能够用于缓存的Web传输的类型以及价格、售后技术支持等。 Cache设备可在用户端储存最常浏览的网页内容,随时提供给用户存取,还可同时监控内容的来源,以测知网页是否已更新,并同步更新储存的内容。一般来说,在配置了互联网加速设备后,由于很多用户浏览的内容可以从高速缓存中直接调出,网络效能会有明显的大幅提升:网页响应时间最多可以减少90%以上;频宽使用率将增加30%~50%。 SSL/XML加速 解决了服务器分配和缓存的问题之后,在网络传输的内容上,由于SSL和XML仍占用相当的服务器资源,仍然会影响网络的传输速度。它们能加速吗? SSL(加密套接字协议层)是一种应用极为广泛的WEB信息安全传送协议。最初由Netscape开发以提供Internet上的安全连接和传送,目前,98%的Web上的安全传送都运用SSL。SSL已经成了安全互联网交易中数据加密的工业标准,采用SSL的网站在1998年和1999年间增加了两倍。由于SSL运用加密算法和密码,其加密/解密过程需大量占用服务器的CPU资源,使CPU利用率接近100%,从而大大降低了服务器性能。当网络用户大大增加后,网络性能将急剧降低,很可能用户会因网络响应欠佳而失去耐心离开网站。 电子商务时代,服务器反应速度至关重要,为根本解决SSL给服务器运行带来的不利影响,必须采用专门设备处理SSL协议,以使服务器CPU从繁重的加密/解密过程中解脱出来。 当使用SSL加速器时,所有非SSL数据流可以未受任何改变地通过加速器;但是当由SSL加密过的数据流经过SSL加速器时,进入的SSL数据流被解密并干净地传给服务器,而外流的SSL数据流被加密并传向客户。这样服务器只需简单地处理SSL请求,原本消耗众多计算资源的HTTP/SSL现在被专用的SSL加速设备负责处理。使用了SSL加速器之后,系统每秒处理的安全连接数可由原来几十个增长到数百个。当然,如果需要最大限度地利用服务器,也可以卸载SSL处理工作。 此外,SSL加速器可以实现灵活的动态堆叠,实行自动的“任务分担”以得到最大的扩展能力。一般SSL加速器可以自动与所有类型的服务器协同运行,并可以支持一台或多台服务器。 XML(扩展标识语言)是SGML(标准通用标识语言)的一个子集,它已经快速取代EDI(电子数据交换)成为B2B网上交易的统一格式。事实已经证明,XML所采用的标准技术最适合Web开发。XML支持结构化的数据,可以更详细地定义某个数据对象的数据结构,例如,描述产品,详细定义该产品的生产厂、产品名、产品号、产地等信息,这种定义不仅为标记该产品提供方便,而且这种XML数据很容易按生产厂、产品名等排序,使用户的查询变得更方便。 XML加速器可以将XML交易进行分类,如按照商业合作伙伴名称或类型、交易价值或数量以及时刻或时区为依据,配置业务优先级,从而提高响应速度,解放服务器资源,更快地处理交易。 智能化的XML加速器可以使用多变量分类包括与、或,以满足复杂业务的优先级要求。还有的XML加速器自身提供服务器的负载均衡,以达到快速、安全的目的。 带宽管理 带宽的重要性对网络来说不言而喻。但在实际应用中,由于众多数据流同时使用带宽却无法按照任务的关键性和时间的敏感性分级,所以关键应用带宽往往未被高效使用,带宽的使用效率低下,成为网络传输的瓶颈。 例如,与Web浏览相比,电子邮件的任务关键性要高一些,但对时间的敏感性并没有过高的要求;而实时的游戏等,对时间非常敏感,但任务的关键性并不大。如果对这些数据流不加分析地传输,必然会影响网络传输的效率。 带宽管理器使用户可以高效地管理网络通信、提供差别服务并控制广域网络带宽分配。由于使用带宽管理器可以赋予带宽优先级,因此可以加大关键业务的带宽,限制非关键或大容量应用的带宽,提高众多应用和服务的功能。 带宽管理器适用于高速局域网和广域网的交界处,是所有数据流的唯一路径。它根据定制的带宽计划进行网络分析,进行精确的流量控制,智能地将通信进行分类。在大容量数据流的情况下,关键应用得以保证,带宽获得高效应用。由于各种应用、多种服务级别都能得到高质量服务,带宽使用效率达到了最大化。 带宽管理器不仅可以分析网络通信状态,还可以提供网络报告,使服务提供商可以根据具体数字进行容量规划并评估配置变化所产生的影响。 值得说明的是,以上谈到的负载均衡、高速缓存、SSL加速和带宽管理等各项技术既可以单独使用,也可以相互结合,或者集成到交换机或服务器中去。目前许多厂家已经生产了集合两种或两种以上加速技术的产品。也许几年以后,我们可以看到更为集成的“互联网加速器”或者已经集成所有加速技术的新型互联网服务器。 ================================================================ 以上都是抄的,现在自己写点。。 上边说所得都是硬件负载均衡器设备,大概需要RMB10~20w之间,还不算其他模块化的设备,如SSL,XML加速器等。。所以这些硬件设备比较花银子,而还有一种比较简单的方法是基于WINDOWS2000AD SERVER的一种服务,网络负载均衡,在TCP/IP的选项里,那么这个和硬件有什么区别呢?? 我这里简单说一下。。。 第一〉硬件的用电源,软件的不用电源。。。。这是最大的区别。不准打我,难道不是吗??? 第2〉 软件的网络负载均衡(对于WINDOWS2000的,以下都是指软件的网络负载均衡) 是一个WINDOWS2K的一个网络驱动程序,它的操作对TCP/IP网络栈而言是透明的。为确保网络性能达到最优,网络负载均衡通常使用一个网络适配器来处理客户到群集的通讯量,而其它对服务器的网络通讯量则经由一个单独网络适配器。然而,第二个网络适配器是不需要的。 负载均衡对于平衡数据库的访问也是有效的,某些服务器程序需要访问由客户请求来更新的数据库。当这些程序的负载在群集内得到均衡分配时,相关的更新工作则应保持同步状态。每个主机均使用一个本地、独立的数据库拷贝,而该数据库在必要时可脱机并入。另一种方法是,群集主机能够共享对一个独立的网络数据库服务器的访问。也可以组合使用这些方法。例如,静态Web网页能够在全部群集服务器间进行复制,以确保快速访问和全面容错。但是,数据库访问请求将转发至为多个Web服务器进行更新处理的公共数据库服务器。 某些关键任务程序可能需要使用高度可用的数据库引擎以确保全面容错。逐渐地,具有群集识别能力的数据库软件将得到部署,用以在整个群集模式中提供具有高度可用性与可伸缩性的数据库访问。Microsoft SQL Server就是一个例子,它能够使用群集服务功能以双节点方式进行部署。群集服务可确保在一个节点发生故障的情况下,剩余的节点将承担起故障电脑的职责,这样,就能够为Microsoft SQL Server 客户提供近乎连续的服务。由于两台电脑共享一个公共磁盘子系统,则上述功能是可以实现的。 一般情况下是3中方案,第一方案,网络负载均衡主要是分配引入的传输控制协议/网际协议(TCP/IP)通讯量;加入这一解决方案的计算机形成一种群集。第二方案,群集服务主要是提供从一台计算机到另一计算机的故障应急服务;加入这一解决方案的计算机形成另一种群集。网络负载均衡群集通常运行Web服务器程序。群集服务通常运行数据库程序(当与网络负载均衡联合使用时)。通过将两个群集连接在一起以互补方式发挥作用,用户创建了全面群集解决方案。 网络负载均衡器怎么工作呢??工作机理是怎样的???网络负载均衡为共同工作且使用两个或两个以上主机群集的Web服务器提供了高度可用性和可伸缩性。因特网客户使用单一的IP地址(或一个多主主机的一组地址)访问群集。客户不能将单一服务器从群集中区分开来。服务器程序不能识别它们正运行于一个群集中。但是,由于网络负载均衡群集即使在群集主机发生故障的情况下仍能提供了不间断的服务,故而,它与运行单一服务器程序的单一主机大相径庭。与单一主机相比,群集还能对客户需求做出更迅捷的反应。 网络负载均衡通过在主机发生故障或脱机的情况下将网络通讯量重新指定给其它工作群集主机来提供高度的可用性。与脱机主机现存的连接虽然丢失,但因特网服务仍然处于可用状态。在大多数情况下(例如,就Web服务器而言),客户软件会自动重试发生故障的连接,而且,客户仅需几秒的延迟即可收到响应。 网络负载均衡通过在群集的一个或一个以上虚拟IP地址当中分配引入的网络通讯量来提供伸缩能力。群集中的主机于是对不同客户请求做出响应,即使是来自同一客户的多重请求也如是。例如,Web浏览器可能在单一Web网页内获得群集内不同主机处的多重映射。这就加速了处理过程并缩短了对客户的响应时间。 网络负载均衡使在一个子网上的全部群集主机能够为群集的主IP地址(以及多主主机上的额外IP地址)同时检测引入的网络通讯量。在每个群集主机上,网络负载均衡驱动程序充当了一个介于群集适配器驱动程序和TCP/IP栈之间的过滤器,以这种方式使主机能够收到一部分引入的网络通讯量。 负载均衡器的2个关键算法 网络负载均衡使用全面分布式的算法来从统计意义上将引入的客户映射到基于IP地址、端口和其它信息的群集主机上。在检查收到的数据包时,所有主机均同步执行这种映射以迅速决定哪个主机应处理该数据包。除非群集主机数量发生变化,该映射会保持不变。 网络负载均衡过滤算法在数据包处理程序方面要比在集中负载均衡程序方面高效得多,而这必须修改并重发数据包。这就使网络负载均衡能够提供高得多的聚集带宽。通过直接在群集主机上运行,网络负载均衡的性能并不受某一代处理器或网络技术的局限。 集中收敛~~~关键的技术,也是和硬件技术最大的差别: 网络负载均衡主机通过在群集内定期交换组播或广播消息来协调彼此间的活动。这就使它们能够监控群集所处的状态。当群集所处状况发生变化时(比如主机故障、脱离或加入群集),网络负载均衡就会调用一个称为集中收敛的处理过程,在这个处理过中,主机之间将交换消息以确定一个新的、持续的群集状态,并推举一个具有最高优先级的主机充当新的缺省主机。当群集的全部主机就新的群集状态达成一致时,它们就会将集中收敛的完成记入Windows 2000的事件日志。 而硬件不需要进行逐级推选,他利用刚强壮的机制高级的管理,和健康检查机制来分配客户流量~~如哈西表,会话时间,会话数,关键字(比如一个点子上午的订单50w.和5000w的订单,负载均衡会自动把5000w的订单优先接受,而且转发到最安全稳定的SERVER。。) 等等,,,很多技术。 还有一点,windows的负载均衡是第3层的,而硬件的通常是2到7层的,可以分配IP,NAT ,添加路由,一直到上层的HTTP,POP3,smtp等7层的东西。。都可以进行管理和过滤。。 还有一点,如果你的SERVER的性能不是很强,最好不要用网络负载平衡,因为默认情况下,机器每秒要进行一次网络广播进行主机推选,5次失败宣告SERVER DOWN 掉,所以网络的负担和CPU的负担都很重。。。。 好了,还有不明白的,给我打电话吧 -------------------- |
|
|
|
1C#
发布于:2004-04-13 16:14
Re:负载均衡器 送给可爱的松柏。。
松柏师哥得看多长时间呀?这么长,精简点。
--------------------
看帖跟帖----是鼓励
看帖回帖----是支持 鼓励+支持=继续 不要以为建起城市就能定居 不要以为播下种子就能丰收 不要以为登上顶峰就是征服 不要以为平静的不懂热情 不要以为渺小的没有力量 不要以为我被封了,就没有人灌水了...... |
|
|
|
2C#
发布于:2004-04-16 01:12
Re:负载均衡器 送给可爱的松柏。。
用QOS能完成吗?我指的是负载均衡 |
|
|
|
4C#
发布于:2004-04-16 23:07
Re:负载均衡器 送给可爱的松柏。。
强烈支持一下,应当多写些这些东西,尤其是自己的观点:) |
|