旧文新感之虚拟化
回头看这些年发在网上的文字,好在水平不高产量有限,很快就回顾完毕。在这些文字中无意中竟然发现了也许是我潜意识中一直很关注、很感兴趣的话题,不论是最早的《漫谈虚拟化的今生、前世与未来》,还是后续的《王阳明的鲜花》、近期的《一刻半生》《伟奇的异想世界》等都不经意的流露出对“意识”的迷恋。
“意识”的本质是什么?意识能不能把握实在?意识能不能理解世界?
2023年偶然读到唐纳德霍夫曼的书《The Case Against Reality》,发现这位功力深厚的学者已经将我模模糊糊的一些想法和猜测理论化了,我觉得他的“知觉界面理论”颇有说服力,根据他的理论,不论是前沿的超弦理论还是生物学领域对“大脑”产生意识的解释都表明我们还远远没有能把握世界的本质,我们能掌握的只是那些有助于我们生存下去的“知识”,而这些知识只是认识世界的一个界面,即interface,我们通过合适的界面能够生存,不合适的界面会让物种消亡,例如澳洲那些致力于和啤酒瓶产生后代的吉丁虫,啤酒瓶的颜色和条纹误导了雄性吉丁虫的“认知界面”,以为啤酒瓶就是雌性吉丁虫,所以这种昆虫濒临灭绝,澳大利亚正在紧急改制新样式的啤酒瓶。但是界面后面是什么?这个让无数天才竞折腰的问题似乎仍然高高在上,遥不可及。
我在读完这本书后想到一个问题,那就是“知觉界面理论”如何解释人类的梦?根据知觉界面理论,我吃苹果或者看到老虎就赶紧跑是因为这样有助于我生存下去,我们都知道梦给我们的感受非常真实,但是在梦里我们“看见”东西不依靠视觉,我们“感受”物体不需要触觉,那么我吃苹果或者逃离老虎这个场景发生在梦里,意味着什么?知觉界面理论如何解释?有人争辩说梦实际是你后天体验的产物,那么如何理解尚在妈妈腹中还未出生的宝宝也会做梦?
下面粘贴的就是旧文《漫谈虚拟化的今生、前世与未来》,当时我在文末说码农会不停制作新界面,让我们越来越适应虚拟化生存。现在看来,也许虚拟化既是结果,也是原因。
旧文:《漫谈虚拟化的今生、前世与未来》发表于2015年7月6日
引子:
以往企业或机构数据中心最贵和最牛逼的设备名单上必有小型机和光纤存储,以IBM为代表的小型机和存储设备长期以来意味着高大上,X86架构服务器则主要是扮演一些边缘角色。
风水轮流转,从2001年业界正式出现X86架构服务器虚拟化技术起,经过十多年的曲折发展X86架构虚拟化已然成为了数据中心的标配技术之一,并且不断蚕食小型机的固有领地,事情正在起变化。
而笔者认为这个变化并不是看起来那么简单和表面,背后有一些文化的必然因素起作用,因此这个趋势的后续影响也不可小觑,非常值得探讨。
一、什么是虚拟化
小弟我自小就喜欢和“虚拟”相关的东西,小时候就爱看科幻小说和电视新闻,而每日奔波操心生计的大人们认为则这些离自己身边生活很远的东西都是“虚“的,关注这些也是”虚幻“人们不能生活在“虚拟”的世界里,因此大人和小人(偶的小伙伴们)都没少投来讥笑,或称这小子不踏实呀”好高骛远“啦之类的。因此年岁渐长后,遂”遵从“主流价值观,将自己的”虚拟“爱好深深地隐藏起来。
记得是2002年夏天吧,不会泡妞没有姑娘垂青的小弟我只好长时间宅在宿舍暴刷星爷的经典作品,然而一次偶然的机会,接触到桌面虚拟机virtual machine(早期的一种虚拟化软件产品),从此将爱好“虚幻“这个禀性就完全释放在虚拟机上了,后来得知VMware在2001年才首次在业界正式提出和发布虚拟化技术。我差不多算是第一时间就跟进虚拟化技术了,开始阶段自己的计算机就能安装好几台虚拟机玩,参加工作后开始玩大的,必须搞服务器集群进阶升级啊,没有条件创造条件地”弄“来多台机器和交换机,疯狂做实验,直到同屋工作的小姑娘们实在受不了众多二手老设备的巨大轰鸣声威胁向领导举报我,偶请她们吃了几顿小肥羊并道歉并郑重承诺只在下班且她们不在的时间搞这”破玩意儿“(姑娘们原话),好不容易拼凑的实验环境才都以幸存至今。
因此后来2009年小弟所在单位进行信息系统技术改造升级的时候,虽然VMware在2001年就提出了虚拟化,但国内企业数据中心2009年还没有开始普及虚拟化呢,大家对新生事物还是比较保守谨慎的,乐看“吃螃蟹“的笑话。自以为精通虚拟化技术的我不遗余力的向领导鼓吹虚拟化的好处,什么能便于管理,能降低全周期内的总体成本,节能减排,可大大提升数据中心逼格从此可以鄙视兄弟单位啦等等,估计领导实在受不了我成天的叨叨,也可能被“提升逼格鄙视同行“的美妙前景所诱惑,跺完脚咬着牙说“用虚拟化可以,有问题你小子吃不了兜着走!“。
其实我是心里有谱的,我坚信我的判断没有错,X86虚拟化技术必将大范围应用和普及,成为数据中心的标配技术之一,后来本单位的成功实践也证明了这一点,领导也因为比同行提前好几年应用了先进技术得意了好一阵子哈,兄弟单位们来参观取经,领导面子上自然爽歪歪。
附注:IBM等国外小型机一次购买及后期持有成本过于高昂,使得人们不得不考虑小型机带来的好处是否值得,而且最近几年由于网络安全等原因国内开始缓慢但坚定的执行“去IOE”战略(IBM、Oracle、EMC),客观上也推动了x86架构虚拟化版图持续扩张。顺便说下,IBM的小型机的市场可是不断萎缩呢,被IBM裁员的兄弟都别哭了,我很有同情心的,建议转行做x86虚拟化哈。
当然也有不少顽固分子常常讲虚拟化的坏话,说什么还是IBM小型机Power架构更强大、虚拟化技术的TCO/ROI(总体运营成本/投资收益率)低的吓人、业界又发现虚拟化技术存在这样那样缺陷、虚拟化技术与互联网“云“时代存在结构性矛盾、连Gartner自己都认错了等等。Gartner是一家著名的IT市场调研机构,每年都要发布十大战略技术,它的报告影响力颇大。虚拟化技术在Gartner 2010年的十大战略技术预测中排名第一,2011年排名第九位,2012年至2014年的预测名单中则压根没有提虚拟化!难道真的因为虚拟化技术过时了而不被看好吗?还是Gartner的判断失误被打脸?
每一年都有很多的IT产品和技术热潮成为企业的关注焦点,其中有一些技术在实践中得到推广普及从而具备持续的生命力,也有一些会被无情淘汰。虚拟化的从Gartner的战略技术名单中被除名,我认为这并非因为虚拟化技术过时或失去生命力,这恰恰说明虚拟化技术和产品已经足够成熟,近年来企业数据中心已经开始确定向虚拟化过渡的战略方向,虚拟化技术和产品已经成为企业的信息基础设施的重要组成部分。看看X86服务器的年年攀升的出货量和VMware高居不下的市场占有率就知道了。
那么到底什么是虚拟化?(以下部分略枯燥,但都是干货哈)
VMware毕竟是x86架构虚拟化的领头羊并且甩开其他对手太远了, 因此下文难免一再说到这个VMware这个名字,我发誓绝无广告意图。
虚拟化的源起
广义上讲,虚拟化包括服务器虚拟化、存储虚拟化、网络虚拟化以及桌面虚拟化等等,服务器虚拟化还包括IBM Power架构虚拟化和X86架构虚拟化,事实上最早使用虚拟化技术的并不是X86服务器,而是IBM公司1965年发布的产品IBM7044计算机。之后虚拟化技术在大型机系统上应用多年,起初是在IBM的z/VM、OS/390、z/OS等大型机,后来也扩展至IBM的iSeries和pSeries平台以及惠普的HP9000等。但是虚拟化这一概念被广泛接受并取得飞速发展还是在虚拟化技术在X86架构上普及之后,现在提到服务器虚拟化技术包括Gartner所说到的虚拟化如果不特别说明都指的是X86架构上的虚拟化技术,X86架构的虚拟化毕竟是主流应用。X86服务器虚拟化是数据中心存储虚拟化、网络虚拟化和桌面虚拟化的基础,因此本文主要谈的是X86架构的服务器虚拟化。
虚拟化的原理
传统的X86 计算机硬件是专为运行单个操作系统和单个应用程序而设计的,但客观来讲目前实体服务器大多数时间里负载都较低,因此大部分计算机的硬件性能(主要是CPU和内存)实际上远未得到充分利用。借助虚拟化技术,可以使单台实体机上运行多个虚拟机,每个虚拟机都可以在多个环境之间共享同一台实体机的资源(主要是CPU、内存和存储),从而大大提高计算机硬件资源的利用率。虚拟机本质上是物理磁盘上一组文件的逻辑集合,不同的虚拟机可以在同一台实体机上运行不同的操作系统以及多个应用程序。
图 1 原生架构虚拟化示意图
VMware的服务器虚拟化产品ESX Server是虚拟化的基础平台,每台用于虚拟化的物理服务器上都必须安装ESX Server,ESX Server由VMkernel和 Service Console组成。 ESX Server是一种原生架构(Bare-Metal)虚拟化产品,它可以安装在X86计算机上成为ESX服务器。ESX服务器通过以动态和透明方式分配硬件资源的虚拟化层(Hypervisor)直接控制X86架构计算机的硬件资源(包括 CPU、内存、存储等),它能够创建多个功能齐全、可像实体计算机一样运行其自身操作系统和应用程序的虚拟机,见图1。由于是将整台计算机(包括 CPU、内存、操作系统和网络设备)封装起来,因此虚拟机可与所有标准的X86操作系统、应用程序和设备驱动程序完全兼容。ESX服务器可以同时在单台计算机上运行多个操作系统和应用程序,每个操作系统和应用程序都可以在需要时访问其所需的资源。建立数十台甚至数百台ESX服务器和存储设备并组成集群,可形成一个完整的虚拟基础架构(虚拟数据中心),如图2所示。
图2 虚拟数据中心
由于虚拟化技术生来的初衷就是为了“压榨”服务器过剩的硬件能力,因此真正部署虚拟化的时候,往往使用刀片机箱这种专耐“压榨“的高密度服务器,这种服务器长的一般是下图这样:
图 3 典型刀片机箱
这种性能怪兽在9u左右的狭小机柜空间内,可以做到数十个CPU、数十个以太网口、数百G内存有条不紊的一起开大会,健壮性比传统的塔式和机架服务器还要高。
图3中的刀片机箱是2010年左右的“古董”产品,现在由于虚拟化的普及,数据中心x86业务绝大多数已完成或正在进行虚拟化,芯片及硬件产业已经生产出计算密度更高的刀片机箱。吼吼,说到这儿我仿佛又听到了偶单位机房那几台高密刀箱全速运转发出的咆哮声,响亮浑厚但悦耳,象是在骄傲地宣告一个时代的到来。
二、“虚拟化”的前世
第一部分关于虚拟化的介绍都是基础性的,而且限定在服务器这个特定领域,因此多少有些狭隘且枯燥。这一段我尝试用我的理解重新诠释下“虚拟化”。虚拟化技术源自西方,他们自己的英文单词是“virtualization”,virtualization是virtual的名词形式,virtual的解释中既有“虚拟的“意思,同时含有”本质上的“,”事实上的“含义。”虚拟的“也是“本质上“的,其实蛮辩证的,因为”虚拟“其实就是抽象出来的”本质“。
我认为工程师和码农在x86服务器上最终设计出虚拟化也是一种必然,因为虚拟化本质是一种抽象能力,而作为地球上最成功物种的人类,我们牛逼的地方之一就是具有抽象能力,远古石窟和洞穴中留存下来人类祖先狩猎、战争、祭祀的简陋而模糊的石壁画就是一种抽象,都不是精确的“快照”,但这种抽象保存了关键信息,传达出了足够多的意义。原始的生存压力已经使得“抽象”能力成为一种进化所必须的能力而写进人类的DNA中代代相传。
图4 人类最古老的石窟壁画
图4为人类目前已发现的最古老石窟壁画,距今已3万6千多年,古人将当时的生活场景用一些二维线条的组合完成了第一份”虚拟化”作业,至今仍传达出清晰的信息和意义。我们可以认为当人类的祖先成功地作出这幅画开始,以后就没有什么能够阻止人类开始进入“开挂”模式,虽经万千磨难最终发展出今日的辉煌文明。
仔细想想,我们在生活中几乎所有事物上都能观察到“虚拟化“的思想及实践,绘画不说了,人类祖宗的象形文字和楔形文字就是虚拟化一个活生生的经典例子。今日互联网更是极致的体现了”虚拟化“,你不需要理解互联网的工作原理和它的存在形式,也不需要像网络工程师那样站在密集的设备和网线中直面它赤裸的骨架,或是像码农那样通过程序与软件理解它的逻辑,你只要会操作鼠标和键盘,会接上网线,恭喜你,你已经进入互联网世界了,计算机操作系统替你管理计算机的CPU、内存与存储等硬件资源及指令信号,将其虚拟化为“我的电脑”及你熟悉的C盘、X盘和一系列文件,互联网协议已经将分布在世界各地计算机上的文件虚拟化成你可以浏览的web以及web之上的各种应用,帮助你在互联网世界愉快的玩耍。
三、虚拟化的未来畅想
上文说到虚拟化的能力随着人类进化就开始具备了,人类对世界的一切理解都要抽象成各种符号集最后形成知识。虚拟化与互联网没有直接的因果关系,但自从互联网这个人类最牛发明产生,虚拟化无论作为技术还是思想都开始以史无前例的速度发展并深刻影响我们的生活。因此让我们继续围绕互联网聊虚拟化。
互联网预言帝凯文凯利谈到互联网科学家和工程师曾经注意到互联网中绝大多数的数据流都可以被追踪并分析出其来源和目的地,但总有一些数据不能分析其产生于哪里,目的地在哪里,这些不能对号入座的无主数据科学家和工程师都无法解释,只能猜测其为“涌现”(凯文凯利用的词是emerging,此处有无中生有之意)出来的数据,这个“涌现”出来的东西可能就是互联网的自我意识。凯文凯利受此现象启发于是大胆推测互联网是活的,是一种生命,这种生命形式我们目前尚无法理解。
谁都没有办法知道互联网将发展成什么样,和人类的关系会演变成什么样,凯文凯利也只敢说我们现阶段的互联网其实仍处于十分原始的阶段。小弟不才,在此更是只能提出一些无责任的猜想,依据是当前的一些苗头。
理论上互联网可以只是一种工具,可以直接与工业界结合,并成为工业界的重要基础设施,其作用和影响可对比参考秦直道、罗马大道、铁路网与公路网等。但此外互联网还有一个特质就是对人的粘性十分强大,而且这个粘性是变量,会持续增强,这个粘性对物理性(人的身体)的和非物理性(人的精神)的都有作用。看看周围成功的互联网产品或应用吧,细思恐极。
这种苗头如果成为一种趋势,未来将会怎样呢?大概和《黑客帝国》描述的情景类似。虚拟化技术高度发达,互联网直接虚拟出一个高度真实的“世界”,互联网用户(或黑客帝国中的人类)的生存和生活已经不能离开这些代码虚拟出来的“世界”了,见图5。
图5互联网世界的虚拟化本质
四、小结
肯定有人看完小弟上文的胡言乱语后甚感荒谬,小弟不才亦不敢反驳。但是我们——互联网的使用者不知不觉都在将自己的各种需求外包给了互联网是个不争的事实。天才而勤劳的码农不断使用代码的组合虚拟化出各种软件(web)界面和功能,这些“界面”及背后的“互联网”让我们能越来越轻松惬意的生活和娱乐。互联网越来越了解我们,也越来越聪明,因此作出下面这个预测似乎是顺理成章的——我们最终将哲学思考也外包给互联网,互联网则给我们提供一个“完美”的虚拟化世界。