本文节选自《大话存储2》一书中第20章,转载请注明出处及作者(冬瓜头)

 

20.8.4 云基础架构的艺术与哲学意境

另外,我发挥了一下想象力,将云想象成为一部精密机械,并画了一张图,如图20-40所示。希望通过这张图能够让大家更加深刻的认识云这个东西。这张图片其实是可以运动的,大家可以联系我以获得这张图片的动态版。这张图是对一片小云种子的一个总结。最中心的物质本源,也就是硬核心。在这层硬核心之外,包裹一层弹性存储层,包括可灵活扩展的集群SAN、集群NAS或者集群/分布式文件系统等,以及ThinDedup等增加数据弹性的技术,还有增加管理灵活性的虚拟化技术。之外再覆盖以弹性计算层,最后覆盖以资源管理层,最外面则是运营层,包括业务展现子层与运营管理子层。至此这片云就彻底运转起来了。

 从云1.0时代到云2.0时代_云

20- 40 小云的5层结构

大家再仔细分析一下这张图,会发现其中包含有无穷奥妙。你先想象它是一台电动机,其中每个圈都可以旋转,谁来给它提供能量呢?当然,云数据中心必须有足够的电力,电动机要旋转,需要有电刷给其供电。大家可以看看业务展现层与运营管理层,这两个模块是不是很像两把电刷,将用户需求这种动力不断地提供给中心部件,从而让这台电动机持久地转动。如果没有了用户需求,或者你已经想不出足够新颖的业务展现方式,那么就算有电,这个数据中心也无法再运营下去了。

计算存储硬核层:处于这台精密机械的最核心层次的,就是硬核了,也是运转最快而且最硬最实的一个角色。在数据中心中表现为大量的和存储设备,这个核心是云数据中心的物质本源,也是密度最高的实体。硬核相当于云中的种子。服务

存储弹性软化层:这一层紧密地包裹在物质实体之外,通过分布式、集群、虚拟化、ThinDedupSnapshotClone等技术,将原本高密度的硬实体充分软化,为上面的层次提供一个弹性软化的基座。

计算弹性软化层:在弹性软化的存储基座之上,计算资源也通过各种主机虚拟化技术手段被充分地软化。

资源管理调度层:物质硬核+富有弹性的软化计算与存储资源层,共同构成了一个系统内的阴与阳相合的资源核心。资源管理与调度层起到一个适配内外层次的作用,外层阳气的生发需要底层物质源泉的积聚、分配和运化,如何将这个系统内的资源进行良好的调动与配合,便是这一层的任务。这一层中存在诸多角色,比如资源监控、资源分配与调度、并行计算分配与调度等。

业务展现运营层:这一层则是阳气外发外散与运化升华的至极之层次,也是整个云数据中心的精神本源。中心的硬核为太阴,这一层则为太阳,为最终将辐射展现出去的一层,也是外界直接可见的一层。表里相合,一为实一为虚,一为阴一为阳,一为物质一为精神。

整个云数据中心便是一个阴阳表里虚实相合的一个有机体。这也正像一个星云,不断孕育出[微软用户1] 星体,对应着云基础架构之上不断孕育着各种应用业务服务。生物体、社会、企业、公司、宇宙,其实都是这样演化的,那么可以这么说,系统即云,云即系统,云是大统一的系统模型。

另外,大家可以继续领悟一下,这片小云种子,是否就是一台计算机呢?硬核心就相当于硬件,看得见摸得着,外层的弹性存储层,相当于计算机的存储系统,任何计算机启动时首先都要去从存储系统里读入代码执行;再外层就是操作系统内核层,基于存储层的支撑,内核得以启动;再往外就是操作系统管理界面层了,利用界面来管理和分配各种计算机资源,其中并行计算调度模块也相当于操作系统中的线程调度器等角色;最外面一层,也就相当于计算机的应用程序层了,各式各样的应用程序,对应着云中各式各样的业务展现。各种应用(业务展现)可以在一台计算机上(云中)迅速的安装卸载(部署)。那么,“云即计算机”,这句话,不记得之前哪位提到过,至此我也彻底理解了。云为何就是计算机?云由大量计算机组成,而其堆叠之后的样子和架构,仍然还是一台计算机。计算机各处总是体现着轮回的形态。为何呢?因为它骨子里就是由计算机组成的,它永远造不出异形,只会造出它自己,除非它有自己的强烈向往,希望自身向某个异形发展。这种行为,骨子里已经根植到了基因当中,这种上下联系看上去非常微妙。

对比一下:

1.计算机加电,硬件启动→云数据中心硬件核心层启动。

2.磁盘读取代码以便启动OS→云中的数据承载层。各种分布式FS分布式DBkey-value DB等。

3. OS启动→云中的虚拟计算层,生成大量VM

4.启动到用户界面→云中的管理层,比如微软System CenterNovell Cloud Manager,思科UCSUnified Manager等。

