虚拟化技术,并不是皇帝的新装
大概六七年前,虚拟化刚开始热的时候,有个猎头公司的美女问我,“虚拟化是什么?如果我使用虚拟化服务,网络上真的有一台机器,有一个磁盘给我用吗?我能知道机器和硬盘在哪儿吗?”我说,不会指定某一台机器,或者指定某一块硬盘给你来用。你也不会知道硬件的具体位置的。于是她感叹道“虚拟化不会就是皇帝的新装吧!”我说不是的,但一时又不知如何能简单明了地让她理解。后来我思考了许久,觉得误解也许来自于它名字里的“虚”字。
虚拟化技术,英文为Virtualization。我个人觉得这个名字起得并不好,也许这并不是翻译的问题,英文直译过来就是这样。但是我们应该明确,虚拟化并不是玩“虚”的,虚拟化是真实的硬件通过技术来实现共享,来实现动态架构和业务弹性。日常生活中,我们共享办公室,共享会议室,共享洗手间,我们不会称这些为“虚拟化的办公室”、“虚拟化的会议室”和“虚拟化的洗手间”。那么,对于按照预定策略动态共享服务器CPU、内存、IO、磁盘等等资源的技术,我们为何称之为“虚”的呢?如果有机会重新命名,也许称之为“共享化”或“分享化”更好理解。毕竟,咱们是诚信社会,不爱玩“虚”的。
相信大多数人了解虚拟化是从PC机上安装VMware、Sun VirtualBox (Oracle收购后更名为Oracle VM VirtualBox)等软件开始的。也许有人告诉你虚拟化技术已经有40多年的历史了。但是,VMware公司是1998年成立的,40多年前还没有Windows,UNIX也刚刚出现,现在常见的商用UNIX系统,如IBM的AIX是1986年才发布的。那么40多年前的虚拟化技术是运行在啥平台上的?答案是IBM大型机。
虚拟化技术最早出现在上世纪60年代的IBM大型机上,在70年代的System 370系列里逐渐流行起来。为啥大型机上会有这项技术出现呢?因为需求,省钱的需求。不用说,大型机很贵的。大型机可靠性很高,资源利用率达到99%时,仍然能够不宕机。这样的机器如果资源闲置是不是太浪费了。所以要让它尽量多干活,同时干很多个任务。那么这些任务如果互相干扰咋办?隔离开。虚拟化技术于是诞生了。
现在IBM POWER小型机上的PowerVM虚拟化技术就是借鉴了大型机上的虚拟化技术研发出来的。IBM POWER4(2001年发布)上即开始采用虚拟化技术,不过那时只是LPAR和DLPAR(需要AIX 5.2以上)。CPU只能按整数来分,IO卡只能按插槽来分,资源分配后不能自动按预定策略来动态调整。POWER5(2004年发布)开始有CPU共享池和IO虚拟化,常用的虚拟化功能已经比较完善了。上面提到的功能都可以实现了。POWER6(2007年发布)以后又出现了一些LPM动态分区迁移这样的高级功能。同时,IBM也开发出了一些没被市场认可的高级功能,如AMS (Active Memory Sharing),AMD(ActiveMemory Deduplication)。
在IBM 2001年发布POWER4的LPAR分区技术和2004年发布POWER5的APV(Advanced POWER Virtualization,译为高级POWER虚拟化技术,后更名为PowerVM)时,VMware、Xen、KVM和Hyper-V都还没有多少市场份额,功能也还很初级。毫不夸张地说,在企业级的POWER服务器和PowerVM虚拟化技术面前,当时的这些“小”软件只能算“玩具”,还不能在企业级应用环境下与PowerVM来一争高下。
时间能够改变一切。对于IT技术来说尤其如此。10年已经是一个相当长的时间了,足够一个IT公司从诞生到辉煌,或者从辉煌到被并购的了。现在提到虚拟化技术,还有多少人会第一个想到IBM,想到PowerVM?VMware的地位似乎已经不可动摇。这也许不是VMware的胜利,而是x86的胜利。但是,我想这一切都是暂时的,有百年历史的IBM正在开放POWER硬件技术,其他虚拟化的竞争者借助openstack等开源云平台技术也在奋起直追。未来虚拟化技术的角逐中谁能领先一步,还未可知。
扫一扫,关注微信公众号“荣歆IT咨询”,享免费服务。