替代虛擬化:微型低功耗CPU技術(shù)
虛擬化是上個世紀(jì)60年代由IBM創(chuàng)造的古老話題了。最初,其目的是為了更好的提高大型主機(jī)硬件利用率而為其分區(qū)。主要原因是為了平衡大型機(jī)和其主要程序運(yùn)行所需要的容量。
現(xiàn)在我們使用的是日益強(qiáng)大的x86處理器和被開發(fā)的各種硬件環(huán)境。日益復(fù)雜的應(yīng)用也增加了我們對在同一環(huán)境下運(yùn)行多種應(yīng)用的恐懼,導(dǎo)致的結(jié)果就是每個服務(wù)器只能運(yùn)行一個應(yīng)用。這致使利用率非常的低下。
虛擬化就好比把每個應(yīng)用保護(hù)在容器中,這樣多種應(yīng)用就可以在同一服務(wù)器下運(yùn)行了,看起來像是服務(wù)器和應(yīng)用之間的直接連接被切斷了。同時(shí),這也讓同一應(yīng)用可以在不同的硬件環(huán)境下運(yùn)行。
但很明顯虛擬化環(huán)境很耗費(fèi)計(jì)算容量。對大多數(shù)應(yīng)用來說這并不是個問題,因?yàn)楦鶕?jù)麥肯錫的調(diào)研,虛擬化數(shù)據(jù)中心可以把利用率從5% — 10%提高到30% — 35%。
那些有大量計(jì)算需求的公司通常被稱作是高性能計(jì)算,他們并不傾向使用虛擬化,因?yàn)楹ε绿摂M化層會增加延遲時(shí)間。
我們需要虛擬化嗎?
虛擬化把應(yīng)用從特定的服務(wù)器中屏蔽了出來,所以應(yīng)用可以很容易從一個服務(wù)器移到另一個服務(wù)器。虛擬化還讓不同的工作量可以在同一個物理CPU下同時(shí)運(yùn)行而不相互影響。
目前已有幾項(xiàng)舉措正在進(jìn)行中來建立一個標(biāo)準(zhǔn)化硬件環(huán)境,這樣虛擬化就不再被需要了。Facebook正在嘗試開源云硬件。這是一個很有意思的想法,但我認(rèn)為如果這個方法成功的話將會毀了很多的硬件創(chuàng)新。
Facebook這一方法的優(yōu)勢是綁定基礎(chǔ)設(shè)施標(biāo)準(zhǔn)化,這樣就不需要在應(yīng)用和服務(wù)器之間互相屏蔽了。如果我們加入到那個運(yùn)營系統(tǒng)標(biāo)準(zhǔn)化中,就可以不需要虛擬化了,至少那些基于此標(biāo)準(zhǔn)研發(fā)的新應(yīng)用不再需要虛擬化了。
所以,虛擬化還需不需要是個很好的問題?;萜照谘芯恳粋€非常不同的云架構(gòu),該架構(gòu)也許會減少對虛擬化的依賴。這項(xiàng)工作叫做Project Moonshot,該項(xiàng)目采取了一個非常不同的方法。
#p#
用極低功耗計(jì)算來改變游戲
現(xiàn)在讓我們來想一下。我們虛擬化x86環(huán)境就像我們有非常強(qiáng)大的CPU來運(yùn)行應(yīng)用一樣,從根本上來說其實(shí)并不需要所有的功率,這讓我們花費(fèi)很多時(shí)間等待IO接口或內(nèi)存。所以說,通過在那些系統(tǒng)上同時(shí)運(yùn)行多個劃分開來的應(yīng)用我們可以大大提高其使用率。但如果我們用更小和更低功率的CPU會怎樣呢?這種情況下我們可以為每個應(yīng)用配一個專屬CPU。
這樣的芯片存在嗎?其實(shí)我們每天的手持設(shè)備上都在使用這樣的芯片。它們不僅能量低,而且消耗的能量也非常少。所以轉(zhuǎn)移到這些設(shè)備上讓我們可以建立一個更加環(huán)保的數(shù)據(jù)中心。
您也許會說這樣的系統(tǒng)造價(jià)會很高,因?yàn)閷?shí)際處理器只是整個環(huán)境全部成本的一部分。確實(shí),每個處理器都是由IO控制器,內(nèi)存等所包圍的。而且,每個服務(wù)器都有自己的處理器,芯片組,管理,存儲,散熱,電源和網(wǎng)絡(luò)接口。但這些真的都需要嗎?
我們目前在芯片的內(nèi)核上共享所有的功能,但并不在芯片之間共享。如果我們可以把所有處理器級別以上的部分在所有服務(wù)器之間共享會怎樣呢?我們可以把網(wǎng)絡(luò)結(jié)構(gòu)整合到系統(tǒng)中并且將其共享來減少布線。我們可以在底部架構(gòu)級別實(shí)施一個管理框架,并且研發(fā)一個聯(lián)合機(jī)架管理,為整個系統(tǒng)建立一個單一的管理。這將導(dǎo)致功率和成本共享,但同樣重要的是,這在相對沒有增加復(fù)雜性和管理的開銷下極大的擴(kuò)大了其規(guī)模和使用尺度。這就是Project Moonshot真正要做的事情。
所以,結(jié)果是什么呢? 我們模擬了一個類似x86的環(huán)境,并且跟Project Moonshot在功耗、空間和成本上進(jìn)行了比較。下面是比對結(jié)果。模擬的x86系統(tǒng)在10個機(jī)柜中包括400雙插槽1U服務(wù)器。這需要20個網(wǎng)絡(luò)切換器和1600根布線。每小時(shí)耗費(fèi)91千瓦,并將花費(fèi)330萬美元。
惠普的Project Moonshot服務(wù)器技術(shù)能夠用1600個服務(wù)器承載同樣的工作量,但只占用一個半機(jī)柜,需要兩個轉(zhuǎn)換器和41根布線,僅耗費(fèi)9.9千瓦并花費(fèi)120萬美元。這意味著節(jié)省89%的功耗,94%的空間,63%的成本和減少97%的復(fù)雜性。不可思議吧,有沒有?
有了這樣的系統(tǒng),我還需要虛擬化嗎?坦白說我覺得未必。
#p#
也許不適用于所有的工作負(fù)載
主流的IT工作負(fù)載(就像您在傳統(tǒng)環(huán)境下運(yùn)行的那些一樣)也許看不到同樣的成本和功耗節(jié)省,因?yàn)樗麄冃枰嗟奶幚砥鱽韴?zhí)行類似的工作。這些應(yīng)用和計(jì)算密集型應(yīng)用比如科學(xué)和技術(shù)計(jì)算更加適用于傳統(tǒng)工作方法。我們常常討論是否應(yīng)該使用云來為您已有的應(yīng)用轉(zhuǎn)型,還是要研發(fā)新的應(yīng)用。一個像Project Moonshot這樣的環(huán)境最適用于新型的,基于SOA和網(wǎng)絡(luò)的應(yīng)用,這也是未來的趨勢所在。
結(jié)論
今天的討論我們是從一個問題開始的,即我們需要虛擬化嗎?它的花費(fèi)也許很高;還增加了復(fù)雜性并且耗費(fèi)CPU功率。這個情況開始發(fā)生變化了。70和80年代中虛擬化沒那么流行因?yàn)楹芏喙ぷ鞫急灰频搅诵⌒蜋C(jī)上。后來虛擬化又隨著處理器的大幅增加而流行了起來。
也許是時(shí)候重新思考一下了。2011年,數(shù)據(jù)中心使用了全世界1.3%的電,盡管這個增長幅度不大,但仍在增長。大數(shù)據(jù)為這些數(shù)字增加了額外的負(fù)擔(dān)。所以現(xiàn)在也許真的是時(shí)候來看看我們的計(jì)算架構(gòu)并且重新設(shè)計(jì)來降低功耗了。