离VMWare至Openstack 至FDIO
——软件虚拟化和硬件虚拟化相结合
作者:廖恒
以VMWare为代表的软件虚拟化技术在企业IT中已是耳熟能详的不争现实。据在HPISS任职的好友告知,VMWare等Hypervisor在企业server的预装率已达70%-80%。採用虚拟化技术不光是为了把一台大的物理机切分成很多台小的虚拟机来使用。还有运维、系统升级、软件可靠性提升等很多我所不全然熟悉的原因。
最有趣的故事来自于一个已运营了二十多年的发电厂。它的管理终端採用的是早已绝种的IBMPC-AT(80286CPU)MS-DOS,还跑了Norvell网。採用的是ISA总线NE-2000的网卡。
二十年前的发电厂依然日复一日地烧燃料、产生电力。仿佛现实世界早已被凝固在投产的那一天。设计管控系统的供应商早已变身多次涅磐归西。但设备还得继续工作。它的键盘、显示器早已被替换多次,主机和备用的硬件也逐一坏损。好在当年的DOS还能在现代的PC上执行(感谢一贯努力的BIOS设计者维护了完美的前向兼容)。可是,ISA网卡早已没有替换的配件,即使是有,也早已买不到带有这样的总线的PC。当最后一台IBMAT报废之后,是否发电厂就会如世界末日来临一样停止发电,造成城市的瘫痪呢?这是一个有关恐龙的故事。现实世界里,IT设备有的停留在侏罗纪,有的却已提前进入了小灵通的未来世界,怎样去跨越这个时代的鸿沟?——虚拟化!大家不用操心可怕的大停电事件。仅仅要买台PC。装上一个Hypervisor。NE-2000的虚拟网卡Driver还在,EGA显卡模式也还在,所以一台2014年的Inteli7 CPU的PC就自己主动变身为一个1989年的 IBM-PC AT,带了NE2000网卡!
当5年前我開始定期对世界最大互联网数据中心開始一年两三轮的巡游遍历的时候。我惊呼到“差点儿没有人在用Hypervisor!
” 时至今日。这个现状除了提供公有云业务的数据中心之外,依旧少有改变。究竟是什么造成了企业IT和互联网数据中心之间如此大的不同?难道互联网数据中心不想得到企业IT管理员从虚拟化中得到的诸多优点吗?
利益——TCO。ROI,EPS,还是最根本的答案。
以BAT、Google、Facebook为例的超大型数据中心,它们的应用差点儿每个都远远大于单个节点的计算和资源能力,因此一个以把一台物理机切分成更小的虚拟机、并在单机内部的虚拟机之间进行资源分配调度为主要技术基石的Hypervisor技术,对一个scale-out的机群调度有些力不从心。也没有多少必要。
另外。软件虚拟化技术在I/O资源訪问上,存在必定引入的额外开销。
因而,你跑了10G网络,跑上复杂的协调。可能就已损耗了一定比例的CPU资源,你最新的SSD通过虚拟化层,看到的延迟可能就不再是微秒级。IOPS不再接近百万次。
因此。今天的虚拟机在分秒必争的互联网世纪就抵只是裸体的物理机(BareMetal),由于採用了影响效率的虚拟机。就须要部署很多其它硬件来支撑相同的业务负载,这就须要花费很多其它成本。
那虚拟化带来的额外开销能否够避免呢?这一点并非十分困难。
SRIOV等硬件技术能够在虚拟机和硬件之间建立一个直通的路径。故此在I/Opath上能够消除虚拟机的影响。
实际上从5年前開始,我们(PMC-Sierra)设计的SAS控制器、SSD控制器等,在硬件上就已经支持了SRIOV。
但时至今日。却没有找到理由(BusinessCase)来打开这些功能。原因除了须要开发额外的软件(固件)来支持SRIOV,用户不愿意为这些新功能支付额外的价钱。再有。就是软硬(剑、气)二宗之间的互相争斗——Hypervisor假设放弃了I/OPath被直通透过,那Hypervisor就失去了在此通道上实现虚拟化高级功能的机会(如软件定义网络、软件定义存储),这在最近除了是个Revenue的问题。更是一个有关控制权的争夺。
在此作者总结出了的一个有关体系结构软硬取舍定律:
凡是软件能实现的,就不须要硬件实现。再推进一步,凡是上层软件(应用)能实现的,就不须要系统软件来实现。凡是Driver能做的,就不须要固件。凡是通用技术能实现的就不须要专用技术。
因此,剑宗的弟子,不到万不得已是绝对不会学练气功的!
这个定律,经笔者观察IT业多年的技术发展。差点儿没有找到特例。
这里引入大发明家Thomas Edison的一句话:I will never inventsomething the mass do not need again!(我绝不再发明大众不须要的东西了!
)
半导体业的发展故事就是硬件架构师们一次次的穷途末路。重新次柳暗花明。公司轮替、改朝换代就时时发生。硬件之出路仅仅能是:
“不断创造仅仅有通过硬件手段才干达到的独特价值”。
回到超大规模互联网数据中心。前面提到的以公有云服务(Paas)为主的数据中心确实已经广泛部署了Hypervisor。并以虚拟机技术为核心,把虚拟机单位作为商品出售。最有名的要算AmazonAWS,Microsoft Azure,还有国内的阿里云。这些不同的实现详细採用的Hypervisor技术各有不同(Hyper-V, VMWare。Zen,KVM),但基本原理均相似。同一时候前面所述的性能开销也不同程度地存在于这些实现上。
有意思的是这三家巨头既提供云服务。本身又拥有大量的互联网服务(如Bing,Hotmail,Taobao,电商等),其它家作者没有直接的途径来确定,但微软多个Property(业务部门)的总架构师都一直告诉我。在公司集团内部,有明白的目标,要求各业务部门都把业务系统移植到Azure平台上。
(即不採用各自独立、专有的数据中心系统的软硬件平台,而作为用户跑在统一的Azure平台上)。这个过程是缓慢而缺少积极性的。五年过去了,最终有些业务逐渐跑到了虚拟化的Azure平台上,这也就是说总算有了些大型的互联网业务在基于虚拟化的Azure的云平台上)。不知阿里、亚马逊是否也有相同的中长期目标。使得集团数据中心的整体资源得到统一和整合。
这个当前业务部门利益和集团长期利益之间的权衡。相信终会把互联网业务推向云平台。
故此。虚拟化技术作为主流互联网业务的运营平台,能够猜測为中长期的趋势。
在Rack Space等云计算商家的推动下,Openstack作为一个开放式的虚拟化平台应运而生。
眼下。Openstack基于LinuxKVM虚拟化技术,能够对计算资源在机群上作协调管理,也有基于OVS的软件定义网络,以及相对原始低能的存储资源管理体系的建立。假设和VMware、AWS、Azure相比,能够说仍然处在学习和模仿的阶段。但作为一个全然开源的云平台(还有CloudStack等),它所吸引的IP资源是十分可观的。假设Linux在互联网全然击败其它商业OS的历史经验可借鉴的话。我们对Openstack取得的飞速进步和终于前景是十分乐观的。
再跨界回到硬件的体系中来看,Intel RSA、PMCFDIO、Facebook的OpenCompute等体系均着眼于下面共同的目标,即在Rack或POD级(几十到上百个server规模的机群)以硬件手段实现物理上相对分离的各种资源池,并在云平台软件的管控下对硬件资源之间实现动态的绑定(binding),这也就是说,整个机架成了一个全硬件的Hypervisor。实现物理机之间的动态资源分配和共享、迁移,这些硬件资源可全然呈如今软件的管理之下。
当单机内的软件虚拟化技术(KVM)和机群内物理机之间的硬件虚拟化(FDIO,RSA)再和云平台管控(cloudorchestration)的Openstack技术相结合,就会产生出新一代革命性的云软硬混合式的平台。这也是全软件定义数据中心的各门跨界架构师所追求之圣杯(HolyGrail)。同一时候也是我们机架硬件体系的一个參考设计。即Openstack+FDIO实现机架内的物理资源全然池化和在整个机群上的虚拟机之间的不受限的自由分配、共享和迁移。
剑气两人再次这一。
版权声明:本文博主原创文章,博客,未经同意不得转载。