5.内核的线程调度器→云中的并行计算调度层,比如Mapreduce以及其衍生物。

6. OS提供的开发APIVCJava→云中的PaaS开发平台

7.各种运行在OS上的应用程序→SaaS展现层,各种云业务。

又比如各种分布式文件系统,其本质是什么呢?其实还是本地文件系统思想的外散。本地文件系统通过一个跟入口,然后一级指针、二级指针、三级指针,一直到最后一层0级块用来存放最终的文件数据。而分布式文件系统,大家思考一下,对称式分布式文件系统,其各级元数据其实也都是分部到所有节点当中的,比如一级指针用1个节点承担,二级指针用2个节点承担,3级指针用3个节点承担,这样可以将文件系统分布到非常大的范围。或者干脆把所有指针元数据放到一个节点中,那么这个节点也就是MDS,这样就属于非对称式集群文件系统了。但是不管怎么弄,其本质其实就是本地文件系统的思想。

至此,“轮回”的道理在计算机世界已经充分展现了出来。

20.8.5 纵观存储发展时代——云发展预测

如图20-41所示为存储系统的发展时代。这张图所要表达的两个最重要的地方,一个是所谓“小云时代”与“大云时代”,另一个则是“分”与“合”的轮回变化。

从云1.0时代到云2.0时代_云_02

20-41 存储系统架构变迁发展

早期的直连存储,每个计算节点都有各自的存储系统,计算节点之间的存储系统没有共享,属于分;今天的网络存储时代,所有计算节点可以共享访问同一个存储系统,属于合。当前,由于单台网络存储系统性能受限,集群存储系统的地位开始上升,利用大量分开的存储节点来获得更高的性能扩展性,以满足数据爆炸时代的需求,这又属于分;而在将来,将是一个业务爆炸的时代,各种各样的互联网服务层出不穷,如何快速满足业务部署需求?传统数据中心,部署一台新服务器和业务,需要至少一天的时间,比如上架、安装OS、安装支撑系统、安装应用系统、测试,而如果加上前期采购等流程,则需要更长时间。而云的出现,利用弹性核心,将底层大量分开的计算或者存储节点屏蔽,抽象为各种IT服务,使得部署一个新应用可能只需要几个小时的时间就可以了,云整合了所有IT资源,这又属于合。而在遥远的未来,随着技术革命的到来,计算与存储将会发生质的变化,单个节点的计算与存储能力发生革命,另外,互联网带宽的革命,也会促使大范围的网格节点互联,共同组成一个整体,而不是向某个固定的云中获得资源,这又属于分。

小云也就是不远的将来会大行其道的、由小规模的硬核作为种子所生成的云[微软用户2] 。而大云则是借助高速互联网而组成的大范围的网格型的硬核心,大家共同参与组成云。此时,任何节点可以申请加入这个云而成为云中的一粒种子,不断贡献着资源而同时也吸收着资源。其实P2P就相当于一个大网格云,只不过网格云时代P2P的不仅是电影,而是一切IT资源了,比如存储和计算。假如你有一个视频需要渲染,但是你的机器自身的显卡太差,那么你可以直接利用P2P渲染平台服务将你的任务提交,其后台就会将这个任务分解到所有拥有高渲染能力的节点中去并行计算,然后结果汇总到你这里,这个速度将会是相当快的。

在网格云时代,此时整个系统又属于分了。在这个大云时代,互联网上的所有节点都会有高接入带宽,比如万兆以太网到户,再加上IPv6,使得每个人都变成了互联网运营商,那么之前被大集中到运营商以及各个数据中心中的资源,在这个时代将会重新流入到互联网所有节点中。之前被大集中在运营商数据中心的数据业务,此时会被大范围分散到互联网的各个节点中去,此时的形态又属于分了。如果说集群存储时代对应着数据爆炸,那么小云时代便对应了业务爆炸,数据与业务共同在几个点上爆炸之后,必将经过弥散的时代,这个时代也就是大网格云时代。在这个时代,整个互联网内的资源被虚拟地整合起来,人们可以利用P2P技术运行超大程序,渲染图片以及海量存储等其他各种服务。那时候的运营商,有一种很重要的角色,这个角色就相当于分布式文件系统中的MDS,它会给整个互联网提供一个用于P2P共享的分布式平台,保存所有互联网元数据。比如大分布式文件系统、大并行计算调度系统,都会有运营商来掌握和部署,将整个互联网范围内的资源整合了起来,数据和资源弥散在整个互联网范围。

另外,小云自身也相当于大云中的一粒种子,目前各地都在兴建小规模云数据中心,这些建好的数据中心,将来会成为种子,然后各自联合起来形成大范围云。我们姑且称小云时代为云1.0时代,或者也可以叫它种云时代。而大云时代为云2.0时代。云2.0时代的时候,之前云1.0时代的种子便完成了它的使命,成功地发芽开花并结果。

