Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11702163
  • 博文数量: 8065
  • 博客积分: 10002
  • 博客等级: 中将
  • 技术积分: 96708
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-16 17:06
文章分类

全部博文(8065)

文章存档

2008年(8065)

分类: 服务器与存储

2008-06-23 15:41:26

一、前言     Internet技术的快速革新极大的改进了应用的部署方法。成千上万个Internet 网站从原来一成不变的""书本件""信息应用迅速成为具有高效处理能力的互动应用。许多大企业及Internet 服务和内容供给商使用新的互连网技术组建大型的企业内部网和服务性网站。在企业与企业,企业与合作伙伴之间建立安全的供给和销售链流,提高了双方的信息交流能力。     随着Internet上应用的不断成熟和发展,可伸缩性和可用性变得越来越重要。 可用性是指一个应用系统可以执行任务的时间总和,一般是以系统正常运行时间的百分比来计算。可伸缩性是指一个企业应用系统增加工作量时,保持可以接受的性能水平的能力。据IDC报告,对一个WEB用户来说,10秒的响应时间是一个极限,并且用户不能忍受低劣的网站质量。那么,对于一个企业万维网的决策者来说,应付不可猜测的临时通信堵塞的能力和系统的长远扩展能力,即可伸缩性。 7X24小时的连续运转能力,即高可用性,以及系统的安全性和可治理性,成为共同寻求的目标。     要部署和完成一个Web Hosting或出版的环境并不是一件轻易的事情,有许多的问题需要考虑, 例如软件,硬件,容量,配置,部署,安装,操作环境,费用,发展计划等等。然而,不管你的Web Hosting环境的大小,组成元素和概念都大同小异。Web服务器可以分为三类:Intranet(企业内部部门和发展)WEB服务器,staging Web服务器,Web Hosting(prodUCtion) 服务器。另外,还有防火墙服务器,内容(Content)生成和治理服务器等。如按功能区域分,可分为三个区。第一个区是Intranet区,整个网站内容的设计,创作和测试都在这个内部区域完成,并且为其它区域提供数据资源和服务。第二个区是Production(产品)区,这是一个公共区域,最终的对外发布内容就放在这里。第三个区是Staging区,在非正式场合我们称它为DMZ(非军事区),它位于其他二个区之间,提供了一个额外的安全隔离区,并且作为一个中间区,可以提供一个数据分段移动和修改测试平台,为Production区交付最终的内容。 康柏公司有丰富的Internet经验,通过访问大量的用户,Internet服务供给商和WEB结构顾问机构,分析,综合并测试了客户的最好方案, 提出了DISA (Distributed Internet Server Array,分布式因特网服务器阵列)结构。此结构是基于传统的高可用性和高可伸缩性原则和技术, 使用了新的适合于Internet 应用的方法,并增加了内涵。 二、DISA的组件和结构
康柏分布式因特网服务器阵列解决方案(图一)

    上图就是DISA体系结构的核心组件图。DISA体系结构由一个核心应用堆栈和两个全局组件组成。核心应用堆栈包括四个元素: 客户层、流量负载均衡层、应用服务器层和数据资源层。安全保障体系和综合治理机制作为两个全局组件贯穿整个核心应用堆栈。     基于上述之DISA的体系结构,我们可以构建出实体的逻辑简图(参看下图)。 客户端的请求通过INTERNET发送至网站,由智能的流量负载均衡设备自动的把这些请求合理分发到不同的应用服务器,因为这些应用服务器是负载均衡的,所以增加应用服务器的数量,系统的性能就会线性增加。在DISA结构中,服务器的WEB内容并不是在各个服务器的本地盘之间进行复制,而是把相关的内容和资源放在一个集中的,高可用的后台文件服务器组中,这样做的另一个好处是能够轻易处理快速的WEB内容变化。那么,后台的系统,就是所谓数据资源层,由高性能和高可用的服务器组成,除了为应用服务器提供宿主文件服务外,还提供服务或其他应用服务,例如ERP的应用,SAP或Sibel等。     实现DISA的每一层有许多方法,包括软件和硬件。本文偏重于在微软平台上的应用和部署。
