OVF協議誕生記數據庫
所謂萬物皆有源,在介紹OVF協議以前,咱們不能不提虛擬器件,而在提虛擬器件以前,咱們還得從當前應用所面臨的困境談起。安全
應用的三大困境服務器
雖然與應用相關的困境不少,可是整體看來,有三個方面的問題是比較突出的:網絡
虛擬器件與OVF協議架構
那麼,在雲時代,有哪些雲計算技術能幫助解決應用的困境呢?固然有不少,但其中最有表明性的莫過於虛擬器件(Virtual Appliance)。虛擬器件,是一個預配置的軟件堆棧,包括1個或多個虛擬機,並且其中每一個虛擬機均可以自運行,並且自帶操做系統和相關的應用,並明確其所需的虛擬資源。虛擬器件和普通的虛擬機相比,它在跨平臺、對多層架構的支持、預配置和預優化等方面都具備必定的優點。併發
在對應用的支持方面,虛擬器件是很是有幫助的,它能逐一化解當前應用部署的三個困境:分佈式
雖然虛擬器件這個想法不錯,可是你們都知道「無以規矩不成方圓」的道理,因此,VMware帶領衆虛擬化技術提供商提出了Open Virtualization Format (簡稱「OVF」)協議來規範虛擬器件的發展。ide
所以,OVF協議就是用於發佈和部署虛擬器件的開放標準。它是一種開放、安全、可遷移、有效、跨平臺以及可擴展的格式,以用於封裝和分發將在虛擬機上運行的軟件。工具
OVF協議被VMware CTO Steve Herrod喻爲虛擬機的MP3格式,由業界著名DMTF(Distributed Management Task Force,分佈式管理任務組) 協會制定和發佈,同時隸屬於志在推進雲計算互操做性的VMAN(Virtualization Management,虛擬化管理) 計劃,而且在2010年9月份正式被ANSI(American National Standards Institute、美國國家標準學會)定爲美國國家標準。oop
雖然OVF協議發起人和主要負責人都是來自於VMware的,但由於其開放性和重要性,使得愈來愈多廠商開始支持此協議,甚至VMware的競爭對手Xen、思傑,以及虛擬化的開創者 IBM也參與了協議的制定。同時有一系列支持OVF的工具已經發布了,或者正處於測試階段,例如VMware的VMware Studio、思傑的Project Kensho、IBM的IBM OVF Toolkit等等。
除了上面這些支持OVF的工具,VMware爲了加速虛擬器件的傳播和OVF協議的推廣,還推出一個用於分發虛擬器件的在線市場,叫作「Virtual Appliance Marketplace」,簡稱「VAM」。它提供相似於蘋果App Store 的用戶體驗,來幫助用戶購買和試用上千種各式各樣的基於OVF格式的虛擬器件,從應用程序到操做系統,應有盡有。此外,VAM還包括一些工具和推薦信息來幫助用戶作正確的決定。使人欣慰的是, VAM 已是VMware 公司旗下最受歡迎的站點之一。
OVF協議詳解
設計理念
衆所周知,對於一個軟件而言,它的設計理念將會對它的發展起着很是重要的影響,而對於一個協議來說,更是如此。在談到OVF的設計理念時,它主要體如今下面這六個方面:
能夠看出,在這六點中,便於分發、支持多種架構和跨平臺這三個特色對於應用都很是有幫助。
OVF格式
圖1. OVF包的結構
OVF協議經常使用的發佈格式是基於POSIX 1003.1 ustar標準的以「.ova」爲後綴名的壓縮包,簡稱爲「OVF包」。如圖1所示,一個OVF包主要有五種文件組成:
在上述五種文件中,OVF信封是整個虛擬器件的核心文件,由於它定義了全部重要的元數據,主要包括如下幾個模塊:
另外一個值得一提的是OVF 環境文件。OVF 環境文件則經常用在部署階段,裏面主要存放並維護來自OVF信封內的,產品模塊裏面的配置信息。也就是說,信封文件的產品模塊裏會定義有哪些值須要在部署以前輸入,而這些值實際存儲在環境文件中。此文件在部署時具體的使用流程是:首先,部署工具會讓用戶回答並確認信封的產品模塊內的軟件配置選項,例如Linux 系統的IP地址等。接着,部署工具會經過剛纔的輸入生成新的OVF環境文件,並經過虛擬光驅或者虛擬軟驅將環境文件傳入虛擬機中。最後,虛擬機上軟件會讀取這個文件,並執行相關的操做。
如何利用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的協同工做,它還能提供不少「靈丹妙藥」:
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主要可分爲三種:
如今開發人員或者用戶主要使用名爲「Amazon EC2 AMI Tools」的工具來建立AMI,當AMI建立成功以後,須要將這個AMI上傳至S3中,並將這個AMI註冊至EC2中。
截止到目前,AMI支持的操做系統有:Red Hat Enterprise Linux、Windows Server 2003/200八、OpenSolaris、openSUSE Linux和Ubuntu Linux等。現有的AMI所支持的軟件更是數不勝數,例如在數據庫方面有IBM DB二、微軟 SQL Server 200五、Oracle數據庫11g和MySQL等;在批處理方面有Hadoop、Condor和Open MPI等;在應用服務器方面有IBM的WebSphere和Oracle的WebLogic等;固然還支持許許多多的開源軟件,例如Apache、Nginx和Ruby on Rails等。
和OVF相比, AMI不只在使用率方面超越了OVF,並且在配套工具和社區方面的支持也絕不遜色,甚至被不少國外雲計算專家稱爲虛擬器件領域「事實的標準」,可是因爲在開放性方面,OVF比私有的AMI優秀不少,這也致使在廠商支持方面,OVF遠甚於AMI,因此從長遠而言,我更看好OVF的發展。