虚拟器件—虚拟化技术的新利刃 | 时光机


戳蓝字“CSDN云计算”关注我们哦!

640?wx_fmt=jpeg

时光机:搭载这部时光机,带您回顾《程序员》大量优秀文章,重温经典技术干货,我们发现硬核技术永不过时,对于get要点、solve难题、提高自我,仍有非凡意义。


作者:吴朱华,北京大学硕士研究生,PMP、云 计算的爱好者。在云 计算概念未诞生前, 已在IBM中国研究院 专注于相关研究,并参与多个IBM核心 云计算产品的开发工作。对软件工程发 展有浓厚兴趣。个人网址:http://www. peopleyun.com 。

近几年,虚拟化技术飞速发展,越来越多的企业开始使用虚拟化技术提高系统管理的自动化程度和应用的快速部署,本文将为您揭开虚拟化技术的新利刃——虚拟器件的神秘面纱。

 

最近几年,越来越多的企业开始使用以VMware和Xen为代表的虚拟化技术,这些技术给他们带来了很多方便,特别是在服务器整合方面。例如一汽大众的IT部门通过实施VMware的虚拟化技术,将原先部署于100多台服务器上的应用整合到了40多台服务器上,有效地降低了运营成本和系统管理的复杂度,并且提升了服务器资源的利用率。

 

由于虚拟化技术的飞速发展,它在提高系统管理的自动化程度和加快应用的部署速度这两方面的潜力越来越多地受到关注。可惜现在大多数管理员在系统管理方面还是沿用之前物理机时代常用的方式和方法,特别是在部署应用的时候,经常从头装起。

 

这不仅有碍于系统管理的自动化和应用的快速部署,而且会带来以下问题:


1.每次部署应用都需要花很多时间在操作系统等软件的安装、配置和优化上。


2.由于SOA这个概念在企业的不断深入,以服务为单位的多层架构已经渐趋主流,这与传统“单系统”为单位的部署模型不吻合。


3.很多企业都部署了多个虚拟化技术平台,比如VMware、Xen等等这将导致出现很多不兼容的情况。


4.缺乏安全认证和许可证管理等措施。


在这个时刻,VMware这个虚拟化技术领导者提出了虚拟器件(VirtualAppliance)的概念,主要用于应用发布和部署。因为它不仅支持跨平台、预配置、多层架构,而且在安全性等方面有所覆盖。因此,虚拟器件这个概念,在短短的时间内就被广泛接受,并成为美国人口总署等机构企业内部推荐的应用发布格式。

 

同时VMware也带头提出一套开放协议来支撑其发展,称为“OVF”,具体将会在下文介绍。那么虚拟器件具体是指什么呢?本文将主要从概念角度向大家介绍。


虚拟器件的定义


虚拟器件,是一个预配置的软件堆栈,包括1个或多个虚拟机,每个虚拟机都自带操作系统和相关应用,可以自运行,并明确了其所需的虚拟资源。它常用的发布格式是基于POSIX1003.1ustar标准的以.ova为后缀的压缩包,简称为“OVF包”。


那么虚拟器件和我们常用的虚拟机相比增加了对哪些功能的支持呢(参见表1)?


640?wx_fmt=png


虚拟器件的主要组成部分


虚拟器件的主要组成部分包括哪些呢?以下是OVF包所包含的主要文件(见图1):


640?wx_fmt=jpeg


图1OVF包的结构OVF描述文件(.ovf):通常称为“OVF信封”,此文件定义了整个虚拟器件的组成部分,及每个组成部分的特性和资源需求,以支持对OVF包成功和一致的部署。磁盘镜像文件:可以是多个,这些文件是此虚拟器件所包含的虚拟机的二进制磁盘镜像。

 

清单文件(.mf):清单包含OVF包中各文件的SHA-1摘要,其作用是确保包的完整性,一般由工具生成。证书文件(.cert):证书的作用是通过对清单文件进行数字签名来确保这个虚拟器件的真实性,以base64-encodedX.509证书的形式存储,也一般由工具生成。


虚拟器件的生命周期


