离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. Python的控制结构(转)

    首先我的工作第一语言是c/c++(面向对象子集).选择学习python一方面是因为看很多人都说python开发效率高,所以想验证一下:另一方面,Eric S. Raymond在文章:如何成为一名黑客 ...

  2. Windows Server时间服务器配置方法

    1 时间服务器经常会碰到客户端机器需要和服务器在时间上保持同步,否则会出现各种问题,特别是有时间相关的触发功能的时候. 为解决各设备间时间统一的问题,我们可在网络中设置一台服务器使其作为基准时间,其它 ...

  3. 如何收集 EBS 各种相关业务的表的数据

    1. Receiving 相关 參照 Note: 402245.1, 跑 rcv11i_sa.sql 就能够, 输入 po number, 其余默认. 參照 Note: 1294177.1, 假设上面 ...

  4. Redis的字典(dict)rehash过程源代码解析

    Redis的内存存储结构是个大的字典存储,也就是我们通常说的哈希表.Redis小到能够存储几万记录的CACHE,大到能够存储几千万甚至上亿的记录(看内存而定),这充分说明Redis作为缓冲的强大.Re ...

  5. Knockout应用开发指南 第三章:绑定语法(3)

    原文:Knockout应用开发指南 第三章:绑定语法(3) 12   value 绑定 目的 value绑定是关联DOM元素的值到view model的属性上.主要是用在表单控件<input&g ...

  6. css中换行的几种方式

    1.white-space:normal;   这个只针对中文有效 2.word-break:break-all;  强制换行,针对中文,数字,英文等都有效: 3.word-wrap:break-wo ...

  7. ecshop2.7.3怎么自动清除缓存

    1.在ecs_shop_config表中插入一条数据 进入ECSHOP后台-数据库管理-SQL查询 复制下面SQL,粘贴到里面执行.注意这时是默认表前缀ecs_,如果你的修改过要和你的统一了. INS ...

  8. DataTable筛选器

    //datatable筛选器,函数包装模板:传入源table,目标table,db名,多表查询table,列条件数组,where筛选列,selsect筛选列 public DataTable Filt ...

  9. 2014华为机试西安地区B组试题

    2014华为机试西安地区B组试题 题目一.亮着点灯的盏数 一条长廊里依次装有n(1≤n≤65535)盏电灯,从头到尾编号1.2.3.-n-1.n.每盏电灯由一个拉线开关控制.開始,电灯所有关着. 有n ...

  10. 关于Core Location-ios定位

    IOS中的core location提供了定位功能,能定位装置的当前坐标,同一时候能得到装置移动信息.由于对定位装置的轮询是非常耗电的,所以最好仅仅在非常必要的前提下启动. 当中,最重要的类是CLLo ...