[中文] [English] 

论文

另类架构——网格技术

[从兴公司 - 陈百平]

从兴公司有一个名为“3G及新技术预研”的项目组。有时一些“古灵精怪”的技术也扔给这个项目组去研究,其中包括近期方兴未艾的网格技术。而我有幸是该项目组的一员,接触网格技术已有一段时间了,在此向大家介绍一下我学习网格技术的一些认识及想法。

我折腾EMC的网格存储产品Centera已有几个月了。按EMC官方说法,Centera产品是一个二级的对象存储产品。所谓二级,是说它不能替代 SAN、NAS等存储设备,但可以替代磁带机、光盘机之类的存储。所谓对象存储,是指它把用户数据看成一个对象,对象既可以有属性,也可以有二进制数据。如果熟识关系型数据库的话,可以将一个对象看成是一个记录,对象中的属性对应于普通的字段,对象的二进制数据对应于BLOB字段。Centera既没有文件系统、也不提供块设备操作,因而存储对象时只能通过它所提供的API进行。下面简单介绍Centera的体系结构。

Centera的体系结构比较简单,其核心思想是使用功能简单的PC机组装成功能强大的服务器,从而提供巨大容量的存储。在Centera系统中,最小单元是一台1U高的具有4个串行SATA硬盘的PC服务器。然后通过在一个机柜上插放多个这样的PC服务器,来组成具有巨大容量的存储空间。每台PC服务器上运行了Linux 操作系统,其上再跑EMC的Centera协同操作软件,保证所保存的数据的完整性。

图1. Centera物理结构

上图基本描绘了Centera的物理结构。Centera对应用程序而言是一个黑匣子,内有2个交换机和多个PC节点。一个机柜最大的裸容量可以这样计算:一个硬盘最大500G,一台PC机共4个硬盘,一个机柜可放32个PC,故最大容量为500G×4×32=64T。最大可扩展到8个机柜。因为需要做数据镜像,故实际可用容量要减半。

Centera有如下的特点:
1、在线存储,容量大,可在线扩容。
2、数据自动在两台PC服务器上备份,保证数据安全。
3、每台PC服务器上的磁盘没有做镜像或RAID保护,故磁盘利用率高。当一个磁盘坏了,因为数据在别的服务器上有备份,Centera软件会自动将这些备份数据再次备份到其他的PC上,以保证数据同时有两个拷贝。当坏硬盘更换后,数据不会重新拷贝回去,而是用来保存新的数据。
4、当一台PC服务器坏了,因为数据在别的服务器上有备份,Centera软件自动将这些备份数据再次备份到其他的服务器上。当更换上好的PC后,原有的数据也不会重新拷贝回去,而是用来保存新的数据。这样有利于提高效率。
5、比起SAN等价格更便宜。

读到这里,大家可能对网格是什么已经有一个初步的概念了。至于网格技术的确切定义目前在行业里面是没有的。各个学派都有着各自的定义。这是因为技术不断的变更,许多概念的内涵也随之而变改。按照我的理解,网格技术就是利用多个廉价的计算设备组装出相当于目前高端设备所具有的功能或远远超越高端设备所具有的功能的计算设备网络。当网格技术应用于计算,则称为计算网格;应用于存储,则称为存储网格,如上述的Centera。总的来说,我认为网格技术应该包含以下三个特点:
1、使用大量廉价设备,采用联网方式将它们连接成一个网络。并且在该网络中,这些设备的功能基本上是对等的,有相应的算法自动将计算任务调度到可用的设备上。
2、网络中不存在单点故障,一台或多台设备的损坏,不影响网格整体的功能。
3、在同等价格下,网格的处理能力要远远超过高端设备的处理能力;或在同等处理能力下,网格的价格要远远低于高端设备的价格。

如果按照这三个特点去定义网格,则我们立信在十年前就开始网格技术的研发了,只是那时不叫网格,而是称为并行计算或分布式计算。当时立信开发二部(也就是现在的诚毅前身)使用廉价的PC服务器构建了一个3×3的计算矩阵,用于处理广东移动的清单数据。该系统的处理速度比起使用小型机的生产系统要快很多很多,以致许多人都乐意使用该系统进行清单查询。

如果再次追溯计算架构的历史,会发现网格的兴起只是计算架构发展的一个延续。在商用领域的多用户计算中,最早的计算模式是集中式的,一个大型机拖着一堆哑终端,大型机完成了所有的计算工作,哑终端仅仅是把用户敲键盘的电信号传到主机上,然后直接显示主机传来的屏幕电信号。随着计算机成本的迅速降低、计算性能不断地提升,客户端开始分担部分业务计算功能,计算模式完成了从集中到分散的转变,C/S模式开始在普通企业流行起来。C/S系统的典型模式是一个小型机带着一群工作站;到了B/S模式,为了克服C/S模式的管理和维护问题,业务计算功能又被收回到服务器端进行,只不过这时的服务器端可能由一台变为多台,出现了所谓的多层架构,每一层都有着特定的计算业务,计算模式又从分散转为集中。这正应了一句老话:合久必分,分久必合。然而,在多层架构中(不管是C/S还是B/S架构),我们强行地划分了每台机器的业务职责,我们这种划分的依据是什么?合理么?这种划分往往造成了资源浪费:尽管一些机器无所事事,但它们仍然是无法分担其它机器的任务。为什么我们不能把所有的计算资源整合在一起,让任务“自动 ”地寻找空闲的计算资源呢?于是网格技术出现了。网格技术能将这些零散的计算资源整合在一起,如果网格的规模足够大,其所能提供的计算能力有时甚至可以与超级计算机相媲美。

了解了网格技术的基本概念,那网格技术究竟与我们有什么关系呢?

我常问:在技术方面我们公司的核心竞争力何在?公司的简介上印有标准答案:大规模数据处理。但我总觉得这个有点抽象,拨开这个“大规模数据处理”,好像看不到具体的技术。对于这个“大规模数据处理”技术,我们似乎还没有将其进行抽象并剥离,使其独立成为一种基础设施,并加以重复使用。

我也常想:未来技术发展的趋势将会是如何,在技术方面我们应该在哪个方向上有所突破和创新?目前大家都在学习架构、讨论架构,许多人手头上都有一两本架构或框架的攻略书籍。而我认为这些架构距离我们核心竞争力“大规模数据处理”好像有些遥远。

既然我们已经定位了核心技术为“大规模数据处理”,并且可以预见,未来应用的数据处理量将比现在翻几翻。例如3G大规模应用后,其话单量就会剧增。如何更好地应对这种大数据量的处理与存储,我们应该认真思考。网格技术则提供了一个良好的解决思路。

很多公司已经开始在网格上辛勤耕耘了。Oracle的10G数据库,就是构建在网格技术之上的。Google的搜索引擎,也是建立在网格技术之上。除此之外,Google还做了进一步的事情:将计算网格与存储网格融合在一起。在Google里,没有昂贵的存储设备,没有高端的服务器,唯有大量的PC服务器。

面对未来架构,我们是否已开始思考?

参考文献:
1.http://www.chinagrid.com/gridstudy/gridstudy.htm 中国网格网站
2.http://www.oracle.com/technology/global/cn/tech/grid/index.html Oracle网格技术中心
3.http://www.edu.cn/20031030/3093557.shtml 中国网格技术的发展及现状(PPT)
4.http://china.emc.com/products/systems/Centera.jsp EMC Centera官方网站

 

注:以上文章版权归立信集团《沟通》所有,不得转载、引用。


Copyright © 2005-2009 www.mao2.com, All Rights Reserved. Contact email:chenbaiping#revenco.com