基于一定规模的实践,我们总结出了虚拟器件的生命周期,主要包括六个阶段:开发、封装、部署、激活、管理和退休(见图2)。

 

640?wx_fmt=jpeg


开发


分析应用的环境需求。准备和启动一个或多个操作系统虚拟镜像,比如Ubuntu9.10。安装支撑应用的软件,比如MySQL5.1,ApacheTomcat5.5等。安装和配置应用,比如WordPress,SugarCRM等等。安装用于激活的软件,比如IBM的ActivationEngine。优化系统和软件设置。


封装


编写OVF信封(推荐使用OVF工具)。将虚拟镜像和OVF信封等封装成OVF包(推荐使用OVF工具)。在本地,对OVF包进行测试。


部署


在虚拟化平台上面(比如VMwarevSphere4)部署OVF包。

 

启动


已经部署成功的虚拟器件。


激活


激活已部署虚拟器件的网络和软件设置,比如设置其IP地址。


管理


观测其资源利用率和SLA,比如查看其CPU的利用率。


退休


删除或者存档这个虚拟器件,并释放其之前占有的虚拟资源。以虚拟器件生命周期为核心的管理模式,将极大地提高数据中心的自动化程度,并加快应用的部署。

 

因为它将一系列纷繁复杂的步骤流程化并尽可能地自动化,使得虚拟器件在系统管理和应用部署这两方面的价值发挥到最大。


虚拟器件的好处


虚拟器件的好处除了上文提到的系统管理自动化和应用的快速部署这两方面之外,还有很多其他好处。接下来,将通过分角色来深入探讨虚拟器件将对整个IT生态系统带来的帮助:


独立软件开发商(IndependentSoftwareVendors)降低了应用的开发和测试成本。

 

因为假如使用虚拟器件作为发布格式的话,开发人员能限定应用自带的操作系统,中间件和数据库等软件的版本,比如Ubuntu9.04,ApacheTomcat5.5,MySQL5.1等。这样将极大地缩小了开发、测试和支持的范围,能有效地降低软件的总体成本。


这和MacOSX的成本比Windows的低是一个道理,因为其所支持的硬件和软件和Windows相比要少得多。加快发布的进度和扩大市场范围。因为有意向的用户,不论在世界哪个地方,只需要几小时,甚至几十分钟的时间,就能从网上成功下载这个软件的虚拟器件版本,并且只需将它部署到其支持虚拟平台(比如VMwarevSphere4)上即可使用。

 

这方面有一个不错的案例,爱尔兰有一家安全软件公司叫SpamTitan,在使用虚拟器件作为发布格式之前,它有80%的客户是在英国。而在它使用虚拟器件作为发布格式之后,情况变成只有10%的客户来自英国,40%的客户来自美国,还有来自印度、中国和新西兰的客户,同时销售量也增长了一倍。安全。

 

因为虚拟器件包含清单文件和认证文件,在部署的时候,工具会查看这两个文件以判断此虚拟器件的安全性。如果有任何安全隐患,将会取消部署。提供许可证管理。每次部署的时候,工具会让用户确认一下虚拟器件自带许可证,这样能保护应用供应商的权益。


云供应商(CloudHostingProvider)能支持多层架构的应用。

 

假如用户要在云平台上部署以LAMP和J2EE为代表的多层架构的应用,一般都需要一系列繁琐的步骤,但如果使用预配置的虚拟器件,就只需要点击一下就可以了,极大方便了用户。基于虚拟器件模型能使应用跨云供应商。通过这种方式,能避免出现供应商锁定(VendorLock-in)的情况,这样将会提高用户使用公用云的积极性。


系统管理员(Administrator)方便了应用的部署。

 

以笔者过来的经历为例,如果使用虚拟器件方式部署的话,能将本来需要几天的工作缩短到几分钟,能将本来几十步操作精简到鼠标的轻轻一击。降低维护和购买成本。因为操作系统、中间件和数据库等软件都是应用自带的,且多数为开源软件,这将极大地降低购买成本。同时,它们的维护和优化一般由应用供应商负责,这也将降低应用维护成本。

 

