OVF协议:虚拟机的MP3格式(1)(2)
如何利用OVF协议部署应用
在这里,我们以一个典型的Lamp(Linux-Apache-MySQL-PHP)应用为例,来讲述如何利用OVF协议来部署应用。
第一步,启动两个空白的虚拟机。首先,在第一台虚拟机上安装Linux操作系统、Apache Web服务器和用于设置网络和软件配置的激活软件(例如IBM Activation Engine),并加载PHP应用。其次,在另一台虚拟机上安装Linux 操作系统、MySQL数据库和激活软件,并创建应用的数据库表。最后,关闭这两台已经安装成功的虚拟机,并导出它们的磁盘镜像。
第二步,在OVF工具(例如IBM OVF Toolkit)上创建和编辑Lamp应用的OVF 信封,并在工具上导入在第一个步骤中生成的两块磁盘镜像,最后在工具上生成文件名为Lamp.ova的OVF包。需要说明的是,清单文件和认证文件一般都由OVF工具自动生成并放置在OVF包内。图2为部署之前Lamp应用的内部结构:
图2.部署之前的Lamp应用
第三步,在虚拟化平台上面(例如VMware vSphere 4)部署这个OVF包。首先,在部署时,虚拟化平台会让用户确认信封内的产品模块里面定义的软件配置选项,例如两个虚拟机的网络地址和Apache等软件的配置。接着,虚拟机平台会根据刚才的设置自动生成一个OVF环境文件,并为这个文件创建一个ISO。最后将生成的ISO做为虚拟的CD-ROM插入到虚拟机的虚拟光驱内。
第四步,在两台虚拟机(VM)启动的时候,激活软件会作为一个服务被启动。首先,它会读取虚拟光驱内的OVF环境文件。接着,它会根据OVF环境文件来设置虚拟机的网络地址和相关软件配置,最后,确保应用能正常运行。图3为部署之后Lamp应用的内部结构:
图3.部署之后的Lamp应用
从这个流程来看,利用OVF协议来部署应用是非常方便和快捷的。更重要的是,当下次再部署相同应用的时候,只需通过点击几下鼠标部署之前制作好的OVF包即可。
OVF的不足之处
虽然OVF协议在很多方面都很优秀,但是还是存在一些不足之处。
首先,它在跨平台方面一定存在缺陷,虽然OVF协议支持跨平台,但因为镜像格式的限制,所以现在部分虚拟器件无法跨平台,其原因是现有的虚拟器件主要使用VMware的VMDK作为镜像格式,而此格式在非VMware的平台缺乏支持。
其次,缺乏一部分业界巨头强力的支持。首先,Amazon已经在OVF协议之前推出了类似于OVF的私有格式AMI(Amazon Machine Images,Amazon机器镜像),同时使用者甚众,且短期内似乎没有支持OVF的迹象。其次,虽然微软已经表明了对OVF支持的态度,但可惜到现在还未推出相关的产品。
此外,OVF包体积庞大——因为OVF包需携带磁盘镜像的原因,使得OVF包通常以GB为单位,导致其难于通过网络传输,这将影响其用户体验。虽然VMware已经提出了Delta Disk和Stream等技术,但在短期内这个问题很难被克服。
OVF的未来
谈到OVF的未来,首先,肯定是对现有功能的强化,就像OVF最近推出1.1版本那样,并没有在范围的扩展上做文章,而是增强其原有的部署功能,例如支持文件系统格式的镜像。其次,OVF协议身为VMAN计划的一个核心的组成部分,在将来会进一步为整个VMAN计划服务,同时OVF很有可能在已成为美国国家标准的情况下向ISO(国际标准化组织)和IEC(国际电工委员会)这两个组织提交申请,力争成为国际标准。
在2007年10月初,当我第一次看到OVF协议初稿的时候,我不禁暗暗赞叹这奇思妙想,并深信它将有助于整个IT事业的发展。3年后,当我看到OVF协议已经茁壮成长的时候,我不仅更坚定了当初对它的期望,更觉得在今后云计算的时代它将进一步推动应用的发展,使应用依旧为王。
第三篇章 OVF与云计算实践
虽然,OVF 1.0协议正式发布才半年,但是支持OVF协议的云计算产品有如雨后春笋般不断涌现, 例如开源的Xen Cloud Platform和IBM的Systems Director等 ,而且产品的范围横跨公有云和私有云这两个范畴。接下来,我将从这两个范畴中各选取一个产品,来给大家分析一下OVF协议在这些产品中所发挥的作用,一个是VMware的vCloud Express,另一个是IBM的WebSphere CloudBurst Appliance(简称WCA)。
OVF与VMware vCloud Express
在2009 VMworld大会上,VMware携手众多供应商推出了VMware vCloud Express。它是基于VMware vSphere 虚拟化平台构建的企业级公有云解决方案,提供可靠和随需应变的“Infrastructure as a Service(基础设施即服务)”。
VMware vCloud Express最大的特色是灵活的迁移。今后用户的工作负载不仅可以在两个支持vCloud技术的企业数据中心之间实现灵活地迁移,从而提高可用性和优化资源,而且还可以将工作负载在企业数据中心和vCloud公有云之间进行迁移,以应对突发情况或者减少初始投入。
在VMware vCloud Express中,OVF协议处于非常核心地位。这是因为VMware vCloud Express默认的部署模型就是基于OVF协议的vApp,通过vApp模型能方便用户上传本地的应用。并且,vCloud API的核心也是基于OVF协议的。我们说过,OVF协议以是应用为核心的思想,它能够帮助用户理解和使用这套API。
此外,通过使用公开的OVF协议将提升vCloud的互操作性和兼容性,使得应用能在多个数据中心或者云之间进行自由的迁移。
OVF与IBM WCA
WCA是 IBM 在2009年推出的一款云计算产品,提供了构建、部署、管理和维护 WebSphere虚拟器件的功能,并能高效地利用企业的共享资源池或者私有云 ,从而有效地降低相关基础设施的投入。在这里值得一提的是,我个人非常有幸地参与了这个旗舰级产品的研发,更从中获益匪浅。
基于OVF协议的WebSphere虚拟器件是构建WCA的核心元素,同时WCA整个工作流程都是围绕着这些虚拟器件展开的,这些虚拟器件中最具代表性就属简称为“WAS HV”的WebSphere Application Server 的虚拟化版本,它包括WAS的二进制文件和配置文件、IBM HTTP 服务器和一个 Novell 企业级SUSE操作系统。但它不仅仅只是一个简单虚拟化版WAS而已,通过与WCA的协同工作,它还能提供很多“灵丹妙药”:
◇ 不仅能定制从简单的单独部署到复杂的集群部署等多种部署模式,而且能设置一些WAS的高级属性,例如会话持久性和全局安全性等。
◇ 预优化。基于多年实战经验,IBM的工程师对WAS HV整个软件堆栈进行了调优。
◇ 激活。每个WAS HV都自带IBM Activation Engine来自动激活系统网络和WAS等。
第四篇章 OVF的“对手”
谈到OVF的对手,其中最引入注目的莫过于AMI,AMI全称为“Amazon Machine Image(Amazon系统镜像)”,它主要用于Amazon以提供虚拟机著称的 EC2(Elastic Compute Cloud,弹性计算云)云服务。简单地说,AMI可以被认为是基于Xen虚拟技术的虚拟器件,在镜像里面包含了操作系统和一些软件,例如Apache和MySQL等。但和标准的虚拟器件不同的是,AMI并不是基于OVF协议,而是基于Amazon EC2自己的一套规范来进行配置和调整,例如关于SSH认证的设定等。
用户在创建虚拟机的时候,需要为这个虚拟机选定一个AMI,在这个虚拟机启动的时候,会通过读写这个AMI来启动相关的操作系统,接着执行一些预先设定的程序,例如进行SSH相关的设置等。根据性质的不同,AMI主要可分为三种:
1. 私有的:用户个人创建的AMI,在默认情况下是设为私有的,但也可以授权其他用户来使用这个AMI。
2. 公共的:用户创建并发布到 Amazon Web Services 社区的AMI,任何用户都可以使用这个AMI来启动实例。
3. 付费的:开发者可以创建提供独特功能的AMI,如果其他用户想使用这个AMI,需要按照使用的时间来向开发者付费。
现在开发人员或者用户主要使用名为“Amazon EC2 AMI Tools”的工具来创建AMI,当AMI创建成功之后,需要将这个AMI上传至S3中,并将这个AMI注册至EC2中。
截止到目前,AMI支持的操作系统有:Red Hat Enterprise Linux、Windows Server 2003/2008、OpenSolaris、openSUSE Linux和Ubuntu Linux等。现有的AMI所支持的软件更是数不胜数,例如在数据库方面有IBM DB2、微软 SQL Server 2005、Oracle数据库11g和MySQL等;在批处理方面有Hadoop、Condor和Open MPI等;在应用服务器方面有IBM的WebSphere和Oracle的WebLogic等;当然还支持许许多多的开源软件,例如Apache、Nginx和Ruby on Rails等。
和OVF相比, AMI不仅在使用率方面超越了OVF,而且在配套工具和社区方面的支持也毫不逊色,甚至被很多国外云计算专家称为虚拟器件领域“事实的标准”,但是由于在开放性方面,OVF比私有的AMI优秀很多,这也导致在厂商支持方面,OVF远甚于AMI,所以从长远而言,我更看好OVF的发展。
作者简介
吴朱华,曾在IBM中国研究院参与过多个云计算产品的开发工作,现在专注于YunTable(http://code.google.com/p/yuntable/)和YunEngine(http://yunengine.com/)的研发,并且即将发表《剖析云计算》一书,敬请期待。
分享按钮