基礎(chǔ)架構(gòu)虛擬化不再只是廠商(如 Unix, Intel )和運(yùn)作團(tuán)隊(duì)所關(guān)注的技術(shù)問題了,它正在日益成為諸如數(shù)據(jù)中心配置( provisioning)、服務(wù)交付,以及更重要的、可以有效控制成本的服務(wù)器整合的關(guān)鍵因素。
基礎(chǔ)架構(gòu)虛擬化不再只是廠商(如 Unix, Intel )和運(yùn)作團(tuán)隊(duì)所關(guān)注的技術(shù)問題了,它正在日益成為諸如數(shù)據(jù)中心配置( provisioning)、服務(wù)交付,以及更重要的、可以有效控制成本的服務(wù)器整合的關(guān)鍵因素。和很多先進(jìn)的技術(shù)一樣,虛擬化技術(shù)從經(jīng)濟(jì)上和運(yùn)作上看,也是優(yōu)勢(shì)與不足并存。運(yùn)作團(tuán)隊(duì)也許更喜歡傳統(tǒng)的操作方式,尤其在傳統(tǒng)技術(shù)的能力和工作負(fù)荷管理方面。
據(jù)META Trend表示:到2003/04,IT運(yùn)作團(tuán)隊(duì)會(huì)在促進(jìn)業(yè)務(wù)單元重整以及實(shí)施更有效的自動(dòng)化策略上進(jìn)行大量的投資。這其中最重要的包括放棄垂直的、特定平臺(tái)傳輸,重整不一致的處理過程,加速平臺(tái)向 Intel 架構(gòu)(Windows and Linux:2004-10)轉(zhuǎn)換/遷移,并建立健壯的、可有效測(cè)量的系統(tǒng)。到 2007 年,這些運(yùn)作上的改進(jìn)將成為標(biāo)準(zhǔn)的計(jì)劃和支持的一部分。
簡要回顧
架構(gòu)虛擬化并不是一個(gè)很新的技術(shù),早在上世紀(jì)60年代末到70年代初,大型機(jī)用戶就已經(jīng)體驗(yàn)了虛擬化帶來的好處。那時(shí)候IBM所提供的虛擬機(jī)技術(shù)基本為兩種形式,它們都是在位于硬件層之上的微代碼層實(shí)現(xiàn)的。其中多虛擬機(jī)形式是通過VM(虛擬機(jī))實(shí)現(xiàn)的,而邏輯分區(qū)則是通過更傳統(tǒng)的MVS(多虛擬存儲(chǔ))大型機(jī)來實(shí)現(xiàn)的。在實(shí)用使用中,虛擬化可以提供更快的預(yù)配置能力,因此和那些專門為某種目的設(shè)計(jì)的解決方案相比,用戶可以更主動(dòng)的利用架構(gòu)特性。在較早時(shí)期,真正的計(jì)算資源非常昂貴,因此那時(shí)候的虛擬化技術(shù)的另一個(gè)優(yōu)勢(shì)就在于它可以支持臨界虛擬資源。由于過去十年 Unix和Intel的系統(tǒng)平均使用率不足30%,因此這種技術(shù)使得系統(tǒng)可以通過更充分的利用硬件以支持更多的用戶,獲得更好的投資回報(bào),這也解決了經(jīng)常性業(yè)務(wù)和財(cái)務(wù)管理者所面臨的問題。
三十年前,IT部門所面對(duì)的問題是沒有足夠的實(shí)際的計(jì)算資源?,F(xiàn)在他們有了另一個(gè)麻煩:過剩的實(shí)際計(jì)算資源在不斷的提升計(jì)算任務(wù)的成本。成熟的虛擬化技術(shù)和類似虛擬化的分區(qū)技術(shù)可以改變這種狀況。大型機(jī)的架構(gòu)虛擬化在發(fā)展了 30 年后,現(xiàn)在到了一個(gè)新的起點(diǎn),即用在 Unix 和 Intel 平臺(tái)上。不過其目的都是一樣的,即實(shí)現(xiàn)更靈活更快速的配置( provisioning ),更好的在單一 SMP 平臺(tái)上運(yùn)行多個(gè)獨(dú)立的工作負(fù)荷。
Intel 的關(guān)鍵動(dòng)力源 : 簡單非協(xié)同應(yīng)用
隨著應(yīng)用程序架構(gòu)逐漸向“非協(xié)同”應(yīng)用服務(wù)器轉(zhuǎn)變,并驅(qū)動(dòng)后臺(tái)數(shù)據(jù)庫服務(wù)器,前臺(tái)應(yīng)用的錯(cuò)誤雖然會(huì)比較煩人,但是已經(jīng)不會(huì)產(chǎn)生很大的危害了,因?yàn)樗袑?shí)際的應(yīng)用都可以通過數(shù)據(jù)庫來調(diào)節(jié)和恢復(fù)。另外,雖然數(shù)據(jù)中心分析指出,遺留系統(tǒng)會(huì)在未來三到五年內(nèi)被 Intel 系統(tǒng)超越,但是數(shù)據(jù)中心的一個(gè)關(guān)鍵的制勝策略卻是一個(gè)簡單的事實(shí):針對(duì)新應(yīng)用程序如 SAP R/3的應(yīng)用服務(wù)器,其消耗的計(jì)算能力是數(shù)據(jù)庫的8-10倍。因此,會(huì)出現(xiàn)日益增多的更“簡單的”應(yīng)用服務(wù)器與大型的復(fù)雜數(shù)據(jù)庫服務(wù)器共存的情況,如 圖 1 所示(描繪了過去多年到未來五年內(nèi)的高端數(shù)據(jù)中心的情況)。實(shí)際上,當(dāng)考慮到應(yīng)用架構(gòu)和一些 Web 服務(wù)特點(diǎn)的因素, 75% 的應(yīng)用需求都可以通過開發(fā)簡單的 1-2 路的服務(wù)器來實(shí)現(xiàn)(根據(jù)摩爾定律,處理器的能力每18個(gè)月翻一倍)。雖然這個(gè)分析沒有涉及到 Linux,但我們可以發(fā)現(xiàn)Wintel平臺(tái)在五年前就已經(jīng)開始在數(shù)據(jù)中心市場(chǎng)上占有一席之地了,這不是因?yàn)槠浞€(wěn)定性,而是因?yàn)槠涫褂昧康脑黾雍?ldquo;簡單化”的應(yīng)用服務(wù)器。而由于計(jì)算的增長重點(diǎn)還在于簡單的應(yīng)用服務(wù)器(如 1-2 路服務(wù)器或刀片服務(wù)器,其能力都是數(shù)據(jù)庫服務(wù)器的 6-10 倍), Linux 作為簡單應(yīng)用服務(wù)器正在對(duì) Windows 構(gòu)成嚴(yán)重威脅,這種威脅就好像當(dāng)初 Windows 對(duì) Unix 所作的一樣:為每年增長 60% 的市場(chǎng)提供更廉價(jià)、足夠好的應(yīng)用服務(wù)器。
合理的虛擬化整合
運(yùn)作團(tuán)隊(duì)與數(shù)據(jù)中心都面臨兩個(gè)與架構(gòu)有關(guān)的挑戰(zhàn):
降低成本:提供改進(jìn)的硬件、軟件以及更高的員工工作效率。
加快市場(chǎng)響應(yīng)時(shí)間:提供更靈活有效的業(yè)務(wù)驅(qū)動(dòng)的體系架構(gòu)。
物理主機(jī)托管以及邏輯上的整合可以幫助解決成本上的問題,比如:
第一步,簡單的主機(jī)托管??梢酝ㄟ^改進(jìn)并引入重要的處理減少人員配備,如變動(dòng)、配置以及問題管理等。正如我們前面提到的,一個(gè)計(jì)劃良好的邏輯整合也可以提供一定的好處,但是它很難實(shí)現(xiàn)更多的。在很多情況下,尤其是被 META Group 成熟度模型定義為一級(jí)或者二級(jí)(總共五級(jí))的不成熟企業(yè),物理上的整合是唯一可以快速收到效果的解決方案。
第二步也是非常合理的步驟就是整合,雖然這聽起來比較容易,但不成熟的管理負(fù)載以及資源會(huì)使得在 Intel 甚至 Unix 服務(wù)器上運(yùn)行多個(gè)應(yīng)用變得非常困難。一般來說運(yùn)作團(tuán)隊(duì)都需要經(jīng)驗(yàn)豐富的技術(shù)員和操作人員來完成這樣的工作。
進(jìn)入虛擬化和分區(qū)技術(shù)。運(yùn)作團(tuán)隊(duì)有了可以被廠商支持的虛擬化技術(shù),可以保證 Intel 平臺(tái)的獨(dú)立的虛擬機(jī)或 Unix 平臺(tái)擴(kuò)展的分區(qū)方案(雖然分區(qū)并不是真正的虛擬化,但它可以增加系統(tǒng)的利用率并提高操作靈活性)。另外,擴(kuò)展的 Unix負(fù)載管理( WLM )可以提供更好的共享能力( 圖 2 和 圖 3 顯示了它們的不同)。 Intel 的虛擬機(jī)解決方案,如 VMware 和 Connectix ( Microsoft 的一個(gè)部門),可以在 Intel 平臺(tái)之上提供一個(gè)虛擬層用于物理和邏輯分區(qū)。
[page]
基礎(chǔ)架構(gòu)虛擬化不再只是廠商(如 Unix, Intel )和運(yùn)作團(tuán)隊(duì)所關(guān)注的技術(shù)問題了,它正在日益成為諸如數(shù)據(jù)中心配置( provisioning)、服務(wù)交付,以及更重要的、可以有效控制成本的服務(wù)器整合的關(guān)鍵因素。
最后一步,應(yīng)用程序集成,這是最難的一步。隨著技術(shù)發(fā)展,Unix、Windows以及Linux都改進(jìn)了自己的負(fù)載管理方案,使得這一步驟變得更加可行。到 2006 年 8 月,這些代碼會(huì)具有足夠的功能來實(shí)現(xiàn)在單一的邏輯或物理分區(qū)上運(yùn)行多個(gè)應(yīng)用程序。
整合方案不可避免的挑戰(zhàn):越大越昂貴
對(duì)于所有的整合工作或者服務(wù)器集成來說,至少有三點(diǎn)挑戰(zhàn)是不可避免的,而第一個(gè)挑戰(zhàn)也是最難克服的:
對(duì)于所有系統(tǒng)來說,沒有類似于大規(guī)模經(jīng)濟(jì)效益這樣的觀念。簡單來說,一個(gè)事務(wù)在大型系統(tǒng)上運(yùn)行的成本要高于在小型系統(tǒng)上運(yùn)行的成本。一個(gè)8路系統(tǒng)的運(yùn)行成本很明顯要大于八個(gè)單路系統(tǒng)的成本總合。比如在一個(gè)單路系統(tǒng)上運(yùn)行一個(gè)事務(wù)(最經(jīng)濟(jì)的設(shè)計(jì))的成本只是在一個(gè)8路的 Intel 系統(tǒng)上跑同樣事務(wù)的成本的一半。因此從一開始,整合就面臨著“成本”的挑戰(zhàn)。整合基本上就是將多個(gè)服務(wù)器集中起來,將其硬件資源重新組合,比如生成一個(gè)8路系統(tǒng)。為了滿足需要,虛擬化解決方案也有類似的機(jī)制,不過它是采用生成多個(gè)虛擬的服務(wù)器的方式來滿足對(duì)服務(wù)器數(shù)量上的需求的。
整合所面對(duì)的第二個(gè)挑戰(zhàn)是必須深刻了解目標(biāo)服務(wù)器的使用情況。雖然這聽上去很簡單,但變化的負(fù)載曲線帶有不確定的峰值,需要服務(wù)器具有足夠的能力來應(yīng)付。要使整合后的服務(wù)等級(jí)(SLA)符合已經(jīng)確立的單系統(tǒng)標(biāo)準(zhǔn),則需要大量易于獲得的處理能力,以及對(duì)大量獨(dú)立服務(wù)器使用情況的深入分析。這都需要強(qiáng)大的運(yùn)算能力規(guī)劃與性能管理能力,以及各種工具的輔助。
第三個(gè)挑戰(zhàn)是關(guān)于整合效果的。比如說,在整合后,系統(tǒng)是否運(yùn)行的更好、更快或者成本更加低廉。這需要對(duì)整合前后的平臺(tái)成本和成本比率(硬件、軟件以及員工)進(jìn)行深入分析?;旧险f,我們?cè)谡乙环N針對(duì)硬件、軟件和員工的最優(yōu)方案。因此,我們必須依靠強(qiáng)大的操作過程,比如可以通過更簡單、更具重復(fù)性的組織架構(gòu)和處理過程(如設(shè)計(jì) / 建造 / 運(yùn)行)來幫助降低成本,而不是靠成本更高需要更多資源的以系統(tǒng)管理為中心的組織架構(gòu)。
非大規(guī)模經(jīng)濟(jì):一個(gè)不變的問題
Intel 系列的 SMP 和其他的 SMP 系列( 1 路到 32 路服務(wù)器)一樣,并沒有產(chǎn)生大規(guī)模經(jīng)濟(jì)的效益,也就是說,并不是服務(wù)器規(guī)模越大,效益就越高。實(shí)際上,一個(gè)事務(wù)運(yùn)行于多路服務(wù)器上的成本要大于其在單路服務(wù)器上運(yùn)行的成本。假設(shè)在單路服務(wù)器上運(yùn)行的成本是 1 ,那么在 8 路服務(wù)器上運(yùn)行的成本就要超過 2 ,而如果將事務(wù)移動(dòng)到更大型的服務(wù)器( 16 路到 32 路)上,那么成本將更高昂,比如在 32 路服務(wù)器上,其成本就變?yōu)?4 。因此越大型的服務(wù)器一般來說運(yùn)行成本也就越高。
在低端系統(tǒng)中,單路服務(wù)器只是一個(gè)簡單的系統(tǒng),并沒有可伸縮的 SMP 性能。因此它的價(jià)格低廉并且對(duì)于每個(gè)事務(wù)來說,其吞吐量與價(jià)格之比要優(yōu)于 8 路系統(tǒng)。而在大型系統(tǒng)中,比如為了實(shí)現(xiàn) 8 路應(yīng)用而設(shè)計(jì)的更高速的緩存以及更強(qiáng)大的 SMP 預(yù)期,都增加了運(yùn)算成本。因此,小型系統(tǒng)的數(shù)量在快速的增加,雖然這使得維護(hù)成本也在不斷上升,但由于其低價(jià)格以及較高的事務(wù)處理“價(jià)值”,使得 Intel 平臺(tái)的整合工作變得更加困難。
一個(gè)整合模型框架
從我們上面的介紹不難看出,僅僅是將八個(gè)單路 Intel 服務(wù)器整合成一個(gè) Intel 8路服務(wù)器,似乎并不能帶來財(cái)務(wù)或者操作上的成功。一個(gè)真正的整合模型應(yīng)該是這樣的:鑒于三年的硬件生命周期,一個(gè)基本的 Intel單路服務(wù)器處理器(刨除存儲(chǔ)介質(zhì)和軟件)的平均成本大于每年2000美元。而一個(gè)8路Intel服務(wù)器處理器(刨除存儲(chǔ)介質(zhì)和軟件)每年的成本約 42000 美元,按處理器算即每年每個(gè)處理器成本超過 5000 美元。對(duì)于一個(gè)無損的整合來說,需要至少 20 個(gè)單路服務(wù)器整合才相當(dāng)于一個(gè) 8 路服務(wù)器的成本。
上面復(fù)雜的計(jì)算推出了一個(gè)簡單的結(jié)果,那就是八個(gè)單路服務(wù)器整合的效果不如 20 個(gè)獨(dú)立的應(yīng)用服務(wù)器。這也許會(huì)讓客戶感到非常不快。而在一個(gè) 8 路服務(wù)器上運(yùn)行那 20 個(gè)單路服務(wù)器的負(fù)載從財(cái)務(wù)或操作上看也不是辦法。因?yàn)樨?fù)載管理目前還不成熟,對(duì)性能和用戶預(yù)期的管理還具有一定的風(fēng)險(xiǎn)。因此,一個(gè)更好的解決方案是通過虛擬機(jī)技術(shù),將硬件和應(yīng)用隔離開,而掌握這個(gè)技術(shù)的兩大廠商分別是 VMware 和 Connectix (Microsoft 的一個(gè)部門 ) 。
虛擬化技術(shù)的游戲規(guī)則
雖然這兩個(gè)廠商在技術(shù)細(xì)節(jié)上有所不同,但都為我們提供了相當(dāng)真實(shí)的產(chǎn)品。如前所述,虛擬機(jī)技術(shù)從上世紀(jì) 70 年代就出現(xiàn)了。它在實(shí)現(xiàn)完全的操作獨(dú)立和提供有效的虛擬集合方面取得了成功,這使得在一個(gè)真正的系統(tǒng)上運(yùn)行多個(gè)虛擬機(jī)成為可能。而這又引出了一個(gè)問題,為什么 Intel 平臺(tái)邁向虛擬化耗費(fèi)了這么長時(shí)間。為了獲得這個(gè)答案,我們必須回顧市場(chǎng),并了解一下 IA32 技術(shù)。
IA32/X86 — 虛擬化進(jìn)程上的絆腳石
對(duì)于市場(chǎng)來說,答案很簡單。很多出售 Intel 架構(gòu)系統(tǒng)的供應(yīng)商都有不錯(cuò)的業(yè)績,而這些供應(yīng)商的大部分利潤都是通過不斷向計(jì)算能力已經(jīng)過剩的市場(chǎng)銷售更多的電腦而獲得的。事實(shí)上直到最近,這個(gè)問題一直很少被人提起。另外,雖然自從上世紀(jì) 60 年代末,虛擬化技術(shù)就是大型機(jī)的一個(gè)關(guān)鍵技術(shù),但 IA32 架構(gòu)從來都不是為虛擬化而設(shè)計(jì)的,與之有關(guān)的研究也不多,因此才會(huì)使得后來的 Vmware 在虛擬化技術(shù)的研究上獲得了大量專利。
基礎(chǔ)架構(gòu)虛擬化不再只是廠商(如 Unix, Intel )和運(yùn)作團(tuán)隊(duì)所關(guān)注的技術(shù)問題了,它正在日益成為諸如數(shù)據(jù)中心配置( provisioning)、服務(wù)交付,以及更重要的、可以有效控制成本的服務(wù)器整合的關(guān)鍵因素。
虛擬化層的魔術(shù)
直接的實(shí)現(xiàn)處理器虛擬化。一般來說,操作系統(tǒng)和驅(qū)動(dòng)軟件享有最高優(yōu)先級(jí),而應(yīng)用程序(在虛擬世界中,操作系統(tǒng)也被看作是一個(gè)應(yīng)用程序)使用較低的優(yōu)先級(jí)。簡單來說,虛擬機(jī)的原理就是通過在無優(yōu)先級(jí)模式下運(yùn)行 VM 代碼,并讓 VM 代碼控制硬件(或部分特殊軟件)的中斷并捕獲應(yīng)用程序及 VM 的全部操作,然后通過虛擬機(jī)管理器( VMM ,一個(gè)運(yùn)行在硬件層之上的很薄的層)來模擬這個(gè)指令。這就是 IBM 的虛擬機(jī)或 Vmware 的 ESX 所依據(jù)的原理,它可以模擬全部硬件資源( 圖 4 簡要介紹了虛擬化技術(shù))。由于 VMM 的輸出接口與系統(tǒng)硬件的接口是一致的,因此像 Windows 或 Linux 之類的操作系統(tǒng)不會(huì)察覺到硬件層之上的 VMM 層。這個(gè) 40 年前的理論指出了一個(gè)簡單的事實(shí),那就是大部分處理器都會(huì)忠實(shí)的生成異常(也就是處理器不會(huì)處理沒有優(yōu)先級(jí)的任務(wù),如虛擬機(jī) );而 VMM 層模擬了這些異常并繼續(xù)控制著系統(tǒng)硬件。不幸的是, IA32/X86 處理器架構(gòu)并不支持這個(gè)簡單的規(guī)則。
實(shí)際上, 17 個(gè) IA32/x86 優(yōu)先級(jí)指令不提供這種功能。另外,在 IA32/x86 系統(tǒng)中,相同的機(jī)器操作碼對(duì)于不同的 IA32/x86 “保護(hù)環(huán)”(或優(yōu)先等級(jí))也有不同的意義。因此, IA32/x86 架構(gòu)的系統(tǒng)只能實(shí)現(xiàn)“部分”虛擬化。實(shí)際上, VMware 和 Connectix 都花費(fèi)大量精力開發(fā)框架和方法用以彌補(bǔ)這個(gè)不足,由此便產(chǎn)生了虛擬機(jī)管理( VMM )層。
數(shù)以萬計(jì)的 PC 設(shè)備制造商和各種驅(qū)動(dòng)器都在增加 Intel 系統(tǒng)虛擬化的復(fù)雜程度。毫無疑問,除了一些小問題(如性能和擴(kuò)展 SMP 的支持等),兩個(gè)廠商都解決了這一難題。而且隨著每個(gè)新版本的發(fā)布,虛擬機(jī)解決方案都變得越來越健壯。雖然我們都相信基于 x86 系統(tǒng)的虛擬機(jī)會(huì)不斷提升基本效率,但要達(dá)到大型機(jī)的效率,還需要三到五年的時(shí)間。在很多情況下,大型機(jī)架構(gòu)由于更適于進(jìn)行虛擬化,因此其效率一般都在 90% 以上(除了 2%-3% 的虛擬化損耗)。而 x86 架構(gòu)上的虛擬化性能最初大約有 40% 的虛擬化損耗,隨著技術(shù)的發(fā)展,目前的損耗大約為 20% ,而在三年內(nèi),這個(gè)損耗就會(huì)降低到 10% 以下。
虛擬化之戰(zhàn)
平臺(tái)虛擬化對(duì)實(shí)現(xiàn)按需計(jì)算和適應(yīng)企業(yè)的要求來說是一個(gè)關(guān)鍵能力。當(dāng)然,倘若所有的資源是充足的,數(shù)據(jù)處理團(tuán)隊(duì)只需提供機(jī)器而不用購買它們。在多數(shù)情況下,一個(gè)VMM供應(yīng)商,如Vmware,會(huì)為一整類的服務(wù)器提供參考平臺(tái)環(huán)境,使領(lǐng)導(dǎo)者大體上了解虛擬化和計(jì)算體系的實(shí)現(xiàn)方式以及購買原因。無疑,虛擬化是一個(gè)非常強(qiáng)的特性。考慮到這種情況,Intel最近宣布了它的Vanderpool計(jì)劃,其目標(biāo)是提供它自己的虛擬化平臺(tái)甚至是與 Vmware 的 EX 產(chǎn)品類似的虛擬機(jī)監(jiān)視器。這樣,虛擬機(jī)市場(chǎng)上就有 Microsoft、Intel和VMware 三大玩家,而其他公司也在蓄勢(shì)待發(fā)。
眾所周知,IA32/x86虛擬化要求很高的技術(shù)和努力,而IA64,也要求付出同樣的或更大的努力,因?yàn)樗捏w系非常難以虛擬化,或者很難有效地虛擬化。了解了如此情形,再加上Intel表示五年后才能交付產(chǎn)品,消費(fèi)者們將會(huì)繼續(xù)評(píng)估現(xiàn)有的各個(gè)公司的虛擬化產(chǎn)品,而不會(huì)干等著Intel的成果出來。對(duì)大多數(shù)企業(yè)來說,目前的提供商如VMware,所提供的解決方案已經(jīng)可以為企業(yè)帶來巨大的運(yùn)作收益了,盡管其產(chǎn)品大多仍然處于半成品模式。此外,在12到18個(gè)月里,Intel超過20%的高端市場(chǎng)將對(duì)產(chǎn)品應(yīng)用實(shí)現(xiàn)開發(fā)虛擬化。由于虛擬化層是硬件層之上的一個(gè)很薄的層,用戶們可以嘗試不同公司的解決方案。雖然其效果可能不會(huì)完全透明,但起碼對(duì)資源的需求不會(huì)高到令人無法容忍。
商業(yè)影響:基礎(chǔ)架構(gòu)虛擬化能帶來巨大的運(yùn)作收益,例如改進(jìn)對(duì)市場(chǎng)響應(yīng)速度、增加機(jī)構(gòu)彈性,以及降低運(yùn)作成本。
總結(jié):基礎(chǔ)架構(gòu)虛擬化能提供巨大的操作靈活性。要成功,運(yùn)作團(tuán)隊(duì)必須有豐富的操作經(jīng)驗(yàn),以保證對(duì)日益復(fù)雜的計(jì)算體系提供適當(dāng)?shù)墓芾怼?/p>