康柏分布式因特网服务器阵列解决方案(图二)
三、DISA核心应用堆栈     客户层     客户层是应用数据的消耗层。大多数通用客户层都是WEB浏览器(例如Microsoft Internet Explorer)。然而,DISA体系结构将会应用于其它拥有非浏览器客户机的Internet应用,诸如FTP、Internet电子邮件、DNS等等。有时,客户层可以是应用从DISA系统提取数据。为了简单起见,我们将假设本文所有的客户层都是浏览器。     在DISA系统中,客户层向一个主机名称(例如,)发出请求,该主机名称代表了使用DISA体系结构所部署的应用。最终用户并不知道系统如何运作来满足请求的过程,以及是否需要非凡的客户机软件或配置。     流量负载均衡层     互联网的快速增长已经使网络服务器面对的访问数量大大增加,并且更加不可预知。如今,服务器必须具备提供大量并发访问服务的能力,其处理能力和I/O能力已经成为提供服务的瓶颈。假如客户的增多导致通信量超出了服务器能承受的范围,那么其结果必然是宕机。这时候,你当然必须升级你的服务器,但是,单台服务器有限的性能可能解决不了这个问题,一台普通服务器的处理能力只能达到每秒几万个到几十万个请求,无法在一秒钟内处理上百万个甚至更多的请求,同时你要考虑投资保护的问题。但若能将多台这样的服务器组成一个系统,并通过相应的技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力,而你的原始投资也得到了保护。这就是负载均衡的基本设计思想。
    负载均衡层以虚拟主机名称的形式来表示单个系统映像,并跨越多个应用服务器分配客户机请求。这个功能为应用服务器阵列提供了卓越的可用性、可伸缩性和治理性。可运用各种方式来进行负载均衡,包括RoundRobinDNS和各种智能负载均衡技术。 RRDNS是一种通过配置域名(DNS)服务器来实现负载均衡的方法。因此,非凡主机名称所采用的DNS查找方法可跨越IP地址池,而不是单个地址循环分配。每一个客户机连续访问一个站点的时候,均定向为不同的应用服务器,从而达到了最起码的负载均衡效果。RRDNS是一种直接而便宜的方法,但是它有许多缺点。其中一个主要的弱点是DNS服务器没有一个反馈的机制来接收应用服务器的当前状况信息。假如一个服务器过载或宕机,DNS服务器不会发现,会继续把客户请求发送过去,直到人工干预,排除故障为止。另一个弱点是DNS服务器只能简单的平均分配客户请求,假如有不同处理能力的应用服务器的话,很快会使性能较差的机器过载。     为了弥补RRDNS的不足之处,很多厂商已经开发了智能负载均衡产品。此类产品包括Cisco负载均衡器(LocalDirector)、F5Labs BIG/ip、RND网络Web服务器导向器、HydrawebHydra系列、Resonate Central Dispatch、Bright Tiger Cluster Cats、HolontechHyperflow和AlteonAceSwitch。     目前的负载均衡技术具有几种形式,包括交换机(Holontech,Alteon,Arrowpoint)、承裁网络“设备”(诸如Cisco,F5,HydraWEB)及安装于通用服务器上的软件,诸如Resonate Dispatch、BrightTiger、Turbo Cluster , WLBS。     WLBS (Windows NT Load Balancing Service)是微软公司提供的实现负载均衡的免费软件(可以从Microsoft网站上下载,需要Enterprise Edition License, 可以在标准版的NT上运行)。WLBS通过使用二台或多台的服务器共同工作所组成的集群,提供高可用的和高可扩展的Internet/Intranet服务。客户端并不能区分他的请求是在一台服务器上还是运行在WLBS集群上。然而,运行在WLBS集群上与在一台服务器上有着很大的区别,首先WLBS集群上的某台服务器宕机,集群会自动调整集群的组成成员,客户服务不会中断,另外,假如使用基于端口的负载均衡,客户端的响应时间会缩短。     由于WLBS独特的,真正意义上的分布式结构,它是一个理想的构建高可用的和高可扩展的Internet软件,并且能轻松应付大型网站上繁重的任务。已经过WLBS应用测试的软件有:Web 服务(例如Microsoft IIS) 、基于微软服务器的 VPN 解决方案、媒体流(例如Microsoft Windows NT Server NetShow Services) 、代理服务(例如Microsoft Proxy Server)。因为WLBS是基于IP的负载均衡的软件,所以除了上述应用外,其他应用也可以从中获得好处。     应用服务器层     Internet应用的工作主要由应用服务器层来完成。一个简单的Internet应用范例是基于Web的服务器,其中绝大多数是静态页面服务,包括少量的CGI脚本以处理HTML的输入表格(例如,在邮件列表中加入注册用户)。     更加完备的Internet应用使用先进的CGI脚本、Allaire ColdFusion、Microsoft Active Server Page()或JavaServlet,它们运行于应用服务器之上,并从位于中心服务器的数据库中检索数据资源。某些应用还支持从早期系统或企业应用中检索信息的方式,诸如SAP、BAAN和Siebel。     更加复杂的应用可以使用完备的应用服务器软件包,该软件包可将万维网服务和应用逻辑划分为分离的物理服务器。这种软件包包括HAHTSoftware的HAHTsite、NetDynamics和Netscape Application Server(前身为KivaEnterpriseServer)。这些软件包一般包括运行ISAPI或NSAPI程序的Web服务器,该程序与专用应用逻辑服务器池进行通信。应用逻辑服务器检索并处理来自几个不同数据库、生产处理系统和企业应用的数据,然后向Web服务器返回格式化的结果。     这些高端系统一般具有内置特性,从而实现应用逻辑服务器的高可用性及可伸缩性。然而,这些系统为了满足Web服务器层自身的可用性和可伸缩性要求,仍然需要负载均衡。     WEB服务器可选择的软件很多,其中Microsoft IIS是一个高性能,轻易设置和治理的免费软件。另外,还有Microsoft Site Server 和Commerce Server2000, 提供强大的分析,认知和出版工具能让你的用户有一个个性化的快速查找、共享信息的能力和在线商务交易空间。     站点经常使用Microsoft Active Server Pages(ASP)来保存状态信息。因为WLBS不能处理应用服务器集群之间的状态同步,当一个应用服务器出问题时,客户端的ASP会话必须保持,以便由另一个节点接管,而客户会话将继续进行。目前有三种可能的方案。第一种,封装所有的状态信息,把它放在客户端的cookie(小甜饼)里,客户机保存这个cookie,并在后续的服务器请求中使用。在这种情况下,客户端发送的每一个请求都带有所需的上下文信息。这种方法只是在状态信息较少的情况下才可使用。第二种,在服务器上缓存状态信息,同时使用后台或中间层应用服务器作为状态信息的授权存储档案库。在这种情况下,当客户机连接到服务器时,因为在内存中有状态信息,所以处理请求非常快,当然必须有一个机制来刷新后台的状态信息的存储档案库。第三种,可以用第三方的数据同步方案来实现。     数据资源层     数据资源层也称为内容(Content)层,是一个中心存储库,它存储应用数据或提供与其它控制应用数据资源系统的连接。众多Internet应用都包括各种各样的数据资源类型,它们可以是网络文件系统、数据库或其它应用。
    人们普遍认为基于文件系统的资源(诸如HTML、图像等)必须存储在应用服务器的本地驱动器上。使用这种方式的问题在于要同步保持复制数据是一项艰难的任务,非凡是在数据资源需要不断变更的时候,而这也正是大多数成功的万维网站点所面对的问题。虽然已经推出了第三方文件复制解决方案,但是大多数可使用的解决方案通常是针对网络文件服务器上基于中心文件的资源,而这些网络文件服务器必须能够提供大量的I/O性能,并且是高可用的。NetConstruct是一家位于洛杉矶的网络体系结构咨询公司,它发现数据资源的集中化可显著降低部署和治理大型、多服务器系统的复杂性。 大多数Web服务器能够缓存内存中的HTML、图像和其它数据资源,从而避免发生为每一个URL请求接入本地或网络驱动器所固有的延迟。在DISA系统中,Web服务器从网络文件共享,而不是本地驱动器填充它们的高速缓存。     对于任何集中式的应用资源,数据资源必须高度可用,以使它们不会发生单点故障。像微软NT Server Enterprise Edition(又称为“Wolfpack”)和Windows2000 AdvanceServer, Windows 2000 DataCenter Server这些的集群化,为文件系统和数据库可用性提供了相对简单且经济有效的方法。微软的SQL2000数据库和运行在微软平台上的 OPS都是高性能和高可靠的数据库。另外,康柏的服务器恢复选件,经验证是提供服务器故障恢复的有效方法。     除了集群之外,还有很多精心设计的方法可使数据库系统高可用和可伸缩。用户可以使用事物处理服务器技术(诸如应用层和数据资源层之间的BEA Systems Tuxedo和Microsoft Transaction Server)来改善数据库的事物处理性能。在某些情况下还可以运用分布式数据库、并行数据库、消息队列和其它技术。     安全保障体系     如同可用性和伸缩性一样,在DISA系统上部署的要害任务应用一般需要可靠的安全途径。确保隐私、防止否认服务的侵袭、保护数据都是电子商务或连接Internet的Extranet应用所明确要求的条件。其中许多安全要求也适用于Intranet应用。