方便应用从本地数据中心迁移到公有云上,避免为了短时间的高峰需求,而预先购买大量的硬件。单一供应商,能降低寻求技术支持的难度。因为如果虚拟器件出现问题,不论问题的根源是操作系统还是中间件,系统管理员都可以直接和应用供应商进行联系,寻求帮助。

 

快速和安全。因为应用的自带操作系统,大多都是JeOS(JustEnoughOperatingSystem),而JeOS所包含的服务和标准操作系统相比有很大的精简,有助于提高系统的安全性和速度,并降低系统所占用的资源。


虚拟技术供应商(VirtualizationVendor)


降低了虚拟化技术使用的复杂度,从而使虚拟化技术受到更多的认可。能通过建立类似苹果AppStore的虚拟器件市场来推广和销售虚拟化应用。

 

OVF协议


为了让虚拟器件得到大规模的应用和更好的发展,避免每个供应商都创建和使用各自私有的规范,以VMware为代表的虚拟化技术提供商在2007年10月提出了OVF(OpenVirtualizationFormat)规范。它是用于发布和部署虚拟器件的开放标准,由业界著名DMTF(分布式管理任务组)协会制定和发布。

 

该标准描述了一种开放、安全、可迁移、有效、跨平台以及可扩展的格式,用于封装和分发在虚拟机上运行的软件。从虚拟器件的生命周期来看,OVF1.0协议主要覆盖“封装”和“部署”这两个阶段,OVF协议的今后版本有可能将覆盖其他阶段。

 

OVF的设计目标如下:


方便分发。包括对数据的认证和其完整性的检验,并提供基本的软件许可的管理机制。支持多种配置。包括单个虚拟机、多个虚拟机或者多层架构。跨平台。OVF协议不依赖于特定的虚拟化平台,比如VMware或者Xen。开放协议。OVF协议是业界几大虚拟化技术供应商之间合作的产物。可扩展的。

 

OVF协议能满足现有的要求,同时为了满足虚拟器件技术不断发展和某些特殊的需要,它还支持一定程度的扩展。支持本地化。


业界支持


虽然OVF协议发起人和主要负责人都是来自于VMware,但因为其开放性和重要性,使得越来越多厂商开始支持此协议,甚至VMware的竞争对手Xen/Citrix和虚拟化的开创者IBM也参与了协议的制定。


同时有一系列支持OVF的工具已经发布或者正处于测试阶段,比如VMware的VMwareStudio、Xen/Citrix的ProjectKensho、IBM的IBMOVFToolkit等。除了上面这些支持OVF的工具,VMware为了加速虚拟器件的传播和OVF协议的推广,还推出一个用于分发虚拟器件的在线市场,叫做VAM(VirtualApplianceMarketplace)。

 

它提供类似于苹果AppStore的用户体验来帮助用户来购买和试用各式各样的虚拟器件,从应用程序到操作系统应有尽有,还包括一些工具和推荐信息来帮助用户做正确的决定。同时,更值得庆贺的是VAM目前已经是VMware最受欢迎的五大站点之一了。


除了上面提到虚拟界的三大巨头之外,一些中小公司也推出很多支持OVF格式的工具,比如Novell的SUSEStudio、rPath的rBuilder等。


虚拟器件的不足之处


前面谈了很多虚拟器件的优点,在文章的收尾部分,和大家谈谈虚拟器件现有的一些不足之处:虽然OVF协议支持跨平台,但因为镜像格式的限制,绝大多数现有的虚拟器件都无法跨平台,因为现有的虚拟器件主要使用VMware的VMDK作为镜像格式,而此格式是私有格式,不支持非VMware的平台。


有时由于安全的考虑,一些企业会对软件进行一定的控制,特别是操作系统。假如使用虚拟器件,就很有可能使企业失去这方面的控制。很难对现有的虚拟器件进行有效的更新。因为现在常用更新方式是以虚拟器件为单位的,也就是说,假设要更新这个虚拟器件,首先要重新下载一个新版本的,之后将用新版替换旧版。这样的话,就很难在现有的虚拟器件基础上做细粒度的更新了,更别谈在线更新。

 

