网络系统中的新技术 |
|
| 2003-11-13 |
| |
自修复技术
计算机网络技术是当前发展速度最快、生命力最强、对人类社会影响最大、新技术新工艺涌现最多和最猛烈的前沿技术,以至于人们对它的依赖程度越来越深,包括企业、政府、学校、科研等越来越离不开网络、越来越受到网络的直接或间接制约,从而又反过来迫使人们对计算机网络系统的可靠性、可用性和整体性能的要求和期望越来越高。
众所周知,作为计算机网络系统的核心设备,服务器功能越来越强大,服务器在计算机网络中的地位也日益重要。而服务器至网络的连接性能同样不可忽视,它与服务器的可靠性和整个网络的可靠性同等重要。在实际应用中,无论是网线断了、集线器或交换机端口坏了、还是网卡坏了或各接口接触不良等现象都会造成网络通信连接的中断。或者在网络系统中,服务器、路由器、交换机、集线器以及各种冗余部件等出现各类大小故障时,都将危及网络系统的稳定和可靠运行,这一点人们是有切肤之痛的。毫不夸张地说,网络运行的机制有待完善、网络运行的管理庇点百出、网络运行的维护还不存章理。因此,为了保证网络系统的正常运行,现代网络系统从硬件和软件两方面正在运用多种高新技术,在此,我们将谈谈这几种新技术。本期先探讨自修复技术。
当用户不能正常使用系统而被迫关机时,所造成的损失对于企业来讲,可能是相当大的。然而在实际应用中,不管人们采用了多么先进的防患措施和安全技术来提高系统的可靠性和可用性,这种非正常关机事件总是无法避免的。面对这种关机现象所带来的巨大损失,随着网络安全技术的发展,无可奈何的人们只得把希望寄托在不停机服务器上。采用自修复技术的自修复服务器就是一种无需人工干预、监视和修理的永远不会关机的服务器系统。
所谓自修复服务器是指它能够预测问题、并能根据问题采取纠错处理和优化系统性能的具有智能化管理功能的服务器。它具有如下基本特征,一是问题预测,即可预测一个事件发生过程中所需要的三种不同行为:监视、检测和分析。监视负责观察一个服务器系统的各个部件的性能是否与期望相符。检测就是当某个事件发生时,系统能够及时发现。分析则是根据事件发生的频率和严重性,来判断是否即将发生错误,然后向系统管理员报警;二是纠错处理,一旦预测到错误事件并报警,系统就要采取合适的纠错处理,以防止关机事件的发生。在有些情况下,系统还能够重新动态分配资源,避开问题的出现区域,从而彻底防止关机事件。而在另一些情况下,系统管理员会接到系统提供的如建议增加磁盘容量或替换发生潜在故障的驱动器和部件等处理建议。三是性能优化,采用软硬件配置,通过平衡各个部件之间的负载以及系统的自我调整,从而提高服务器系统的性能。
自修复服务器目前还处于发展阶段,现在向服务器系统中加入自修复功能还是一个动态积累的过程,随着越来越多的自修复功能的实现,服务器系统将最终实现完全的自修复系统的高可靠性目标。自修复技术是高可用性环境中一个非常重要的特点,适合于许多重要的商业应用。
随着依靠服务器系统的企业数量的增加,其中不仅包括企业内部的使用,还包括对外商业需要的使用。服务器能够连续运转变得比以往更加重要。用户可以在任何地方、任何时间在线访问企业服务器。当然,自修复系统还有待于建立统一的工业标准,使之能在CPU通信的设备管理中提供一个通用的框架,为I/O管理和IA-64位处理器结构等几个正在发展中的新技术创造条件。自修复服务器的发展过程是一个动态发展过程,工作原理要求系统具有向事件预测、纠错处理和性能优化中不断添加新的运行方案和作业能力的完善机制,使之最终达到具有全面的自修复性能。
负载均衡
负载均衡是提高系统性能的一种前沿技术,也是一种广泛应用于服务器群集系统中的新技术。一台IA服务器的处理能力是每秒几万个,无法在一秒钟内处理几十万甚至上百万个请求。但若能将10台这样的服务器组成一个系统,并有办法将所有请求平均分配到所有的服务器,那么这个系统就会拥有每秒处理几十万到几百万个请求的能力。这就是负载均衡的基本思想。目前市场上有多种负载均衡产品,由于其应用的主要技术不同,所反映的特点和性能也就有所不同,根据这些区别,我们可以将它们分为轮询DNS、硬件解决方案、协商式处理和流量分发等负载均衡系统。下面我们就来介绍这些基本系统。
轮询DNS:轮询DNS方案可以说是技术上最简单、应用上方便、结构上最直观的一种负载均衡方案。其基本原理是,在DNS服务器中设定对同一个Internet主机名的多个IP地址的映射,在DNS收到查询主机名的请求时,系统就会循环地将所有对应的IP地址逐个返回。这样,就能够将不同的客户端连接定位到不同的IP主机上,也就能够实现比较简单的负载均衡功能。但这种方案有两个致命的缺点,一是只能实现对基于Internet主机名请求的负载均衡,而不是IP地址,如果是直接基于IP地址的请求则系统无能为力。二是在群集内有节点发生故障的情况下,DNS服务器仍会将这个节点的IP地址返回给查询方,也就仍会不断地有客户请求试图与已出故障的节点建立连接。在这种情况下,即使手工修改DNS服务器的对应设置,将故障节点的IP地址删除,但由于Internet上所有的DNS服务器都有缓存机制,所以仍会有成千上万的客户连接不到群集,除非等到所有DNS缓存都超时为止。
硬件解决方案:该方案主要是指制造商直接制造出带有NAT(网络地址转换)功能的高档路由器或交换机来实现系统负载均衡功能。所谓NAT,就是实现多个私有IP地址对单个公共IP地址的转换。该方案的主要缺点,一是由于采用了特殊的硬件,使得整个系统中存在非工业标准部件,极大地影响系统的扩充、维护和升级。二是价格极其昂贵,与软件的解决方案根本是数量级上的差别。三是只能实现对节点系统一级的状态检查,无法细化到服务器一级的检查。
协商式处理:协商式处理又叫并行过滤。这种方案的原理是客户请求会同时被所有的节点所接收,然后所有节点按照一定的规则协商决定由哪个节点处理这个请求。该方案中比较显著的特点就是整个群集中没有显著的管理节点,所有决定由全体工作节点共同协商作出。这种协商式处理方案的特点是,一、由于各节点间要进行的通信量太大,加重了网络的负担,一般需要增加节点通信的专用网络,这又反过来加大了安装维护的难度和费用;二、由于每个节点都要接收所有的客户请求并进行分析,所以加重了网络驱动层的负担,降低了节点本身的工作效率,同时也使网络驱动层很容易成为节点系统的瓶颈; 三、由于要更改网络驱动层的程序,所以并不是一个通用方案,只能够实现对特殊平台的支持;四、在小量节点的情况下协商的效率还可以接受,一旦节点数量增加,通信和协商将变得异常复杂和低效,整个系统的性能会有非线性的大幅度下降。所以此类方案,一般在理论上只允许最多十几个节点;五、无法实现异地节点群集; 六、由于群集内没有统一的管理者,所以可能出现混乱的异常现象。
流量分发:流量分发的原理是所有的用户请求首先到达群集的管理节点,管理节点可以根据所有服务节点的处理能力和现状来决定这个请求分发给某个服务节点。当某个服务节点由于硬件或软件原因发生故障时,管理节点能够自动检测到并停止向这个服务节点分发流量。这样,既通过将流量分担而增加了整个系统的性能和处理能力,又可以很好地提高系统的可用性。
在流量分发中,通过将管理节点本身做一个群集,可以消除由于管理节点自身的单一性带来的单一故障点。当然,在某些流量分发系统中,由于所有客户流量都要通过管理节点,也很容易使管理节点成为整个系统的传输瓶颈。但现代新系统,如TurboCluster Server,由于可通过直接路由或IP隧道转发机制,成功地解决了这个问题,使得所有对客户响应的流量都由服务节点直接返回给客户端,并不需要再次通过管理节点。
流量分发的具体实现方法有直接路由、IP隧道和网络地址转换三种。先进的TurboCluster Server系统支持效率最高的前两种,由于这种先进的结构和技术,使得Turbo Cluster Server群集内的服务节点数并没有上限,而且对大量节点的协同工作的效率也能够非常好地保证。
[-Page-]
网卡容错
网卡出错冗余
AFT(Adapter Fault Tolerance)技术是一种在服务器和交换机之间建立冗余连接的技术,亦即在服务器上安装两块网卡,一块为主网卡,另一块作为备用网卡,然后用两根网线将两块网卡都连到交换机上。
AFT技术的基本工作过程是,当在Netware或NT服务器上装配两块网卡后,AFT技术就能把这两块网卡当作一个网卡工作组来对待,一块为主网卡,另一块为备用网卡。当主网卡工作时,智能软件通过备用网卡对主网卡及连接状态时刻进行监测,即采用一种发送特殊设计的“试探包”的方法来进行的监测。若连接失效,“试探包”便无法送达主网卡,智能软件发现此情况后,立即将工作(包括MAC网络地址)移交给备用网卡。由于所有配置信息是在瞬间转到备用网卡上的,网络用户不会察觉到有任何变化,同时也不会对服务器操作系统造成任何压力。AFT技术在服务器和网络之间建立的冗余连接可包括网卡、网线、集线器或交换机端口,一条连接用于服务器正常网络通信工作,另一条连接提供备用,为了提高网卡的可管理性,AFT一旦发现连接中有任何失效,便会发出报警信号,因而AFT具有出错恢复保障的高可靠性。
网卡负载平衡
传统增加带宽和扩大服务器吞吐量的方法是在服务器上增加一块网卡,划分两个网段,虽然可减轻一半的通信压力,可缓解堵塞状况,但又会带来一些诸如需另设IP地址、重新规划网络等新问题。而且网段划分还需要增加额外象交换机、路由器这样的硬件设备,同时在两个网段之间平衡流量也是很困难的。
ALB(Adapter Load Balancing)技术是一种简单易行的可让服务器更多更快传输数据的好方法。该技术是通过在多块网卡之间平衡数据流量来增加吞吐量的,因为每增加一块网卡,就能增宽100Mbps的通道。另外,ALB还具有AFT同样的容错功能,一旦其中一条链路失效,其他链路仍可保障网络的连接。当服务器网卡成为网络瓶颈时,ALB技术无须划分网段,网络管理员只需在服务器上安装两块具有ALB功能的网卡,并把它门配置成ALB状态,便可迅速、简便地解决通道瓶颈问题。这种方法无需在客户端作任何设置,也不需要通过路由来实现客户之间的通信。另外,服务器上所有网卡之间的通信量是平衡的。与AFT一样,ALB在网卡驱动程序里带有智能软件,为了配合ALB工作,智能软件动态管理ALB网卡组,连续分析服务器各块网卡上的数据流量。对服务器来说,ALB网卡组中一条通道双向通信,其余的只向外发送。ALB可为网络客户提供同样的服务器响应等级。采用四块网卡的ALB技术,吞吐量可近400Mbps。
快速以太通道
FEC(Fast Ether Channel)是针对Web浏览及Intranet等对吞吐量要求较大的应用而开发的一种增大带宽的新技术,可为重要应用的客户机/服务器网络系统提供高可靠性和高速度。FEC具有AFT和ALB的全部功能。在服务器上,FEC与ALB相似,在几块网卡间可实现容错和负载平衡。而且,与具备FEC特性的交换机连接,服务器可实现多块网卡双向平衡通信。与ALB一样,FEC采用多块网卡同时分担通信量的办法来解决服务器吞吐瓶颈问题,而且,服务器同样也只给FEC网卡组分配一个网络地址,网卡智能软件自动平衡FEC网卡组内每块网卡负载的通信量。FEC网卡组中每块网卡都是工作在全双工快速以太网状态。
FEC是一项将多个全双工快速以太网连接成组,实现高速、容错连接的技术。一台FEC交换机可连接二、三块或四块快速以太服务器网卡,全双工时支持多达800Mbps的带宽。由于FEC交换机内部集成了FEC负载平衡特性,增加通道连接便可获得更高的吞吐量,因此,增大带宽不会造成延迟或降低系统性能。冗余并行数据路径,有助于确保FEC的连接。一旦其中一条失效,智能软件可在客户不知不觉的情况下,自动将原失效通道上的信息转到其他的通道上去。FEC以全双工方式工作,可将带宽扩展到200Mbps~800Mbps,解决了许多公司目前100Mbps不够用的问题。FEC技术同时也适于今后的发展需要,因为它是一项基于标准的技术(符合IEEE802.3),完全可实现向1000Mbps的无缝连接。
并行处理
对于服务器而言(不管是PC服务器,还是UNIX服务器),单纯地提高单个处理器的运算能力和处理能力正在变得越来越难,虽然许多制造商从材料、工艺和设计等方面进行了不懈的努力,近期内仍然使得CPU保持着高速的增长势态,但高频之下的高功耗所引起的电池容量问题和散热问题等负面效应,以及这些负面效应对整机系统产生的电磁兼容性问题,又反过来将CPU运算能力的提升推到了暮年。显然,提高单个处理器速度和性能已是强弩之末,而研发多个CPU的并行处理技术,才是真正提高现代服务器处理能力和运算速度的有效途径。这也正是多处理器服务器不仅是UNIX服务器专利,而且也已经在PC服务器中普遍采用的原因。目前,业界比较关注的并行处理技术主要有SMP技术、MPP技术、COMA技术、UNMA技术和群集技术等。
SMP技术: SMP(Symmetrical MultiProcessing: 对称多处理)技术是相对非对称多处理技术而言的、应用十分广泛的并行技术。在这种架构中, 多个处理器运行操作系统的单一复本,并共享内存和一台计算机的其他资源。所有的处理器都可以平等地访问内存、I/O和外部中断。
在非对称多处理系统中,任务和资源由不同处理器进行管理,有的CPU只处理I/O、有的CPU只处理操作系统的提交任务,显然非对称多处理系统是不能实现负载均衡的。在对称多处理系统中,系统资源被系统中所有CPU共享,工作负载能够均匀地分配到所有可用处理器之上。
目前,大多数SMP系统的CPU是通过共享系统总线来存取数据,实现对称多处理的。如Intel的Xeon就是基于Intel的Multiproceesor Specification规范和P6总线仲裁算法开发出来的,由于各处理器使用2位二进制标识,使得每条处理器总线只能连接4颗CPU。又如某些RISC服务器厂商使用Crossbar或Switch方式连接多个CPU,虽然性能和可扩展性优于Intel架构,但SMP的扩展性仍有限。
在SMP系统中增加更多处理器的难点是系统不得不消耗资源来支持处理器抢占内存,以及内存同步两个主要问题。抢占内存是指当多个处理器共同访问内存中的数据时,它们并不能同时去读写数据,虽然一个CPU正读一段数据时,其他CPU可以读这段数据,但当一个CPU正在修改某段数据时,该CPU将会锁定这段数据,其他CPU要操作这段数据就必须等待。
显然,CPU越多,这样的等待问题就越严重,系统性能不仅无法提升,甚至下降。为了尽可能地增加更多的CPU,现在的SMP系统基本上都采用增大服务器Cache容量的方法来减少抢占内存问题,因为Cache是CPU的“本地内存”,它与CPU之间的数据交换速度远远高于内存总线速度,又由于Cache支持不共享,这样就不会出现多个CPU抢占同一段内存资源的问题了,许多数据操作就可以在CPU内置的Cache或CPU外置的Cache中顺利完成。
然而,Cache的作用虽然解决了SMP系统中的抢占内存问题,但又引起了另一个较难解决的所谓“内存同步”问题。在SMP系统中,各CPU通过Cache访问内存数据时,要求系统必须经常保持内存中的数据与Cache中的数据一致,若Cache的内容更新了,内存中的内容也应该相应更新,否则就会影响系统数据的一致性。由于每次更新都需要占用CPU,还要锁定内存中被更新的字段,而且更新频率过高又必然影响系统性能,更新间隔过长也有可能导致因交叉读写而引起数据错误,因此,SMP的更新算法十分重要。目前的SMP系统多采用侦听算法来保证CPU Cache中的数据与内存保持一致。Cache越大,抢占内存再现的概率就越小,同时由于Cache的数据传输速度高,Cache的增大还提高了CPU的运算效率,但系统保持内存同步的难度也很大。
要想运行SMP,必须对操作系统、主板和处理器的组合进行配置。在软件中,多种UNIX、Linux 2.0以上版本、Mac OS 9、OS/2 Warp Server、 Windows NT 和Windows 2000都支持SMP。MS-DOS、Windows 95或Windows 98不支持SMP。可以利用SMP的线程式应用包括Microsoft公司的BackOffice套件、Lotus Notes和来自Oracle 公司、Sybase公司和Informix公司的SQL数据库管理器。
在硬件方面,SMP可以在UltraSPARC、SPARCserver、Alpha以及PowerPC架构上实现,也可以利用包括486以上所有Intel芯片来实现。
MPP技术: MPP(Massively Parallel Processing:大块并行处理)技术实际上是一种无共享模式的并行处理结构。由于在MPP系统中不需要共享内存,不需要共享硬盘和共享其他I/O设备,因而也就不需要消耗系统资源去解决抢占内存和内存同步带来的问题。因此在CPU数量逐个增长的过程中,MPP系统的性能要明显优于SMP系统。在MPP系统中,不同CPU拥有自己独立的内存、内存控制器和硬盘。只需通过编写专用操作系统和应用软件,就可以把一项庞大的任务分成多个子系统,使得每个CPU处理其中的、在CPU的本地硬盘中存有的、处理该子任务所需要的全部数据。系统可以采用乱序法把任务分发下去,也许有的CPU需要等待其他CPU的子任务完成后才能启动自己的任务处理,但总体来说,运算的时间会大大缩短。
MPP系统的性能增长能力和可扩展能力虽然优于SMP,但它仍然存在致命弱点,即每个处理器只能使用与其相对的存储体分区中的数据,互不干扰也互不支援。而对于商业数据处理,大多数应用需要多个用户共同访问同一个数据库或数据空间中的数据,甚至经常会出现读、写同一段数据的情况。为了保证MPP系统性能的线性增长,必须把数据库中的全部数据放到CPU各自的本地硬盘中,这样CPU在处理这些数据时,就会把它们调入相互独立的内存中进行操作,当然这种方式是无法适用于OLTP和WWW这样的应用的。如果想要保证不同用户访问相同数据的一致性,数据库管理系统DBMS或操作系统就必须具备全部数据的整合和同步能力,也许将来的操作系统和数据库厂商能够攻克这一难题,但目前几乎还没有商业运算系统采用MPP并行处理技术。
COMA技术:COMA(Cache Only Memory Architecture)技术是一种屏蔽了内存同步问题的并行处理技术。在COMA技术中,系统将全部物理内存看成一个Cache,并自动将数据转移到处理器附近供其使用,以降低操作系统和应用软件的负担,同时缩短数据提取的延迟时间。在COMA系统中,CPU并不需要在芯片内集成或外置Cache,但必须尽可能地“预测”自己下一个时钟周期里需要调用的数据,内存控制器会协调数据在不同CPU之间的分配。
目前,COMA技术仍停留在实验室阶段,因为要开发COMA系统,就必须修改现有的内存控制器,在其中增加新的逻辑运算单元,并使用特殊协议,甚至还要修改CPU的指令集,然后才可能将数据从内存的高位地址按照COMA技术规定的算法向低位地址迁移或相反。不仅如此,COMA技术实际上也没有彻底解决抢占内存的问题。因为只要有一个CPU在使用某个内存中的字段,系统就不允许其他的CPU访问该字段,因此这一技术并没有得到推广。
NUMA技术:NUMA(Non-Uniform Memory Access)技术是一种仅在Intel架构体系中完成多处理器并行计算的技术。NUMA厂商之所以选择Intel CPU,不仅是为了降低成本,同时也是为了提高系统的兼容性。因为RISC处理器除了在价格上要远远高于Intel处理以外,对操作系统的兼容性也较差。虽然RISC精简指令集处理器在硬件中的指令条目减少了,但却不得不在操作系统中予以补尝,可是RISC服务器厂商往往又不公开或在很小程度上公开CPU指令代码,因此不同的硬件系统就不得不需要厂商自己来开发专用支持操作系统。这样就削弱了RISC服务器对不同操作系统的兼容性。NUMA系统利用了SMP的成熟技术,在每块CPU主板上至少可以布置4颗Xeon CPU,同时每块主板还拥有一块桥接板,桥接板上的内存可以消除不同CPU主板之间的内存同步问题。
NUMA系统通常采用SCI(Scalable Coherent Interface)协议来连接桥接板和CPU主板的SMP总线,系统使用侦听算法将其他CPU主板内存中的数据依次调入桥接板的内存中,供本地CPU使用,实现同一个任务的并行处理。若将CPU主板上的物理内存看作3级Cache,则桥接板中的内存就相当于4级Cache。在NUMA系统中,所有CPU主板上的I/O控制器都经过一个Switch与I/O设备相连,所有的CPU共享这些I/O设备。
NUMA技术的优势在于系统具有较好的可扩展性,缺点则是价格较高,与RISC服务器一样需要有专门的操作系统支持。NUMA系统并没有从根本上解决SMP系统抢占内存和内存同步问题,而只是通过SCI协议减少了上述问题的发生,强化了SMP系统可扩展性而已。
|
|
| |
|
发表评论
推荐文章
关闭窗口
|
|
|
|