康柏分布式因特网服务器阵列解决方案(图三)

如上图,是安全技术在DISA核心应用层的各层上及各层间的应用范例。如图所示,SSL加密、防火墙、虚拟专用网络(VPN)和OS加固技术可应用于各个级别。有些智能负载均衡器可以为DISA系统中的组件提供基本安全功能。对于基于路由器的负载均衡器,如F5LabsBIG/ip,治理员可以设定打开所需服务器的TCP/IP端口。另外,BIG/ip能够保护应用服务器,防止它受各种常见拒绝服务的侵袭。     安全技术实施的方式可以极大地影响DISA系统的可伸缩性和可用性。例如,放置在应用服务器和数据资源之间的防火墙会因安全设置而成为性能瓶颈。除非使用适当的故障恢复选项配置(例如冗余FireWall),否则防火墙本身就是一个潜在的单点故障。另外,不是所有的防火墙都支持Oracle的SQL*NET之类的专用协议,也就是说,应用服务器可能无法访问隐藏在某些防火墙之后的Oracle数据库。 四、综合治理机制     DISA体系结构中的另一个共用组件是治理。DISA系统涉及许多不同的设备,它们协同工作以提供全面的应用。这要求运用有效的途径来治理系统,以便保证所有系统在线,并且以最佳的性能状态运行。参看下表。
康柏分布式因特网服务器阵列解决方案(图四)

    DISA中的其它技术及用具服务器     上文提到的负载均衡技术的精髓在于数据处理的智能分配,它不能对这些数据本身作分类处理。那么,我们是否可以把这些数据本身作分类处理,以便由专用的用具服务器去处理, 从而从另一个角度来减轻主服务器的负担 呢? 所以,我们需要引入一些其它技术:缓存技术,加速技术,SSL加速技术等。见下图。康柏有TaskSmart C 系列Cache用具服务器,TaskSmart N 系列NAS(Network Attached Server)用具服务器,并与INTEL合作推出SSL和XML加速用具服务器,VPN用具服务器。
