戳蓝字“云计算”关注我们哦!
时光机:搭载这部时光机,带您回顾《程序员》大量优秀文章,重温经典技术干货,我们发现硬核技术永不过时,对于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)?
虚拟器件的主要组成部分
虚拟器件的主要组成部分包括哪些呢?以下是OVF包所包含的主要文件(见图1):
图1OVF包的结构OVF描述文件(.ovf):通常称为“OVF信封”,此文件定义了整个虚拟器件的组成部分,及每个组成部分的特性和资源需求,以支持对OVF包成功和一致的部署。磁盘镜像文件:可以是多个,这些文件是此虚拟器件所包含的虚拟机的二进制磁盘镜像。
清单文件(.mf):清单包含OVF包中各文件的SHA-1摘要,其作用是确保包的完整性,一般由工具生成。证书文件(.cert):证书的作用是通过对清单文件进行数字签名来确保这个虚拟器件的真实性,以base64-encodedX.509证书的形式存储,也一般由工具生成。
虚拟器件的生命周期
基于一定规模的实践,我们总结出了虚拟器件的生命周期,主要包括六个阶段:开发、封装、部署、激活、管理和退休(见图2)。
开发
分析应用的环境需求。准备和启动一个或多个操作系统虚拟镜像,比如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标准的虚拟器件。
福利
扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!
推荐阅读: