虛擬化技術(shù)是云計(jì)算、云存儲(chǔ)服務(wù)得以實(shí)現(xiàn)的關(guān)鍵技術(shù)之一。它將應(yīng)用程序以及數(shù)據(jù),在不同的層次以不同的面貌加以展現(xiàn),從而使得不同層次的使用者、開(kāi)發(fā)及維持人員,能夠方便的使用開(kāi)發(fā)及維護(hù)存儲(chǔ)的數(shù)據(jù)、應(yīng)用于計(jì)算和管理的程序。
虛擬技術(shù)亦分很多種,從不同的層次上來(lái)講,有cpu一級(jí)的虛擬化技術(shù)(目前intel正在著手研究著,在底層硬件上直接運(yùn)行多個(gè)操作系統(tǒng)),硬件層上一級(jí)的虛擬化技術(shù)-----操作系統(tǒng)、vmware都是在硬件之上建立虛擬化程序。還有建立在操作系統(tǒng)之上的虛擬化技術(shù):高級(jí)語(yǔ)言虛擬化技術(shù)(java\C#)、指令動(dòng)態(tài)解釋執(zhí)行的vmware\vpc、腳本語(yǔ)言運(yùn)行時(shí)系統(tǒng)(如python\javascript、matlab、sql等)。
這些虛擬化技術(shù)在不同的層次起著不同的作用。如操作系統(tǒng)起到了“將硬件接口抽象”,并提供了應(yīng)用程序以統(tǒng)一的編程接口使用硬件的能力。在操作系統(tǒng)上建立的vpc等虛擬化技術(shù),使得用戶可以在一個(gè)操作系統(tǒng)之上,再運(yùn)行其它操作操作系統(tǒng)、不同體系應(yīng)用程序的能力。而高級(jí)語(yǔ)言虛擬化技術(shù)(java),使得編程人員,以理想機(jī)器的角度來(lái)編寫(xiě)應(yīng)用程序,進(jìn)一步將硬件操作,甚至操作系統(tǒng)操作都隔離開(kāi)來(lái),完全是基于應(yīng)用的目標(biāo)來(lái)建立虛擬化。而腳本語(yǔ)言、第四代語(yǔ)言更是以高層次的抽象(虛擬化)來(lái)實(shí)現(xiàn)業(yè)務(wù)邏輯、應(yīng)用程序邏輯。
1.虛擬化技術(shù)的一般性描述
虛擬化技術(shù)與多任務(wù)以及超線程技術(shù)是完全不同的。多任務(wù)是指在一個(gè)操作系統(tǒng)中多個(gè)程序同時(shí)并行運(yùn)行,而在虛擬化技術(shù)中,則可以同時(shí)運(yùn)行多個(gè)操作系統(tǒng),而且每一個(gè)操作系統(tǒng)中都有多個(gè)程序運(yùn)行,每一個(gè)操作系統(tǒng)都運(yùn)行在一個(gè)虛擬的CPU或者是虛擬主機(jī)上;而超線程技術(shù)只是單CPU模擬雙CPU來(lái)平衡程序運(yùn)行性能,這兩個(gè)模擬出來(lái)的CPU是不能分離的,只能協(xié)同工作。
云計(jì)算概念是由Google提出的,這是一個(gè)美麗的網(wǎng)絡(luò)應(yīng)用模式。狹義云計(jì)算是指IT基礎(chǔ)設(shè)施的交付和使用模式,指通過(guò)網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需的資源;廣義云計(jì)算是指服務(wù)的交付和使用模式,指通過(guò)網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需的服務(wù)。這種服務(wù)可以是IT和軟件、互聯(lián)網(wǎng)相關(guān)的,也可以是任意其他的服務(wù),它具有超大規(guī)模、虛擬化、可靠安全等獨(dú)特功效;“云計(jì)算”圖書(shū)版本也很多,都從理論和實(shí)踐上介紹了云計(jì)算的特性與功用。
我們?cè)陂_(kāi)汽車(chē)的時(shí)候其實(shí)就用到了機(jī)械的虛擬化技術(shù),汽車(chē)機(jī)械運(yùn)動(dòng)的復(fù)雜形態(tài)被邏輯上簡(jiǎn)化為方向盤(pán)、油門(mén)、剎車(chē)、離合器的簡(jiǎn)單運(yùn)動(dòng)方式,這種簡(jiǎn)化使汽車(chē)機(jī)械系統(tǒng)的復(fù)雜性被全面屏蔽,方向盤(pán)、油門(mén)、剎車(chē)、離合器成為了人機(jī)交互設(shè)備。
不只在工業(yè)領(lǐng)域就是在金融領(lǐng)域也有虛擬化技術(shù)的身影,如復(fù)雜的股市變化規(guī)律被幾個(gè)簡(jiǎn)單的指數(shù)所描述,通過(guò)指數(shù)的變化就能反應(yīng)股票市場(chǎng)的運(yùn)行情況,甚至整個(gè)經(jīng)濟(jì)的運(yùn)行規(guī)律。
物理學(xué)也虛擬化技術(shù)用的最多的地方,原子核內(nèi)部的復(fù)雜運(yùn)動(dòng)情況通過(guò)各種宏觀物理設(shè)備如:拉曼譜、正電子譜、核磁共振等表現(xiàn)出來(lái),其實(shí)我們誰(shuí)也沒(méi)有真正的看到原子核的形態(tài),但我們能通過(guò)對(duì)這些物理量的分析得到原子核的結(jié)構(gòu),那么這些物理設(shè)備就實(shí)現(xiàn)了對(duì)原子核內(nèi)部結(jié)構(gòu)的虛擬化工作。
以上的描述我們可以看出,虛擬化技術(shù)是一門(mén)應(yīng)用很廣泛的技術(shù),甚至可以說(shuō)是一門(mén)相當(dāng)基礎(chǔ)的學(xué)科。廣義的定義虛擬化技術(shù)可以這么來(lái)看:虛擬化技術(shù)就是一種邏輯簡(jiǎn)化技術(shù),實(shí)現(xiàn)物理層向邏輯層的變化。從這個(gè)定義來(lái)看一個(gè)系統(tǒng)采用虛擬化技術(shù)后其對(duì)外表現(xiàn)出的運(yùn)動(dòng)方式是一種邏輯化的運(yùn)動(dòng)方式,而不是真實(shí)的物理運(yùn)動(dòng)方式。所以采用虛擬化技術(shù)能實(shí)現(xiàn)對(duì)物理層運(yùn)動(dòng)復(fù)雜性的屏蔽,使系統(tǒng)對(duì)外運(yùn)行狀態(tài)呈現(xiàn)出簡(jiǎn)單的邏輯運(yùn)動(dòng)形態(tài),如下圖1.
圖1 虛擬化技術(shù)的一般性邏輯
2. 虛擬化角度下的云計(jì)算架構(gòu)
虛擬化技術(shù)是一項(xiàng)非常綜合的技術(shù),對(duì)于計(jì)算機(jī)科學(xué)來(lái)說(shuō)大部分工作都是在做虛擬化的工作,網(wǎng)絡(luò)的七層協(xié)議是對(duì)物理通訊的虛擬化、傳統(tǒng)的操作系統(tǒng)是對(duì)單個(gè)計(jì)算機(jī)物理硬件的虛擬化、計(jì)算機(jī)高級(jí)語(yǔ)言是對(duì)機(jī)器語(yǔ)言的虛擬化、人工智能則是更高級(jí)的虛擬化技術(shù)。計(jì)算機(jī)科學(xué)的虛擬化層次我們用下圖進(jìn)行了簡(jiǎn)單的描述,節(jié)點(diǎn)的物理硬件和網(wǎng)絡(luò)物理硬件通過(guò)多層虛擬化的邏輯簡(jiǎn)化過(guò)程形成了彈性化的計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)帶寬三者整合的虛擬資源池,也就是我們今天講的云計(jì)算模式。
圖2從虛擬化角度看云計(jì)算的架構(gòu)
我們可以看出云計(jì)算的概念位與整個(gè)邏輯的最上層,是底層物理硬件經(jīng)過(guò)多次虛擬化抽象而形成的一個(gè)邏輯概念。這也就說(shuō)明了為什么云計(jì)算是未來(lái)的幾年的技術(shù)發(fā)展方向,因?yàn)榧夹g(shù)的發(fā)展就是一個(gè)不斷抽象簡(jiǎn)化的過(guò)程,越上層的技術(shù)邏輯就是越高級(jí)的邏輯,因?yàn)檫@個(gè)邏輯是站在了很多巨人肩上的,這些巨人就是下層的虛擬化技術(shù)。
所以可以說(shuō)云計(jì)算系統(tǒng)是運(yùn)行在一個(gè)多層虛擬化協(xié)議棧上的高度抽象系統(tǒng),云計(jì)算不是新瓶裝舊酒,而是更高一級(jí)的技術(shù)發(fā)展,這個(gè)酒是面少不了老酒的調(diào)味作用。這幅圖中我們看到了云計(jì)算的立足之本,炒作是推動(dòng)不了技術(shù)發(fā)展的,技術(shù)的發(fā)展有技術(shù)發(fā)展的邏輯。
3.從虛擬化角度看云計(jì)算資源池包括哪些資源
多數(shù)文章認(rèn)為云計(jì)算所構(gòu)成的資源池只包括計(jì)算和存儲(chǔ),不過(guò)我們從圖2中可以看到云計(jì)算的資源池除了計(jì)算和存儲(chǔ)外還有網(wǎng)絡(luò)帶寬,由于云計(jì)算系統(tǒng)節(jié)點(diǎn)是分布化的,云中心可以不只是一個(gè)地方,云計(jì)算系統(tǒng)可以實(shí)現(xiàn)帶寬資源的有效協(xié)調(diào),從而將帶寬這一資源納入到資源池,CDN的功能將被納入到云計(jì)算的功能體系。
當(dāng)然一個(gè)開(kāi)放的通用云計(jì)算系統(tǒng)的資源池還包括系統(tǒng)平臺(tái)所接入的服務(wù),云計(jì)算平臺(tái)作為一個(gè)應(yīng)用接入平臺(tái)可以實(shí)現(xiàn)大量應(yīng)用的接入和整合,也許服務(wù)也應(yīng)該成為資源被虛擬化技術(shù)放入資源池。
4.從虛擬化角度看云計(jì)算的產(chǎn)業(yè)鏈
一提到虛擬化大家首先想到了Vmware,Xen等產(chǎn)品,然而大家都忽略了最大的虛擬化產(chǎn)品是現(xiàn)有的操作系統(tǒng)軟件Window和Linux,更嚴(yán)格的說(shuō)90%以上的IT企業(yè)都在做虛擬化,思科在做網(wǎng)絡(luò)層的虛擬化、Intel在做硬件層的虛擬化、大量軟件企業(yè)在做應(yīng)用層的虛擬化。
圖2中的每一個(gè)虛擬化層還可以做更為細(xì)致的劃分,每一個(gè)虛擬化層就代表了云計(jì)算產(chǎn)業(yè)鏈上的一個(gè)環(huán)節(jié)。云計(jì)算肯定不是一兩個(gè)虛擬化技術(shù)企業(yè)的專(zhuān)有技術(shù),云計(jì)算“大象無(wú)形”的下面是一個(gè)巨大產(chǎn)業(yè)鏈和技術(shù)邏輯鏈的支持,只有“大象”才能“無(wú)形”。
云計(jì)算標(biāo)準(zhǔn)就是要建立一個(gè)虛擬化的邏輯協(xié)議棧,使產(chǎn)業(yè)鏈上的不同企業(yè)能有效的在同一個(gè)邏輯遞推關(guān)系下工作。圖3是云計(jì)算協(xié)議棧的一個(gè)簡(jiǎn)圖,其中的每一層可能還會(huì)包括許多子層,云計(jì)算概念是下層多個(gè)邏輯協(xié)議層遞推出的一個(gè)上層概念。
圖3云計(jì)算簡(jiǎn)化協(xié)議棧
5. 用戶和云計(jì)算應(yīng)用開(kāi)發(fā)人員眼中的云計(jì)算
用戶眼中的云計(jì)算就是通過(guò)層層虛擬化后的一個(gè)邏輯形象,就像汽車(chē)駕駛員看到的方向盤(pán)和油門(mén)一樣,用戶只需要生活在一個(gè)他們熟悉的邏輯環(huán)境下就行了,這和電影Matrix中的描述的一樣:用戶自己應(yīng)該根本不知道自己是存在于一個(gè)虛擬的邏輯環(huán)境中的。用戶不用知道方向盤(pán)是如何使汽車(chē)發(fā)生轉(zhuǎn)向的,也不用知道油門(mén)是如使汽車(chē)加速的,這是汽車(chē)上的一套機(jī)械電子虛擬化層去完成的工作。油門(mén)的踩下邏輯上對(duì)應(yīng)用速度的增加,方向盤(pán)的順時(shí)針運(yùn)動(dòng)邏輯上對(duì)應(yīng)于右轉(zhuǎn);而真實(shí)的物理過(guò)程卻是油門(mén)的踩下對(duì)應(yīng)給油量的增加,方向盤(pán)的順時(shí)針運(yùn)動(dòng)對(duì)應(yīng)汽車(chē)前輪的右偏。在這個(gè)比喻下用戶看到的云計(jì)算系統(tǒng)就是一個(gè)可以按自己目前使用習(xí)慣使用的一臺(tái)功能全面的邏輯計(jì)算機(jī)。
從云計(jì)算應(yīng)用開(kāi)發(fā)人員的眼中看來(lái)云計(jì)算就是一批工作在不同邏輯層的API,他們要做的就是調(diào)用API完成自己的應(yīng)用邏輯,他們也不用關(guān)心下層的邏輯是如何運(yùn)行的,工作在不同邏輯層的開(kāi)發(fā)人員只負(fù)責(zé)自己這一層的應(yīng)用邏輯。如應(yīng)用開(kāi)發(fā)人員要存儲(chǔ)一個(gè)文件只需要調(diào)用一個(gè)write()函數(shù)就行了,文件的分割、備份、安全、網(wǎng)絡(luò)傳送由下層邏輯負(fù)責(zé)。應(yīng)用開(kāi)發(fā)人員本身做的也是虛擬化工作,只是他們是在向自己的上一層提供虛擬化邏輯。
6. 結(jié)語(yǔ)
從虛擬化的角度看云計(jì)算可以使我們對(duì)云計(jì)算的本質(zhì)有一個(gè)清晰的邏輯,虛擬化技術(shù)遠(yuǎn)比我們上面描述的框架復(fù)雜,云計(jì)算是技術(shù)發(fā)展的趨勢(shì)但也面臨著巨大的技術(shù)壁壘,需要整個(gè)產(chǎn)業(yè)的全面協(xié)作,他決不是一兩家虛擬化企業(yè)能解決的問(wèn)題,對(duì)于我國(guó)來(lái)說(shuō)可能是一個(gè)戰(zhàn)略性的產(chǎn)業(yè)方向,需要從國(guó)家層面來(lái)解決產(chǎn)業(yè)鏈及協(xié)議棧的問(wèn)題。
(審核編輯: 智匯小新)
分享