康柏分布式因特网服务器阵列解决方案(图五)
点击查看大图
五、DISA设计要领及优势     DISA设计要领     除了以上讨论的各组件之外,还有一些完成DISA体系结构定义所需遵循的重要原则。     (一)使用多个应用服务器     当与智能负载均衡技术结合使用时,多个应用服务器比一个具有大量处理器和内存的服务器具有更高的可伸缩性和可用性。当可用性至关重要时,康柏建议至少使用三台服务器,以便在一台服务器进行脱机维护的时候,保证有一对冗余服务器随时在线。根据特定应用的特性,应用服务器可具有一个或多个处理器。通过使用适当的负载均衡技术,可以将具有不同处理能力、I/O特性,甚至不同操作系统的服务器结合在一个应用服务器阵列中。     (二)集中数据资源,避免在不同服务器复制数据资源     假如运用了适当的故障恢复技术,集中式的数据资源服务器就能够简化快速治理更改数据资源的任务。集中应用资源也能够监控容量扩展和故障恢复。为了尽量减少停机时间,保持良好的性能状态,数据资源服务器应配置多个处理器、大量RAM和冗余组件(NIC,电源和风扇)。集群技术可以极大地提高集中化资源的可用性。
    (三)对每个潜在单点故障使用冗余技术     故障恢复配置可用于负载均衡器、防火墙和网络设备。智能负载均衡技术为冗余应用服务器提供故障恢复功能。集群数据库和网络存储确保了数据资源的可用性。经复位和不间断电源(UPS)进行冗余网络连接是可行的。     (四)构建应用以保证用户状态信息不保持在单个应用服务器上     在应用服务器上保持用户状态信息的应用,某些负载均衡算法可能不起作用。有些负载均衡产品通过基于单个用户治理负载确保每个用户使用整个会话的相同应用,避免了此类问题的发生。     尽管这些方法可有效保证某些应用的正常工作,但在应用服务器出现故障时,仍有丢失事物处理的可能。假如用户状态信息,如在线购物筐、信用卡信息、个人页面设置等,只存储在单个应用服务器的内存中,那么一旦服务器出现故障就会造成丢失事物处理。为减小这种风险,应用设计应使用户状态信息以独立于特定的应用服务器。将状态信息保存在客户机Cookie、数据库表和/或URL上,可以达到这个目的。     假如应用能够遵循这些原则设计,最终用户通常只需单击浏览器的重新加载按钮即可恢复从应用服务器的故障。负载均衡器将会把重新加载的请求转移到正常运行的应用服务器上,该服务器能够基于URL本身、Cookie或数据库表中的信息重新创立用户状态。     (五)利用工业标准的平台和技术     尽管DISA体系结构可使用任何平台进行实施,但是工业标准的平台有助于DISA系统充分发挥作用。DISA体系结构答应企业利用工业标准的所有性能价格比优势,来提供高伸缩、高可用的Internet应用。     DISA的优势     DISA体系结构的优势体现在可伸缩性、可用性、价值和兼容性等方面。     (一)线性可伸缩性
