离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实现机架内的物理资源全然池化和在整个机群上的虚拟机之间的不受限的自由分配、共享和迁移。

剑气两人再次这一。

版权声明:本文博主原创文章,博客,未经同意不得转载。

V离MWare至Openstack至FDIO的更多相关文章

  1. 025-Cinder服务-->安装并配置一个本地存储节点(ISCSI)

    一:Cinder提供块级别的存储服务,块存储提供一个基础设施为了管理卷,以及和OpenStack计算服务交互,为实例提供卷.此服务也会激活管理卷的快照和卷类型的功能,块存储服务通常包含下列组件:cin ...

  2. OpenStack v.s. Kubernetes

    目录 文章目录 目录 What are the differences with OpenStack and Kubernetes? Why OpenStack & Kubernetes? W ...

  3. 完整部署CentOS7.2+OpenStack+kvm 云平台环境(1)--基础环境搭建

    公司在IDC机房有两台很高配置的服务器,计划在上面部署openstack云平台虚拟化环境,用于承载后期开发测试和其他的一些对内业务.以下对openstack的部署过程及其使用做一详细介绍,仅仅依据本人 ...

  4. Openstack api 学习文档 & restclient使用文档

    Openstack api 学习文档 & restclient使用文档 转载请注明http://www.cnblogs.com/juandx/p/4943409.html 这篇文档总结一下我初 ...

  5. OpenStack云计算快速入门之二:OpenStack安装与配置

    原文:http://blog.chinaunix.net/uid-22414998-id-3265685.html OpenStack云计算----快速入门(2) 该教程基于Ubuntu12.04版, ...

  6. openstack api快速入门

    原文:http://my.oschina.net/guol/blog/105430 openstack官方有提供api供开发者使用,可以使用api做一些外围的小工具,用来简化对openstack的管理 ...

  7. 理解 OpenStack 高可用(HA)(3):Neutron 分布式虚拟路由(Neutron Distributed Virtual Routing)

    本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...

  8. Mirantis OpenStack 8.0 版本大概性分析

    作为 OpenStack 领域标杆性企业之一的 Mirantis 在2016年3月初发布了最新的 MOS 8.0 版本.本文试着基于公开资料进行一些归纳分析. 1. 版本概况 1.1 概况 社区版本: ...

  9. OpenStack 企业私有云的若干需求(6):大规模扩展性支持

    本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...

随机推荐

  1. HDU 4916 树分治

    Mart Master II Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  2. 〖Groovy〗语言使用贴士(Tips)(转)

    [Groovy]是一门运行在[JVM]之上的动态语言.由[James Strachan]和[Bob McWhirter]于2003年启动开发,之后于2004年3月成为[JSR 241](Java Sp ...

  3. IIS总提示输入用户名和密码

    解决办法: 第一步,在"运行"中输入"gpedit.msc"调出组策略设置. 找到计算机配置-管理模块-windows 组件-internet控制面板-安全页- ...

  4. 关于margin-right的应用问题

    今天在群里面,有人抛出了一个关于css中margin-right没有效果的问题.CSS代码和HTML代码例如以下: .style1{ width:400px; height:440px; backgr ...

  5. SCSI miniport 驾驶一个简单的框架

    前段时间,只需用一台新电脑,由于资金有限没有匹配了心仪已久的SSD.我没感觉到飞翔的感觉,总不甘心,仔细想想.我死了相当大的存储,我们可以假设部分内存作为硬盘驱动器把它弄出来.不会比固态硬盘的速度快, ...

  6. UVA 707 - Robbery(内存搜索)

    UVA 707 - Robbery 题目链接 题意:在一个w * h的图上.t个时刻,然后知道一些信息,每一个时刻没有小偷的矩阵位置,问哪些时刻能够唯一确定小偷位置.和确定小偷是否已经逃走,假设没逃走 ...

  7. sql语句用'in'执行多条语句时候,执行错误的解决方法

    一般报错是出现,无法将nvarchar类型转换为int类型 这是因为 SqlParameter  带参数  是不能用  , 分割的. 第一种解决方法就是  不用 SqlParameter  带参数的s ...

  8. CSS检测的高像素密度屏幕设备

    iPhone4尽管是640px解析度,但它的屏幕宽度(device-width)目前只有320px和iPhone3G相同.只是iPhone4S的像素密度2. 然后使用meta viewport什么时候 ...

  9. Android 反编译(一,apktool+smail2java)

    一:解压缩(获取图片等资源) 对于apk中丰富的资源,假设我们在练习的时候须要引用某些apk中的资源文件时,最简单的办法使用解压缩工具对apk进行解压缩,然后在对应的文件夹下查找须要的资源文件. 二: ...

  10. POJ 2914 Minimum Cut 最小割图论

    Description Given an undirected graph, in which two vertices can be connected by multiple edges, wha ...