全球计算机
一种覆盖整个因特网的新型操作系统将令全世界无数台与网络连接的个人电脑成为普天下人人共享的资源。
David P. Anderson,John Kubiatowicz
分布式计算在某种程度上仍然是普通人很陌生的概念,它是指把计算分布到多台机器上去进行利用数千万台个人电脑同时运行所产生的力量来创造虚拟超级计算机,以攻克现代科学中的尖端计算难题。这一概念正在迅速横扫网络世界,通过因特网,可打破时间和地域的局限,以较低的费用充分调用散布于全球任何一个角落的可提供的GPU和内存资源。全球目前有相当于100万台Cray超级计算机的计算能力处于闲置状态,把它们调动起来,就可以减轻计算能力紧张的压力。
玛丽下班后一回到家里就舞她的电脑去查看有无电子邮件。而此时地的电脑也不是呆坐在那里无所事事,它正在替一家生物技术公司干活,将一个个基因序列同蛋白质分子数据库中存储的资料进行对比;电脑的DSL线路(数字用户专线)正忙于下载一组射电望远镜数据以便日后进行分析;她的电脑磁盘除了存有玛丽自己的文件外,还存有成千上万份其它文件的加密片段。不时会有某片段被读出并传送出去,现在读出的这一片段是一部电影的部分,它被传送到芬兰首都赫尔辛基供某人欣赏。玛丽动了下鼠标,上述活动便嘎然中止。于是这台电脑及其上网线路又完全在玛丽的掌控之下了。
这种资源共享并不限于玛丽的台式电脑。她放在手提包里的笔记本电脑虽是关着的,但其硬盘却存储了其它人文件的许多片段,构成一个分布备份系统的部分。而玛丽自己的关键文件也以同样的方式备份保存在世界各地的几十台电脑硬盘上。
稍后,玛丽通过个每次观看需付费的收费电视系统在她的上数字电视机上欣赏一部影片。这部电影是用存储存几台电脑中的片断迅速拼凑出来的,而这些电脑也都属于像地一样的个人所有。
玛丽的电脑在同时替其它人干活。但是天下并没有免费的午餐——当她的电脑替别人打工时,应收的款项源源不断地流进了玛丽的虚拟银行账户中。付钱的有生物技术公司、电影部门和备份服务公司。这些公司摒弃了购买昂贵的服务器硬盘的做法,转而通过租借方式使用众多其他电脑上的时间和存储空间。它们租借的
不仅有玛丽的那两台电脑,而且有其它人的成百上千万台电脑。这种租借方式的结是皆人欢喜。一方面公司省下了购买硬件的钱,这样就使得比如说提供电影欣赏服务的公司能够放映一些冷门影片。另一方面玛丽也有好处:能够赚到少许现金,使自己的文件在多个系统中备份,并有机会观看独立演播公司的电影。所这些都离不开所谓“互联网式作业系统”(Internet—scale Operating System,缩写为ISOS)。这种新的操作系统起着“粘合剂”的作用,它能把全球成百上干万台独立电脑的处理与存储能力融合为一个有机的整体。
互联网式应用程序
虽然玛丽的故事是虚构的,ISOS现在尚未粉墨登场,但系统开发人员已经开发出了多种互联网式应用程序,即同层次问应用程序(peer-to peer),通过因特网充分挖掘那些没有得到多少利用的计算机的潜力(参看下文“现有的共享共算系统”)。这类应用程序所达到的目标,是靠专用计算机难以达到甚至不可能达到的;即使能达到,也往往因费用太高而无人问津。此外,现今的系统不过是初露锋芒,我们很容易联想到支撑了几百年的档案存储检索系统以及未来语义网所用的智能搜索引擎(参看书刊2001年8月号Tim Berns—Lee,James Herdler与Ura Lassila所著“语义网”一文)。
遗憾的是,开发互联网式应用程序仍是一项令人望而生畏的挑战。开发人员在打造每项新的应用程序时都必须从最底的设计开始.花许多精力去应付那些同应用程序本身没有多大关系的技术细节,例如维护用数据库等。要想使联网式应程序成为网络发展的主流,就必须一劳永逸地解决这些属于“基础设施”建设的问题。
如何才能免去这类费时费力的重复性劳动呢?Unix和微软的Windows之类的操作系统可以为我们提供一些启示。操作系统起着一种虚拟计算环境的作用,程序在操作系统下运行就好像是完全被计算机所把持一样。有了操作系统,程序设计人员就无须去考虑那些为数众多的烦人细节,诸如内存与磁盘的分配、通信协议、无数处理过程的调度安排,以及数据输入输出装置的接口等。操作系统大大简化了新的计算机程序的开发工作。类似地,互联网式操作系统也可以简化新的分布式应用程序的开发工作。
ISOS操作系统由两部分组成。第一部分是在每台个人终端机(如玛丽的电脑)上运行的少量软件(即“ISOS代理人”);第二部分则是在一个或多个ISOS服务器枢纽上运行的中央协调系统。其中终端机上运行的软件(即ISOS“代理人”)仅执行几项核心功能,包括为每项任务分配诈调度资源、处理各终端机之间的通信并确定每台机器所需支付的报酬。这类操作系统称为“微核心”(microkenel)——把高层次的功能下放给些使用该操作系统但并非该系统组成部分的程序。例如,玛丽并不是直接通过ISOS把她的文件分为若干部分分散存储在因特网上多个地方作为备份,而是可能启动一个备份应用程序,由这个程序利用ISOS的功能来替她完成这项工作。ISOS将借鉴经济学的原理来高效而公平地把计算资源分配给各位用户,并给予资源的所有人适当的报酬。
有两大类应用程序可以从ISOS中获得很大好处。第一类是分布式数据处理,例如物理模拟、射电信号分析、基因分析计算机图形渲染和金融模拟等。第二类则是分布式网上服务,例如文件存储系统、网站主持人服务、定向媒体播放(如网上点播录像)和高级网上搜索引擎等。
我的也是你的
现今的计算多半仍属于私有资源的范畴;单位和个人所使用的系统一般也属于他们所有。而ISOS则代表了一种全新的理念,在ISOS的控制下,各单位和个人使用整个因特网上的全部资源将成为司空见惯的事情。这种形式的资源合用并未改变所有权,即所有能够进行计算或存储数据的终端机以及能够在终端机之间传送数据的网络集中起来供大家分享,而各终端机仍属单位或个人所有,但这些电脑可以替任何人干活。终端机包括台式电脑、笔记本电脑、服务器、互联网存储装置,可能还有便携式装备(手机、掌上电脑等)。
因特网上的这种资源共享与一般的私人资源合用有几点重要的区别。现在已经有超过1.5亿台电脑连在了因特网上,而且这一数字正在以指数速度迅猛增长。因此,ISOS可能打造出一台潜在处理速度和存储容量相当于普遍单台电脑1.5亿倍的虚拟计算机。即使这台虚拟机分配给多个用户使用,并且把管理这个网络所需的各项开销也考虑进去,所得到的仍然是一台比任何用户私人能够拥有的电脑更大、更快、更便宜的计算机。因特网资源合用库的硬件将会不断升级,从而使这超级计算机总的处速度和存储容量增长得比上网终端机增长的速度还要快。此外,这个资源合用库还具有自我维护的功能:如果某台电脑出了故障,其主人最终将修好或更换这台电脑。
借助于资源共享,可以实现异乎寻常的并行数据传送。试以玛丽欣赏的电影为例。这部电影是由分存在200台左右终端机上的片断组合起来的,每台终端机可以是通过老掉了牙的56K调制解调器上网的个人电脑。原本这种调制解调器速度太慢,根本无法播放高品质录像,但200余台电脑联合起来可以形成每秒l0兆位的数据传送能力,优于闭路电视调制解调器的数据传送性能。存储在分布式系统中的数据可以从任何存储点上获取(通过适当的安全措施),而且即使共用资源库的某些部分因意外事故而失去作用,这些存储数据也不会失丢。除非黑客闯入比如说1万台电脑,否则系统的存储数据将不会受到危害,因此其安全性能可以得到极大的保障。
这样,对于某些场合,网上资源共用的构想将有助于提高电脑现有能力的上限(例如更快的处理速度或更大的数据集等);而对于另一些场合这一构想则有助于节约成本。当然在某些场合资源共享也许不会产生什么效益,毕竟它只是一种模式,而非包医百病的灵丹妙药。此外,设计一个ISOS系统也面临着一系列的难题。
资源共享的若干特点造成了ISOS系统必须解决一些棘手问题。因为这个资源共享库的组成是参差不齐的。终端机有各不相同的处理器和操作系统,它们的内存和磁盘存储容量大小不一,上网速度也有很大差异。某些主机装有防火墙或其它类似的软件层保护,可禁止或限制网上来访。共享库中的许多主机只是偶尔拿出来供大家使用;台式电脑在晚间通常是关机的,而笔记本电脑和使用调制解调器的系统常常未上网。某些终端机会莫名其妙地突然失踪(有时如石沉大海再不露面),而新的终端机又会源源不断地上网亮相。
ISOS还必须尽量注意避免使终端机的主人感到不快。它必须尽可能在ISOS系统使用的时间之外,不影响个人终端机的运行,而且必须尊重终端机主人所规定的任何限制条件,例如只允许在夜间使用主机或只允许把主机用于指定的用途等。然而,尽管ISOS完全循规蹈矩,它却不能指望每台终端机也同样照规矩行事。电脑的主人们可能会自行查看并改动其电脑的运作,而一些好奇心强或心怀叵测的用户更会试图干扰、欺骗或玩弄ISOS系统。这些问题对ISOS系统的设计方案有重大的影响。
分配与付酬问题
ISOS系统必须解决两大基本问题,即如何分配资源以及如何为资源的提供者支付费用。研究人员根据经济学原理建立起一个描述资源提供者把资源出租给消费者的模型,此模型可以同时解决这两个题。20世纪80年代,施乐公司帕洛阿尔托研究中心(PARC)的研究人员提出并分析了一些基于经济学原理的计算机资源分配构想。后来,Mojo Nation开发出一种文件共享系统,此系统采用一种虚拟通货(“mojo”)为提供资源的用户付酬。这类经济学模型鼓励资源的拥有者将其资源拿出来供其它机构使用,而理论研究则表明此种模型有助于实现资源的优化配置。
虽然可供ISOS系统支配的上网电脑有1.5亿台之多,但ISOS调度的仍然是一种“稀缺”资源,因为有些任务要求动用或能够动用的资源实际上是无限的。1SOS随时随地都在确定选择何处来执行数据、处理任务以及如何分配存储空间,因此它必须尽可能降低执行这些任务的费用。该互联网式作业系统还必须做到公平:不能在提高一项任务的运行效率时,牺牲另一项任务的运行效率。目前研究人员证在努力使这些指标尽量趋于精确,并设法研制出调度算法来达到(即使是近似地)这些指标的要求。
经济的共用网络系统必须定义一项资源的基本位(例如把l兆字节的磁盘存储空间占用1天),并根据存储器存取的速度(或带宽)以及存储器能够被上网使用的频率等特性来赋予其数值。这类系统还必须确定资源买卖的方式(例如费用是否需要预付)以及定价方式(例如是通过拍卖还是通过定价中间人来决定价格)。
在这一框架内,ISOS系统必须准确而可靠地跟踪资源的使用情况。该系统将建立一家内部银行,为资源提供者和资源使用者开设账户,并根据资源的使用情况进行贷项和借项的记账。参加系统的人可以把ISOS内流通的货币兑换成真实的钞票,也可以把后者兑换成前者。ISOS系统还必须采取措施使资源的供应有充分的保障。例如,玛丽看电影时不希望电影看到半路会因为存储的录像供应上而突然中断。经济系统让资源的供应者自己掌握其资源的使用方式。例如,某位电脑机主可以规定其电脑处理器在上午9时到下午5时之间不得使用,除非使用者付极高的价钱。
当然,有钱能使鬼推磨。为了弄到钱,各种诈骗手殴将大行其道,而ISOS的参加者尔虞我诈的方式多如牛毛。例如,出售资源的一方只消窜改或愚弄在其电脑上运行的ISOS“代理人”程序,便可以不做任何计算就凭空提交虚构的结果。研究人员已经探索了一些统计方法来查获这些蓄意欺诈或功能失常的主机。
为了防止有人通过虚构的计算骗取不劳而获的收入,研究人员最近提出的一种发想是要求每个工作单元都必须提交一系列中间结果,服务器可以迅速对这些结果进行核查,而且这些结果只有在主机完成了整个计算的情况下才能获得。此外,为了防止数据存储和服务方面的欺诈行为,还需要采取其它一些措施。
使用ISOS资源的用户需承担的费用应在相当于硬件占有成本若干分之一的水平上。最理想的情况是这一比例电脑拥有者看来相当高,这样他们才会有兴趣加入ISOS系统;在用户看来又相当低,这样在ISOS系统上实现的许多应用才具有经济上的可行性。典型的个人电脑拥有者可能会把ISOS视为一种以物易物的经济系统:他把自己本来也是闲置不用的处理器时间和磁盘率间拿出来让大家共享,而作为交换,他将获得各种免费服务,包括文件备份和网站主持人服务等。
基本的体系结构
我们的ISOS方案将贯彻两条基本原则,即最低核心操作系统的原则以及中央服务器控制的原则。只提供核心功能的计算机操作系统称为微内核(microkernel)。高级功能即用户程序则是以微内核为基础开发出来的,这种结构使用户程序的调试和更换更加容易。微内核的构想起源于大学的科研用系统,观在这一理念也渗透到某些商用系统中,如WindowsNT。但是人多数广为人知的操作系统并不是微内核。
ISOS系统的核心功能包括资源配置(即对各终端机的处理功能和存储空间等资源作长远的分配)、调度(使各项任务排队等候处理,包括整个系统中的排队以及各台终端机内的排队)、对资源的使用记账核算,以及分配和执行应程序等基本功能。
ISOS系统不应当重复在各台主机上运行的局部操作系统的功能。
ISOS系统应当由ISOS服务公司管理的服务器进行协调。该公司可以是一家政府出资建立的机构也可以是各大资源供应商和采购商组成的一个集团(可以设想多家ISOS服务公司群雄并起、互相竞争的局面,但本文中为简单起见我们只考虑独家公司经营ISOS服务的情形)。集中管理与某些“平级对平级”(peer-to-peer)系统中所流行的平等理念是背道而驰的,但为了确保敏感数据(例如会计资料以及有关资源终端机的资料)的保密性,中央服务器必可少。乍看起来集中管理似乎需要建立一个控制系统,因为随着ISOS系统联网主机数目的不断增多,该系统将变得过于庞大,难以操纵,从而成为ISOS系统的一个瓶颈:集中管理照应不到,ISOS就可能陷于瘫痪。其实这些担心是杞人忧天:一定数目的服务器轻轻松松就能存储有关每台网终端机的所有信息并同这些主机保持定期通信。例如,Napster通过一台中央服务器与将近6000万台客户打交道。服务器中枢可以保持一定的冗余度;即使服务器一时用不过来,大多数ISOS网上日务仍可照常运行。
ISOS的服务器中枢将设有资源描述、使用规则及任务描述等数据库。资源描述数据库存储了诸如终端机操作系统,处理器类型及速度、磁盘总存储容量及可用容量、内存容量、终端机网线路性能资料以及对其何时开机、何时上网的统计资料。使用规则数据库存储了资源的拥有者定下的他人在使用其资源时必须遵守的规定。任务描述数据库包括分配给网上服务的资源,以及各项排队等候的数据处理任务。
资源的拥有者如欲把自己的计算机出租给ISOS网络使用,可以同服务器中枢联系(例如通过网站联系),下载并安装一个ISOS“代理人”程序,把自己的资源与其ISOS账户连接起来,以及其它诸如此类的操作。ISOS“代理人”程序负责管理主机资源的使用。该“代理人”程序定时服务器中枢联系,取得一份载有待处理的任务的清单。
资源的租用者向服务器发送任务请求以及将在各终端机上运行的应用“代理人”程序网上服务公司可以向ISOS申请一批它需使用的终端机,并明确规定它对资源的要求,例如分布式备份服务公可以使用偶尔上网的主机(比如玛丽的笔记本电脑),因为它的收费比一直上网的主机低廉。ISOS向该副公司提供可用终端机的地址及相关描述,并让在若干台主机上运行的应用“代理人”程序之问建立直接的通信联系。
如果部分终端机停止租用,这家服务公司可以申请新的主机。ISOS对于客户们如何使用网上服务,服务公司如何应答以及如何向客户们收取费用不作规定(这与资源的租用者向资源的拥有者交费的情不同,该项交费是由ISOS掌管的)。
应用工具箱
原则上ISOS的基本功能——资源配置、调试及通信——已足以构筑很大一类应用程序。但是,大多数应用程序部有一些很重要的公共“成份”。因此,为程序设计人员开发一套软件工具是很有用处的,可以在打造新的应用程序方面提供更多的帮助。这些软件功能的编码将纳人到在中终端机上运行的应用程序中。以下是这类功能的几个实例:
地址无关寻径 在ISOS系统上运行的应用程序可以使信息的拷贝及计算过程分散到成百万上千万台主机上,它们还必须能再次存取这些信息。为了方便这种存取,应用程序用“全球唯一标识符”(GUID)来给属于该程序范围内的各个目标命名。
这些名字使系统能够实现所谓“地址无关寻径”(1ocation independent routing),也就是能够在不知道目标地址的情况下向目标发送询问。实现地址无关寻径的一种方法是只在一台机器上建立一个GUID数据库,但这种方珐过于简单化,不适于处理来自数百万台主机的询问。而ISOS的软件工具则把GUID数据库分散到多台主机中。若干研究项目——例如加利福尼亚大学伯克利分校的Ocean Store持久数据存储工程一一正在探索这种娄型的分布式系统。
持久数据存储 ISOS系统存储的信息必须能经受住各种各样的意外和事故而不丢失持久数据。存储功能通过编码、重构并修理数据来帮助完成这一任务。为了使数据获得尽可能高的生存能力,采用一种“n中取m”(m-of -n)代码来给数据编码。n中取m编码的原理与全息图很相似。全息图可以根据图像的很小一部分重构出整个图像来,而n中取m编码则是把信息分布在n个片断上(即分布在n台主机上),需获得其中任意m个片上的信息就足以重构出整个原始信息。例如,此项功能可以把一份文件分散存储在64个片段中,只需获得其中任意l6个片段,就可以重构出这份文件。持续的修复也是很重要的。当某些片段出问题时,修复功能可以重新生成这些片段。具有适当结构的持久数据存储功能可以把信息保存数百年之久。
安全更新 当应用程序需要更新存储的数据时,会遇到一些新问题。例如,信息的所有拷贝都必须更新,而目标的GUID必须指向其最新的拷贝。必须有一种存取管制措施来制止未经授权的人擅自更新信息。安全更新功能依靠一种拜占庭式的协议来实现安全更新,即由一组主机共同达成一项正确的决策,即使其中有多达三分之一的主机试图把这一过程引入歧途。
其它功能 软件工具箱还支持其它一些功能。例如格式转换功能(解决主机的类型与性能参差不齐的问题)以及同步化库(增进主机之间的配合)。
ISOS系统难免受到人们熟悉的一种怪圈的困扰,选种怪圈妨碍了许多新技术的迅速推广,即一方面用户队伍急待扩大,否则在ISOS上能够实现的应用将始终有限。而另一方面,只要应用寥寥的局面不能扭转,用户队伍也将难以扩大。但如果能够设法说服足够多的开发商及用户相信ISOS的内在价值,从而达到某一临界使用规模,则系统就将如滚雪球般迅速壮大起来。
因特网仍是一项其潜力远未发挥出来的庞大资源。万维刚的大行其道并没有改变因特网的潜力极待发掘这一基本事实一一它只是使网上的资源共用库变得愈发庞大。ISOS互联网式作业系统将使程序设计人员解脱出来,使他们能够集中精力开发出可在全球计算机上运行而无须操心其基础硬件的多种应用程序。谁敢预料它的发展前景呢?玛丽和她的计算机将能创造出那些我们一度认为是异想天开、不可思议的奇迹。
【李平/译 李爱珺/校】
请 登录 发表评论