使用云计算就是把信息处理任务交付给数据中心去处理。下一代数据中心大多采用虚拟化技术,把一台物理硬件服务器分割成多台逻辑虚拟机,可同时执行多个信息处理任务,使昂贵稀缺的计算资源利用率大为提高。我这年龄段的人都谙熟故主席哲学伟人关于万事都可以一分为二的最高教诲(1957年毛泽东在《党内团结的辩证方法》中明确指出:“一分为二,这是个普遍的现象,这就是辩证法”,《毛泽东选集》第5卷第498页)。所以下一代数据中心里服务器虚拟化做法也就是对服务器一分为二(其实是一分为N)。伟人断言一分为二的普遍性,套用到今天服务器虚拟化情形就是:将一台物理服务器分割成多台虚拟机对于我们通常大多数情况遇到的信息处理任务而言,这是一个具有普遍意义放之四海而皆准的做法,在大多情况下无需特别考虑所要处理任务的性质与规模。的确,在过去的一二十年中,我们一般日常业务的信息处理任务在数量与规模上的增长与GDP的增长,这两者之间应该有一个近似正比例的对应关系。年均增长率10%算是相当高了。然而众所周知同期内IT设备处理信息能力的增长率则远远超过GDP的增速。这就是为何对一个物理服务器做虚拟化分割,一分为二的做法具有一般性和通用性。一般日常业务的信息处理任务,哪怕是比较大规模的,以多租客方式共享使用一台物理服务器,应该没有什么问题。
然而近年来有些种类数据的增长率远远超过GDP的增长率。根据IDC几年前发表的预测,从2006年到今年底,全球的数据量将增长6倍。到2010年底,大约70%的数据是由个人产生的,而且这些数据中至少85%的部分将由各种组织来负责管理,主要是为数据在安全、隐私、可靠及法规遵从这几个方面进行管理(While nearly 70% of the digital universe will be generated by individuals by 2010, organizations will be responsible for the security, privacy, reliability and compliance of at least 85% of the information)。IDC继续强调:非结构化数据占有这些数据的95%以上(Over 95% of the digital universe is unstructured data)。这些非结构化数据中最典型的就是从网络2.0应用中和大规模移动通信应用中所产生的。所以存储、处理、分析这种2.0数据所需的IT设备能力也必须具有相应的高速增长率。用网络搜索引擎在网上搜索内容就是一个对2.0数据作大规模处理的典型应用。对这种数据处理任务,仅使用一台服务器来处理已经会力不从心,更不要说把一台服务器分割成多个虚拟机来处理多个这样的任务。所以对这一类数据处理问题,一分为二方法不再适用,合二为一才是要领,即:如何将多台服务器联合起来处理解决一个问题。近年来十分热门的map-reduce算法就是把多台服务器连接起来,让它们并行合作解决一个大规模数据处理任务。
所以map-reduce可以看作是将数据中心里的服务器“合二(多)为一”。作为一个合二为一的问题,map-reduce算法通常不是跑在一个虚拟化的计算或存储平台上。事实上map-reduce“把计算搬到数据附近”(moving computation to the data)的理念隐含了一个紧耦合计算存储架构:一个数据处理问题的map计算步骤并行发送到许多map workers节点平台上,每一个节点都采用CPU与本地磁盘一一对应的紧耦合存储架构,将处理的中间结果写在本地磁盘上。
我们知道数据中心的服务器如果不采用虚拟化技术,则计算资源的利用率非常低。Map-reduce由于不跑在虚拟化平台上,因而在计算与存储资源的利用上和节电绿色环保方面效率很低。比如想要对非虚拟化的worker节点群实现动态附载均衡是一个很难实现的任务。我们注意到网络搜索引擎具有很可观的碳足迹。有人做过统计:两次Google搜索在数据中心服务器上所耗的电能可以烧开一壶水。如何对数据中心里的合二为一问题实现比较绿色的解决方案,比如在虚拟平台上跑具有动态附载均衡性能的map-reduce,是一个很有意义的研究课题。