还有,就算这个虚拟器件内置在线更新,也很有可能由于企业防火墙的原因,而无法访问外网得到新的补丁。虚拟器件所需的空间比单纯的应用大得多,其所需要的下载时间和带宽都比只下载一个简单软件大得多,因为至少附带一个操作系统。对于那些安装非常方便且容量小的软件,虚拟器件有可能不是最佳的发布方式。对现在整个IT生态系统影响太大,特别是对操作系统供应商,因为在虚拟器件这个模型里面,操作系统不再是其核心,而是软件堆栈普通的一层而已,这样将降低操作系统供应商在整个IT生态系统的重要性,可以预见这种转变并不是它们所期待的,尤其是微软,因为现有的Windows的架构和商业模型不是非常适合JeOS的。

 

虚拟器件和云计算


虽然并不是所有的云计算平台都用到虚拟器件,但是对那些基础设施服务(IaaS)的云计算平台而言,却是非常核心的。因为通过使用虚拟器件,能提高基础设施的自动化程度,并且加快应用的部署,只需要简单的点击,就可以将应用部署到它们的云计算平台上。

 

在业界,已经有了很多的成功例子,最出名的就是AmazonEC2,它默认的部署方式是AMI(AmazonMachineImages),其可以被认为是Amazon格式的虚拟器件。同时在国内,作为第一批专注于虚拟器件研究的团队,IBM中国研究院的虚拟化和云计算团队,已经完成一整套基于虚拟器件的云环境管理解决方案。


总结


虚拟器件不仅在技术、规范和工具这三方面已经有一定的积累,而且其创始者和最大支持者是业界巨擎VMware。从这个两点,可以看出虚拟器件未来的推广之路应该会比较顺利。同时希望今后能有机会给大家再写一篇文章,能从实践的角度,来指导大家如何使用工具来创建符合OVF标准的虚拟器件。

 

640?wx_fmt=png


640?wx_fmt=jpeg


福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


640?wx_fmt=jpeg


推荐阅读:

  • 太形象了!什么是边缘计算?最有趣的解释没有之一!

  • 互联网出海十年

  • 华为员工年薪 200 万!真相让人心酸!

  • 天才程序员:25 岁进贝尔实验室,32 岁创建信息论  琥珀  极客宝宝  5天前

  • 安全顾问反水成黑客, 靠瞎猜盗得5000万美元的以太币, 一个区块链大盗的另类传奇

  • 人造器官新突破!美国科学家3D打印出会“呼吸”的肺 | Science


640?wx_fmt=png真香,朕在看了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523698.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git从远程库克隆

首先,登陆GitHub,找到我们的learngit项目 第一种方式(老手建议):通过命令将远程仓库的代码,拉取到本地,文件夹形式。 第二种方式(入门建议):将远程的项目代码下载到本地,压缩包形式。 复制…

图解分布式架构的发展和演进 | 技术干货

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!编注: 架构决定的系统的稳定性,扩展性和并发性,架构的演进是从…

C++中链表反转2

引言 周期按我也写过类似链表反转的文章,这个链表反转是在第二次写的时候写的,由于都是靠当时的思路,两个在代码实现上有所差异,仅以记录。 示例 编程环境 在vs2010下编写的C控制台输出程序,文件名由main.cpp改为t…

阿里云PolarDB重大更新:两大技术突破,传统数据库一键迁移上云

5月21日,阿里云PolarDB发布重大更新,提供传统数据库一键迁移上云能力,可以帮助企业将线下的MySQL、PostgreSQL和Oracle等数据库轻松上云,最快数小时内迁移完成。据估算,云上成本不到传统数据库的1/6。目前,…

Spring精华问答 | Spring Bean的自动装配是怎么回事?

戳蓝字“CSDN云计算”关注我们哦!Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分J…

华为正准备发布属于自己的手机操作系统;腾讯已经交出了首张产业互联网成绩单……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 第二代Google Glass 企…

qt实现QLabel上显示的文字有描边

