
| 出版日期:2004-08-30 总期号:1343 本年期号:64 |
|
共创NC的设计与实现
北京共创开源软件股份有限公司 董孝峰 网格作为分布式计算资源,已经被广泛地接受。本文分析了目前几种流行的网络计算机系统以及北京共创开源软件有限公司开发的共创NC系统。为了降低单节点运算压力,提出应用网格计算技术改善NC的性能。把单点性能依赖转换为网络性能依赖,有效地提高了NC系统的性能和网络资源利用率。 经过几年的发展,NC作为一种安全、易于管理维护和低总体拥有成本的计算体系结构已经取得了长足的进步。从最初只以Java应用为目标,到后来的WBT(Windows Base Terminal)架构,再到现在基于RDP协议的Linux/Unix、Windows混合结构,NC的工作模式主要有三种:B/S模式、终端模式、本地模式。 B/S(Browser/Server)模式 在NC上运行浏览器与服务器上的应用软件协同工作,处理能力由服务器和NC分担。目前愈来愈多的应用系统都采用浏览器作为标准界面,将来的Web服务也会是这样。在这种模式下,系统性能主要取决于网络和服务器,对客户机的处理能力要求不高,采用NC与PC作为客户机的使用效果没有多大差别。 终端模式 应用程序运行在服务器上,NC只作为一个终端使用。可作为Windows的终端即WBT,也可作为Linux或UNIX的终端。其中以WBT应用较多,它可解决与Windows应用软件的兼容问题,这时在Windows服务器上运行Windows应用程序,在NC上运行一个“RDP客户程序”,一般情况下,其使用效果和应用程序在本地运行相似,普通的服务器可以支持数十个NC同时工作,但对于要求处理能力很高的软件,服务器负荷比较重,效果较差。 本地模式 Linux应用程序可以通过远程加载到NC本地运行,其性能决定于NC和网络。因采用Linux的应用软件成本低,而且除了加载和读写文件以外,不访问服务器,服务器和网络的负荷很小,打印可由网络或本地支持。随着NC本地处理能力的提高,本地运行的Linux应用软件的增加,NC将逐渐接近于Linux PC的功能。 国内外各大公司纷纷致力于使用低性能的终端和通过网络资源提高总体利用率来达到降低总体拥有成本的目的。目前,国内像神州数码、长城灵易、北大众志等公司都推出了自主知识产权的NC系统。我们也设计了自己的NC系统。 设计思路 问题一:分析以上三种模式的网络计算机有一个共同的特点,就是对网络具有依赖性。网络的可靠性、稳定性、通信能力将直接影响到NC的可用性和性能,因此提高网络的可靠性和稳定性成为一个课题。 问题二:数据显示,一个部门即使最忙的一天仍然有1/3的机器是空闲的。通常网络资源中70%~80%的资源处于空闲状态。 解决第一个问题可以从提高网络硬件的可靠性入手,也可以利用软件手段达到目的;第二个问题说明办公网络存在很大的资源浪费,存在巨大的可利用空间。 表1、表2给出了当前主要的SCSI和IDE工业标准。由于实际应用中的情况复杂,不可能达到这个理论值。 表4给出了目前两款大容量硬盘的实测速度。老款硬盘还要低得多。比如星钻硬盘5400转(DMA100)持续传输率在24MB/s,使用BUFFER READ/w也无法超过70MB/s。 硬盘的传输速度是计算机系统性能的主要瓶颈。所以,解决硬盘I/O瓶颈从来就是各硬件厂商竞相追逐的目标。然而无论硬盘I/O速度提高的多少总不能满足计算机系统对存储的要求。SAN、NAS在很大程度上满足了一部分客户的要求,解决了数据安全备份和共享问题,但是并没有从根本上解决硬盘的I/O问题。我们来看一下共享存储器的结构示意图。 如图1所示,数据存储在共享存储器上,应用服务器通过网络访问共享存储器。共享存储器的I/O带宽是所有应用服务器所能达到的访问带宽的上限。典型的例子是NFS文件系统提供的访问方式;由NFS Server提供共享文件服务,多个NFS Client共享访问NFS Server提供的共享文件。NFS Server服务器的网络带宽就是所有NFS Client访问极限带宽,当NFS Client的数量不大时,NFS 文件系统的性能比较不错,但是随着NFS Client的数量增加,系统的性能会急剧下降。这也许是共享存储器天生的瑕疵。 因此,从存储器本身入手大幅度提供I/O带宽和相应速度已经没有多少空间。但是,随着近几年网络技术的发展我们又看到了另一个曙光。 如表3所示,当前,千兆以太网已经是司空见惯,通过一块网卡就可以轻松达到百兆以上的访问带宽。使用Myrinet或者Qnet接口卡则可以达到GBytes/s的带宽,超过了任何SCSI总线或者IDE总线的数据通讯能力。再来看下面一组数据,这是对一个小规模企业网络资源的数据统计情况。表5给出一个具有100台PC的办公网络的资源状况(PC配置为:512MB内存,80GB硬盘,50%资源可用的情况)。 实际上,统计数据表明,网络中有80%的资源处于闲置状态。统计学上可用资源占到系统总资源的70%~80%,70%以上的CPU处理能力、内存、硬盘资源是统计学可用的,并且表5中数据表明网络响应的速度是硬盘所无法比拟的,特别是在小文件访问的时候。磁盘文件系统的磁头寻道定位是访问延迟的主要因素,而在网络文件访问中则不存在这个问题。 基于以上考虑,我们在XFS的基础上设计了Cache Server 和 Cache Net. Cache Net的基本原理如图2所示。 Cache Net由以太文件服务器、数台Cache服务器组成。服务器之间通过高速网络互联。每一台服务器上闲置的资源作为整个网络的统计可用资源的一部分,整个网络闲置资源的总和就是该Cache 网络的统计可用资源。Cache 网络中的每一个服务器可以使用整个网络中的全部统计可用资源。数据被Cache在整个网络上,每个服务器可以同时访问所有的Cache服务器,所能达到的最高I/O带宽取决于本网络所能提供的带宽,而不像共享存储器中那样,由存储器的I/O带宽决定整个系统的I/O带宽。 有数据表明,网络存储可以提高两个数量级的性能,PERSEAS(一个不同平台的存储器事务处理系统)在两台Pentium 133机器上实现评测,PC的内存为96MB。运行WinNT 4.0,通过SCI网络接口相连。在RVM系统上,用TPC-B测试每秒钟仅能处理100个事务,而在PERSEAS上却能每秒钟处理2.3万个事务。 使用网络存储系统解决NC的存储问题和事务处理问题。网络中空闲主机作为CPU供应者或者数据供应者。这样,NC就有了网格的部分特征。对单个CPU计算压力分配到整个网络资源上,完成由单主机的性能依赖到网络性能依赖的转化,提高网络资源的利用率和处理能力。 系统结构 共创开源公司开发的共创NC系统采用交换式以太网络构建骨干网,普通PC或者PC Server作为服务器。工作模式采用本地模式。交换式以太网保证网络通讯流畅,NC之间、服务器之间、NC与服务器之间能够互相高速访问。Cache Server不必采用单独的或者专用的Server。工作状态下供应CPU和内存资源的服务器就是Cache Server。一个典型的共创NC系统Cache Net网络结构如图3所示。 在该网络结构中,文件保存在文件服务器上或者Root服务器上。用户第一次访问该文件时被读取到网络Cache中,以后网络上各节点访问该文件都要到网络Cache中读取该文件,并在本地重新Cache该文件或者文件的一部分。通过将服务器的功能,如保持Cache的一致性、定位数据和处理磁盘请求分布在各个客户上来提供对文件系统数据的低延迟、高带宽的访问。它将客户端的所有内存空间看做一个大的Cache,这样就减少了客户端的数据缓存,利用了闲置机器的内存。这种合作型的缓存可以通过减少到达磁盘的请求量来降低读延迟。 Cache Server系统有能力预测其他文件系统薄弱环节,同时提供了在不妨碍性能的情况下增强可靠性和快速的事故恢复。 系统可以很好地满足I/O请求的大小和并发I/O请求的数量。 共创开源公司目前实现了Server 群范围内的Cache Net。即能够保证Root Server与其他Server 的闲置资源作为Cache Net的一部分,提高所有客户终端对服务器访问的速度,均衡服务器范围内的负载。实现如图3所示的整个网络范围内的Cache Net还有许多工作要做。 目前共创NC系统的结构如下图4,所示有四部分组成:终端机,采用ARCA II NC终端;网络系统采用交换式以太网;服务器群,采用高端PC或者PC Server根据客户的需求而定;管理节点采用PC。 针对不同的应用,如窗口行业、教育行业、服务行业、餐饮行业,在图4所示系统的基础上开发不同的应用方案,以满足用户不同的要求。 基本策略 Cache Net的核心功能是Server Cache,提高数据访问能力,Server 之间的写作能力是系统性能的关键,为了提高Cache Server节点的协作能力,系统从三个方面实现Cache合作: 所有Cache Server节点缓存中的内容能够被网络上任一节点访问; 最后缓存的文件块在缓存中保存尽可能长的时间; 在缓存中尽可能保存最常用的块,硬盘只用来保存历史的数据。 在系统中,每个客户机的缓存被分为可动态改变大小的两部分: 第一部分主要用于缓存本地节点应用程序所需的文件块; 第二部分主要用于缓存其他节点所需但不能缓存的文件块。 为了将定位数据的功能分布到每个客户端,系统让每个客户都必须对文件的一个子集对应的请求进行处理。文件数据在多个客户端加以分类从而提供更高的带宽,这些分类数据包括一些奇偶信息,通过这些信息可以在机器失效时恢复分类的数据包。这种方法可以保证没有任何节点会产生单点失效的情况。 PC Server或者作为Server的PC,一般稳定性能够得到保证,单点失效的情况发生不会太频繁。根据奇偶校验信息恢复数据占用资源的状况不会太严重。对于关键的应用,可以通过提高硬件的性能来保证系统整体的稳定性和可靠性。 应用方案 共创开源公司根据NC系统本身的特点和用户的具体情况,结合Cache Net的一些特性开发多套解决方案。 多媒体教室系统 针对时下师生对多媒体教室的需求,公司开发了多媒体教室NC系统解决方案。如图5所示,该系统由一台服务器、交换式以太网、教师机和学生机构成。一台中档配置(比如:P4 2.4 CPU,1GB RAM,100Mbps网卡×2)的PC作为服务器,教师机和学生机使用方舟Ⅱ芯片的NC终端,可以支持40个终端。服务器承担了终端服务器、启动服务器、文件服务器、管理服务器的多个角色,由教师机进行统一的管理。本系统采用共创开源公司开发的共创桌面Linux系统作为服务器主体操作系统;使用针对方舟Ⅱ改造过的Linux系统作为终端机基本操作系统,使用Tftp服务远程启动。测试证明,远程启动的速度与本地相当。 共创开源公司同时为多媒体教室系统配备了强大的管理软件和教学软件,提供从硬件体系结构到应用的全方位支持。 电子阅览室系统 对于目前电子阅览室的需求,共创开源公司开发了电子阅览室系统NC解决方案,如图6所示。该系统由WWW服务器、数据库服务器、文件服务器、终端服务器、多媒体数据服务器、管理服务器和交换式以太网、PC构成。为了保护校方的投资,充分利用了学校现有的PC,本系统的终端使用PC作为终端。通过校园网的路由器防火墙连接到Internet。 该方案中服务器使用共创开源公司开发的由共创桌面Linux系统扩展的Cache Net服务器作为服务器操作系统。在服务器群中形成Cache网络,为终端机提供高速缓存,达到提高访问带宽的目的。 由于该方案中NC的终端采用PC,PC的本地硬盘作为启动硬盘,可以选择安装Windows 或者Linux操作系统,及可以选择使用NC终端模式或者PC模式启动。 目前各高校纷纷建立数字图书馆。数字图书馆的内容是通过电子阅览室或者通过远程进行。该方案通过Cache Server为数图的数据提供镜像和缓存服务,提高读者的检索和打开的速度。 下一步工作 在Cache Net中,Cache Server通过存储页进行高速缓存,网络存储页的主要缺点表现在安全性和容错方面,工作站集群中网络故障比单个机器更加频繁,Cache数据的节点崩溃将会导致用户处理数据的丢失,甚至会导致操作系统崩溃。虽然通过冗余或者RAID的方法可以保证在机器失效时恢复数据,但是代价很高。 一个基本思想是尽量利用网络Cache代替磁盘访问,从而减少事务处理的延迟。一个事务被提交,无延迟地同步写到网络Cache上。在完全写到硬盘之前发生故障,存储在网络Cache中的数据仍然是安全的,仍然能够恢复。在服务器环境下,网络Cache已经能够很好地工作。但是在NC环境下,用户频繁地开关主机,造成网络Cache的频繁故障,恢复过程对系统性能产生巨大影响。我们下一步的工作将集中解决NC的Cache恢复问题。 需要解决的第二个问题是,目前我们的原型系统是基于Linux开发的。在Linux/Windows、Unix异构环境下网络Cache需要进一步研究。 本文提出了Cache Net和Cache Server的概念并给出了基本的设计思路和实现。我们基于Cache Net设计的NC系统结构原型已经在公司进行测试,效果基本达到预期目标。网格技术的发展和并行计算技术的迅速发展,将为我们提供更好的解决方案,我们将付出不懈的努力,改进和完善我们的系统。 (E1) 表1 几种SCSI技术规范的主要规格
表2 几种IDE技术规范的主要规格
表3 网络接口速度
表4 实测硬盘读写速度
表5 办公网资源状况
图1 共享存储器示意
图2 Cache Net结构示意
图3 共创NC系统Cache Net网络结构
图4 共创NC系统结构
图5 多媒体教室系统示意图
图6 电子阅览室系统示意图 |
|||||||||||||||||||||||||