那么在大云时代之后,按照之前一路分分合合的变化规律,势必又会变为合的形态。这里先这样推测,然后再找论据,它凭什么要合呢?你说合它就合么?显然不是的。我们畅想一下,那时候计算与存储将会发生革命,比如从电路计算与电路存储,转为量子计算或者生物计算与分子存储。大家知道,生物细胞中的DNA可以存储大量的信息,可能一个细胞可以存储的数据堪比一块硬盘,那么一片树叶中将可以存储海量的数据。那么谁来读取其上的数据呢?当然是靠核糖体,核糖体就相当于磁盘中的磁头。细胞也可以用来计算,一个细胞中包含多种模块,每一个都被精确设计,来完成一系列的生化过程,这个过程如果可以被翻译为其他逻辑,那么就可以被用作高速计算。那个时候,将会出现利用革新技术生产的计算机,整个时代又会回到最原始的形态,也就是大量终端通过网络连接到中心计算机来获取资源。

纵观云发展史,我们再往高层思考。一开始,PCLAN内访问服务器,这种状态可以映射到现在的Micro Cloud;后来,IT组织越来越大,数据中心出现,组织内的PC可以跨越多个LAN被路由到数据中心LAN内访问所有资源,此时可以映射为Mini或者Normal Cloud;后来Internet发展,使得多个Internet上的服务器可以相互通信相互要资源,PC可以连接到Internet访问其他LAN内的服务器,这种状态可以映射到大范围的Seed Cloud;那么再后来,Internet上的资源被一定程度地弥散,当然数据中心等云种子依然存在,只不过资源被极大地弥散到了所有节点之上,此时便映射到了Infinite Cloud,也就是大范围Gird了。

请看一下图20-42所示的IT系统基础架构一开始都是孤岛,烟囱。后来存储开始被集中起来。再后来,存储的上层,也就是计算层,也被集中整合起来。再后来,统一了开发平台,其上孕育出各种应用。这也是当前的新型IT基础架构的形态,也就是人们常说的“云”基础架构。存储从主机脱离出来成为SAN,那么整个IT系统基础架构的共享,就成为了Cloud。可以看到一层层的向上侵蚀,但是APP一层自身能被融合起来么?恐怕不能了,每个业务都要对应一个APP。那么这个系统正在干什么呢?它下一步将会是什么形态呢?

从云1.0时代到云2.0时代_大话存储2_03

20-42 IT基础架构演进示意图

 IT系统最终是不是要长成这个样子(见图20-43)全部融合。一个操作系统实例可以管理所有服务器、存储、网络资源,也即所谓“数据中心操作系统”或者“分布式操作系统”。这个DOSDatacenter/Distributed OS,不仅寒了一下,确实是个轮回,到了DOS时代了)可以有两种模式,就像分布式文件系统一样,一种模式是把多个文件系统实例用目录的方式虚拟,而另一种模式是直接在底层虚拟。

从云1.0时代到云2.0时代_云2.0_04

20-43 分布式统一操作系统

那么DOS也可以有这两种类似的方式,要么就用一种简单松耦合的管理角色,比如微软的System CenterNovellCloud Manager等;要么,也就是要引出的另一种彻底底层融合方式,一个操作系统实例,高速网络的出现,将总线延伸到计算机外部(请翻回阅读本书第2章,外部网络就是计算机总线的延伸),将内存的RDMA,这些都变得可能,此时多个物理上分离的节点可以直接进行总线级的通信和内存直接寻址,那么一个分布式操作系统也就可以在此基础上诞生了。

这个操作系统将会把整个数据中心中的所有元素统一管理起来,包括底层的供电、消防、监控等,及上层的存储、计算、网络资源管理和调度,以及各模块间的消息转发中间件平台,乃至最上层的应用业务展现开发平台。所有这些元素将被一种像微软Windows操作系统一样的统一平台来操作与管理。这又是一个大轮回了。同时,存储早就准备好这一天的革命了,各种分布式虚拟化存储已经成熟。此时,整个系统确实从骨子里表现为一台大计算机了。这个DOS会将任务拆分为颗粒分配到底层所有计算节点中去,这也正如传统OS将每个线程分配到CPU的每个核心中去执行一样。

这种操作系统如果真的出现,其早期必然不能够满足高实时性计算的需求,只能作为一个庞然大物级别的系统来处理一些非高实时性但是却拥有极高的总吞吐量的系统,对于高实时性需求依然需要独立的系统。其实这种演进就相当于目前的传统操作系统与嵌入式高效实时的精简操作系统的区别了,谁也离不了谁,总要有一种通吃一切的庞大系统,比如WindowsLinux等,也必然要有一些尖兵操作系统比如VxWorks等。随着规模的庞大,整体颗粒度必然变大,微观运动必然相对变慢,但是总吞吐量数量级也必然升高,这就像一个细胞的运动与地球自转的比较一样。

那么,这个系统究竟是否会朝着这个方向演进呢?让我们拭目以待。