DISA体系结构答应治理员快速、轻松地添加应用容量以处理不断增加的负载。小型DISA系统可以从两台应用服务器开始,然后随着负载的增加扩展为20或30台应用服务器。康柏测试说明向DISA系统添加应用服务器能够提供线性可伸缩性。特定DISA系统的可伸缩性高低取决于瓶颈的位置,并且因选择特定产品和所述应用的性能特征而有所不同。但是,DISA系统能够处理非常广泛的负载。在多数情况下,可利用增加选件解决瓶颈问题,而无需重新设计系统或更换设备。     (二)高可用性     DISA体系结构的另一个优势在于它的高可用性。DISA系统在每一层上都具有完全冗余功能,从而确保无单点故障。完备的DISA系统无需系统脱机即可进行不断的更新和其它计划内的系统维护工作。另外,DISA系统还能够轻松应对由于硬件或软件特性而带来的偶然、计划外维护工作。     (三)高性能价格比     DISA体系结构答应Internet应用设计者充分利用工业标准平台带来的所有性能价格比优势,而不必折衷可伸缩性和可用性。DISA体系结构采用现成、工业标准的平台和产品,它们没有依靠非凡厂商特定的技术。在同等价格水平上,完备的DISA系统能够比专用产品提供更高的可伸缩性和可用性。
阅读(902) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~