qt实现文字描边效果图开发环境项目示例综述效果图 此程序运行的效果。 开发环境 1.关于我的开发环境,我目前有点迷惑,我的QtCreator中帮助-》关于QtCreator,得到如下所示: 但是我的安装包上却写着5.12.9 我的理解就是qt版本是…

kappa和lambda对比 | 程序员硬核评测

戳蓝字“CSDN云计算”关注我们哦!程序员硬核评测:客观、高效、不说软话。无论是技术质量、性能水平,还是工具筛选,一测便知!作者:浪尖转载:Spark学习技巧首先我们会详细的讲解这两种架构&#x…

git提交代码的时候出现fatal: Could not read from remote repository.

引言 当在git使用中出现这样的提示的解决方法。 解决方法 我采用重新获取ssh-key的方法,关于具体的操作,可以查看博文: https://www.cnblogs.com/janve/p/10946630.html。 实际上具体的步骤,就是下面几句: ssh-key…

边缘计算精华问答 | 火爆的边缘计算为何兴起?

戳蓝字“CSDN云计算”关注我们哦!随着物联网在全球各行业中越来越普遍,企业们发现了云计算的不足,它不是解决所有问题的答案。此外,如果只有云计算,物联网项目不能充分发挥其潜力,特别是在实时分析&#xf…

腾讯优图贾佳亚:当AI进入产业应用时代时,计算机视觉技术更应该服务于人才对!...

戳蓝字“CSDN云计算”关注我们哦!从移动支付的自动贩卖机到刷脸支付的智能货柜;从亲自到柜台验证到人脸核身远程开卡;从排队买票、排队进门的糟糕旅游体验到提前预约,刷脸入园的智慧旅游……在昆明的腾讯全球数字生态大会AI 分论坛…

使用AWS CloudWatch 调优Lambda函数 | 技术头条

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!译者:风车牛马整理:刘丹Kyle Galbraith,高级软件工…

ARM到底是一家什么样的公司?

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!作者:小枣君转自:鲜枣课堂这两天,一家叫做ARM的公司…

Visual Studio中输入英文会在字母之间自动增加空格

现象 不小心按了什么键之后字母之间增加了空格,如下面: ![在这里插入图片描述](https://img-blog.csdnimg.cn/b211b973b9c8470fae4402161ddb3935.png 解决办法 针对上面图片中显示的这种英文字母之间出现空格,是输入法出现了问题。恢复的…

C中指针与成员变量生命周期的示例

引言 本文针对于碰到的指针做一些记录。详见下面的示例。 示例一 返回char类型指针&#xff0c;使用局部静态数组。 #include <stdlib.h>char * GetTestMemory(void) {static char p[] "hello world";printf("src%x\n",p);//数组首地址printf(&…

从Spark Streaming到Apache Flink: 实时数据流在爱奇艺的演进 | 技术头条

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;作者&#xff1a;陈越晨转自&#xff1a;高可用架构本文将为大家介绍Apache Flink在爱…

Storm精华问答 | Storm的配置需要注意什么问题?

戳蓝字“CSDN云计算”关注我们哦&#xff01;Apache Storm是一个分布式实时大数据处理系统。Storm设计用于在容错和水平可扩展方法中处理大量数据。它是一个流数据框架&#xff0c;具有最高的摄取率。今天&#xff0c;我们就挑一些Storm的安装配置问题来看看吧。1Q&#xff1a;…

这可能是把策略模式讲的最通俗易懂得文章了!

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;周末无事&#xff0c;窝在家里面看《权力的游戏第八季》&#xff0c;看的很是津津有味…

C++中动态数组实现

实现动态数组动态数组示例代码运行环境运行效果动态数组 动态数组Vector可以动态扩展内存&#xff0c;其采用连续的内存空间&#xff0c;当内存空间不足&#xff0c;便以原来的容量的2倍或者1.5倍成倍的扩展&#xff0c;将原有的数组元素拷贝到新分配的内存空间中&#xff0c;…

华为面试改革,我们该怎么跟进?

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;近日&#xff0c;华为轮值董事长徐直军撰写了《关于公司高端精英类、软件类人才面试方…