DPDK技術(shù)奠定了NFV領(lǐng)域數(shù)據(jù)包轉(zhuǎn)發(fā)性能提升的基礎(chǔ),那么軟硬件解耦后,在通用服務(wù)器上實現(xiàn)各功能網(wǎng)元,資源層面的隔離和共生問題就是需要虛擬化技術(shù)來解決。虛擬化使用軟件的方法重新定義劃分IT資源,可以實現(xiàn)IT資源的動態(tài)分配、靈活調(diào)度、跨域共享,提高IT資源利用率,使IT資源能夠真正成為社會基礎(chǔ)設(shè)施,服務(wù)于各行各業(yè)中靈活多變的應(yīng)用需求。
1、什么是虛擬化
坦白地說,虛擬化就是欺騙。隨著個人計算機(jī)的普及,“虛擬化”這個廣泛使用的術(shù)語已經(jīng)脫離了其技術(shù)本身,成為一種共同語言、流行文化和理念。自20世紀(jì)90年代互聯(lián)網(wǎng)熱潮的早期,任何與Web相關(guān)的活動均被稱為“虛擬”,通過菲利浦•狄克的科幻小說、讓•鮑德里亞的后現(xiàn)代主義研究,以及電影(如《黑客帝國》和《盜夢空間》)的影響,模擬現(xiàn)實的概念已經(jīng)深入人心。
在技術(shù)領(lǐng)域,虛擬化是指利用“欺騙”技術(shù)將一臺計算機(jī)虛擬為多臺邏輯計算機(jī)。在一臺計算機(jī)上同時運(yùn)行多個邏輯計算機(jī),每個邏輯計算機(jī)可運(yùn)行不同的操作系統(tǒng),并且應(yīng)用程序都可以在相互獨立的空間內(nèi)運(yùn)行而互不影響,從而顯著提高計算機(jī)的工作效率。
傳統(tǒng)構(gòu)架是在每臺物理機(jī)器上僅能擁有一個操作系統(tǒng),而且多數(shù)情況下僅有一個負(fù)載。很難在服務(wù)器上運(yùn)行多個主應(yīng)用程序,因為如果這樣做,則可能會產(chǎn)生沖突和性能問題。實際上,當(dāng)前計算的最佳做法是每個服務(wù)器僅運(yùn)行一個應(yīng)用程序以避免這些問題。但是,這么做的結(jié)果是大多數(shù)時間利用率很低。如前面所討論,我們浪費(fèi)了所購買的大部分計算能力。您必須在浪費(fèi)硬件和降低風(fēng)險間尋找平衡。隨著業(yè)務(wù)的增長,隨之而來的成本壓力也變化,相關(guān)管理效率也會變低,需消耗的資源也會變大。
企業(yè)實施虛擬化戰(zhàn)略的核心目的就是提高IT部門作為業(yè)務(wù)支撐部門的工作效率,達(dá)到節(jié)約成本與提高效率并重的目的。虛擬化的重要使命之一就是提高管理效率,從而降低成本、提高硬件使用率,把管理變得更加輕松。虛擬化的主攻方向集中在減少實體服務(wù)器的部署數(shù)量,并將實體機(jī)器上的操作系統(tǒng)及應(yīng)用程序,無縫轉(zhuǎn)移至虛擬機(jī)器上,以便集中管理這些不同平臺的虛擬環(huán)境。
傳統(tǒng)構(gòu)架下,APP:OS:Phy = 1:1:1。這樣子就造成資源利用率低,為不造成資源浪費(fèi),會增加APP部署。進(jìn)而產(chǎn)生的影響就是不同應(yīng)用之間的資源搶占,隔離性差。而OS主要提供應(yīng)用運(yùn)行的環(huán)境,在資源調(diào)度方面相對薄弱,不能完全有效解決以上問題。
為在不造成沖突的前提下提高資源利用率,最好是在一個OS上部署一個APP,于是就出現(xiàn)了虛擬化的技術(shù)。在一臺主機(jī)上部署多個虛擬客戶機(jī)并安裝OS,每個OS安裝一個APP,這樣就解決了問題。APP:OS:Phy = n:n:1。
虛擬化之后實現(xiàn)了上層操作系統(tǒng)與下層硬件的解耦,就是說操作系統(tǒng)不再依賴物理的硬件,而是在VMM層上建立OS,由VMM層來實現(xiàn)OS對硬件的需求。
1.1 虛擬化的幾個重要概念
宿主機(jī)(Host Machine):指物理機(jī)資源,被Hypervisor用來執(zhí)行一個或多個虛擬機(jī)器的電腦稱為主機(jī)。
客戶機(jī)(Guest Machine):指虛擬機(jī)資源,在Hypervisor之上運(yùn)行多個虛擬機(jī)器則稱為客戶機(jī)。
Guest OS和Host OS:如果將一個物理機(jī)虛擬成多個虛擬機(jī),則稱物理機(jī)為Host Machine,運(yùn)行在其上的OS為Host OS;多個虛擬機(jī)稱為Guest Machine,運(yùn)行在其上的OS為Guest OS。
Hypervisor:通過虛擬化層的模擬,虛擬機(jī)在上層軟件看來就是一個真實的機(jī)器,這個虛擬化層一般稱為虛擬機(jī)監(jiān)控機(jī)(Virtual Machine Monitor,VMM)。需要注意一點:在VMware的ESX虛擬化架構(gòu)中VMM只是Hypervisor中一個進(jìn)程,因此在這種場景下VMM不等于Hypervisor。
2、什么是Hypervisor(VMM)
維基百科的定義如下:Hypervisor,又稱虛擬機(jī)器監(jiān)視器(英語:virtual machine monitor,縮寫為 VMM),是用來建立與執(zhí)行虛擬機(jī)器的軟件、固件或硬件。
通俗的講:hypervisor是一種運(yùn)行在物理服務(wù)器和操作系統(tǒng)之間的中間層軟件,可以允許多個操作系統(tǒng)和應(yīng)用共享一套基礎(chǔ)物理硬件。可以將hypervisor看做是虛擬環(huán)境中的“元”操作系統(tǒng),可以協(xié)調(diào)訪問服務(wù)器上的所有物理設(shè)備和虛擬機(jī),所以又稱為虛擬機(jī)監(jiān)視器(virtual machine monitor)。
hypervisor是所有虛擬化技術(shù)的核心,非中斷的支持多工作負(fù)載遷移是hypervisor的基本功能。當(dāng)服務(wù)器啟動并執(zhí)行hypervisor時,會給每一臺虛擬機(jī)分配適量的內(nèi)存,cpu,網(wǎng)絡(luò)和磁盤資源,并且加載所有虛擬機(jī)的客戶操作系統(tǒng)。當(dāng)前主流的Hypervisor有微軟的Hyper-V,VMware、Xen和KVM,但在電信云NFV領(lǐng)域主要用到的就是KVM,在后續(xù)虛擬化技術(shù)分類中,會專門講解KVM的相關(guān)部署和優(yōu)化,同時為加深大家對KVM的理解,也會講 一點Xen的知識,畢竟在KVM廣泛應(yīng)用之前,云架構(gòu)底層的虛擬化技術(shù)都是Xen。
2.1 虛擬化和hypervisor到底什么關(guān)系?
虛擬化就是通過某種方式隱藏底層物理硬件的過程,從而讓多個操作系統(tǒng)可以透明地使用和共享它。這種架構(gòu)的另一個更常見的名稱是平臺虛擬化。在典型的分層架構(gòu)中,提供平臺虛擬化的層稱為 hypervisor (有時稱為虛擬機(jī)管理程序 或 VMM)。來賓操作系統(tǒng)稱為虛擬機(jī)(VM),因為對這些 VM 而言,硬件是專門針對它們虛擬化的。如下圖示:
在上圖中可以看到,hypervisor 是提供底層機(jī)器虛擬化的軟件層(在某些情況下需要處理器支持)。并不是所有虛擬化解決方案都是一樣的(詳見Hypervisor分類部分)??蛻魴C(jī)操作系統(tǒng)(GuestOS)對機(jī)器的底層資源的訪問通過VMM來實現(xiàn)。hypervisor 面對的對象不是客戶機(jī)中的進(jìn)程,而是整個客戶操作系統(tǒng)(GuestOS)。
hypervisor主要可以劃分為兩大類:類型1和類型2,以及在此基礎(chǔ)上的混合類型和操作系統(tǒng)類型。
類型1:這種hypervisor是可以直接運(yùn)行在物理硬件之上的。也就是說它不需要宿主機(jī)操作系統(tǒng)(HostOS)的支持,本身就可以管理底層硬件的資源,其本質(zhì)是在Hypervisor中嵌入了一個精簡的Linux操作系統(tǒng)內(nèi)核。Xen 和 VMWare 的 ESXi 都屬于這個類型,這種虛擬化類型的模型如下圖所示,其特點就是需要硬件的支持,轉(zhuǎn)發(fā)性能強(qiáng)(因為少了HostOS這一層轉(zhuǎn)發(fā)),VMM就是HostOS。
類型2:這種hypervisor運(yùn)行在另一個操作系統(tǒng)(運(yùn)行在物理硬件之上)中。也就是說這種類型的Hypervisor是部署在HostOS之上的,從HostOS角度來看,其上層的所有VM都對應(yīng)Hypervisor這一個進(jìn)程。從VM的角度來看,其訪問底層硬件資源需要Hypervisor和HostOS共同配合完成。KVM、VirtualBox 和 VMWare Workstation 都屬于這個類型。這種虛擬化類型的模型如下圖所示,其特點就是比較靈活,比如支持虛擬機(jī)嵌套(嵌套意味著可以在虛擬機(jī)中再運(yùn)行hypervisor),但是轉(zhuǎn)發(fā)性能明顯不如類型1。
目前,隨著轉(zhuǎn)發(fā)性能提升需求和應(yīng)用的微服務(wù)化架構(gòu)需求,在類型2的基礎(chǔ)上又演進(jìn)出混合類型虛擬化和基于HostOS的操作系統(tǒng)虛擬化。
混合虛擬化:通過在主機(jī)的操作系統(tǒng)中增加虛擬硬件管理模塊,通過虛擬硬件管理模塊來生成各個虛擬機(jī)。屬于類型2虛擬化的一種增強(qiáng)模型。特點是相對于類型2虛擬化,沒有冗余,性能高,可支持多種操作系統(tǒng)。但是,需要底層硬件支持虛擬化擴(kuò)展功能?,F(xiàn)階段的KVM和Hyper-V都屬于這種增強(qiáng)型類型2虛擬化技術(shù)。
操作系統(tǒng)虛擬化:沒有獨立的hypervisor層。相反,主機(jī)操作系統(tǒng)本身就負(fù)責(zé)在多個虛擬服務(wù)器之間分配硬件資源,并且讓這些服務(wù)器彼此獨立。最重要的前提是:如果使用操作系統(tǒng)層虛擬化,所有虛擬服務(wù)器必須運(yùn)行同一操作系統(tǒng)(不過每個實例有各自的應(yīng)用程序和用戶賬戶),其本質(zhì)就是操作系統(tǒng)上面應(yīng)用程序的一個進(jìn)程,主要在應(yīng)用的微服務(wù)化架構(gòu)場景中使用。特點是:簡單、易于實現(xiàn),管理成本非常低。但是,隔離性差,多個虛擬化實例共享同一個操作系統(tǒng)。最典型就是目前炙手可熱的容器技術(shù)Docker和Virtuozzo。
3、虛擬化的特征和優(yōu)勢
從前面描述可知,虛擬化技術(shù)就是一個“大塊的資源”邏輯分割成“具有獨立功能的小塊資源”,這個功能通過Hypervisor來實現(xiàn)。對于服務(wù)器領(lǐng)域而言,通過Hypervisor將一個物理服務(wù)器虛擬化成若干個小的邏輯服務(wù)器,每個邏輯服務(wù)器具有與物理服務(wù)器相同的功能,所有邏輯服務(wù)器的資源總和等于物理服務(wù)器的全部資源。
因此,運(yùn)行在Hypervisor上的邏輯服務(wù)器,其本質(zhì)就是由物理服務(wù)器上一個個文件組成。相對物理服務(wù)器,天生具備分區(qū)、隔離、封裝和相對硬件獨立四大特征。
1)分區(qū):在單一物理服務(wù)器同時運(yùn)行多個虛擬機(jī)。分區(qū)意味著虛擬化層為多個虛擬機(jī)劃分服務(wù)器資源的能力;每個虛擬機(jī)可以同時運(yùn)行一個單獨的操作系統(tǒng)(相同或不同的操作系統(tǒng)),使您能夠在一臺服務(wù)器上運(yùn)行多個應(yīng)用程序。每個操作系統(tǒng)只能看到虛擬化層為其提供的“虛擬硬件”(虛擬網(wǎng)卡、CPU、內(nèi)存等),以使它認(rèn)為運(yùn)行在自己的專用服務(wù)器上。
2)隔離:在同一服務(wù)器虛擬機(jī)之間相互隔離。虛擬機(jī)是互相隔離的。例如:一個虛擬機(jī)的崩潰或故障(例如,操作系統(tǒng)故障、應(yīng)用程序崩潰、驅(qū)動程序故障,等等)不會影響同一服務(wù)器上的其它虛擬機(jī);一個虛擬機(jī)中的病毒、蠕蟲等與其它虛擬機(jī)相隔離,就像每個虛擬機(jī)都位于單獨的物理機(jī)器上一樣??梢酝ㄟ^資源控制以提供性能隔離,比如:可以為每個虛擬機(jī)指定最小和最大資源使用量,以確保某個虛擬機(jī)不會占用所有的資源而使得同一系統(tǒng)中的其它虛擬機(jī)無資源可用;可以在單一機(jī)器上同時運(yùn)行多個負(fù)載/應(yīng)用程序/操作系統(tǒng),而不會出現(xiàn)因為傳統(tǒng) x86 服務(wù)器體系結(jié)構(gòu)的局限性發(fā)生DLL沖突等問題。
3)封裝:整個虛擬機(jī)都保存在文件中,可以通過移動文件的方式來遷移虛擬機(jī)。封裝意味著將整個虛擬機(jī)(硬件配置、BIOS 配置、內(nèi)存狀態(tài)、磁盤狀態(tài)、CPU 狀態(tài))儲存在獨立于物理硬件的一小組文件中。這樣,只需復(fù)制幾個文件就可以隨時隨地根據(jù)需要復(fù)制、保存和移動虛擬機(jī)。
4)相對硬件獨立:無需修改即可在任意服務(wù)器上運(yùn)行(主要基于全虛技術(shù)的虛擬機(jī),半虛技術(shù)的虛擬機(jī)只支持開源操作系統(tǒng),如Linux)。因為虛擬機(jī)運(yùn)行于虛擬化層之上,所以只能看到虛擬化層提供的虛擬硬件,無需關(guān)注物理服務(wù)器的情況。這樣,虛擬機(jī)就可以在任何 x86 服務(wù)器(IBM、Dell、HP等)上運(yùn)行而無需進(jìn)行任何修改。這打破了操作系統(tǒng)和硬件以及應(yīng)用程序和操作系統(tǒng)/硬件之間的約束。
同時,由于Hypervisor的存在,使得虛擬機(jī)又具備同質(zhì)、高效和資源受控的3個特點。
1)同質(zhì) (Equivalence),即VM的運(yùn)行環(huán)境和物理機(jī)的環(huán)境在本質(zhì)上是相同的,表現(xiàn)上可以有一些差異。如CPU的ISA必須一致(實際可以不一致),CPU core的個數(shù)可以不同。
2)高效 (Efficiency),即VM的性能必須接近物理機(jī)。因此,常見的模擬器 (boches, simics ...) 就不能稱為VM。為達(dá)此目的,軟件在 VM 上運(yùn)行時,大多數(shù)指令要直接在硬件上執(zhí)行,只有少量指令需要 VMM 的模擬或處理。
3)資源受控 (Resource control),即Hypervisor對物理機(jī)的所有資源有絕對的控制力。
物理資源在經(jīng)過Hypervisor虛擬化后,在資源利用率、獨立性、運(yùn)行效率和安全性等方面與傳統(tǒng)物理服務(wù)器相比均有不同的優(yōu)勢。
1)資源利用率:虛擬化前每臺主機(jī)一個操作系統(tǒng),系統(tǒng)的資源利用率低。虛擬化后,主機(jī)與操作系統(tǒng)不一一對應(yīng),按需分配使用,系統(tǒng)的資源利用率高。
2)獨立性:虛擬化前軟硬件緊密結(jié)合,硬件成本高昂且不夠靈活。虛擬化后,操作系統(tǒng)和硬件不相互依賴,虛擬機(jī)獨立于硬件,能在任何硬件上運(yùn)行。
3)程序運(yùn)行效率:虛擬化前同一臺主機(jī)上同時運(yùn)行多個程序容易產(chǎn)生沖突,運(yùn)行效率較低。虛擬化后,操作系統(tǒng)和應(yīng)用程序被封裝成單一個體,不同個體間不沖突。同一臺機(jī)器上運(yùn)行多個程序,效率高。
4)安全性:虛擬化前,故障影響范圍大,安全性較差。虛擬化后,通過資源的池化,有強(qiáng)大的安全和故障隔離機(jī)制。
4、虛擬化技術(shù)的發(fā)展
最近幾年,隨著云計算技術(shù)廣泛應(yīng)用,虛擬化技術(shù)也被大家所關(guān)注。其實,虛擬化技術(shù)的出現(xiàn)要早于云計算技術(shù)約半個世紀(jì)。在上世紀(jì)60年代,虛擬化技術(shù)就已經(jīng)在大型機(jī)上有所應(yīng)用,在1999年小型機(jī)上出現(xiàn)邏輯分區(qū)的概念,這就是存儲虛擬化的雛形。而到了2000年,在x86平臺上VMware首先提出了平臺虛擬化技術(shù)的概念,以及后續(xù)隨著CPU速度越來越快,Intel和AMD分別在CPU指令架構(gòu)中引入虛擬化指令,在服務(wù)器領(lǐng)域和數(shù)據(jù)中心范圍內(nèi)虛擬化技術(shù)得到的極大發(fā)展,從而催生了云計算技術(shù)的出現(xiàn)??梢哉f,虛擬化技術(shù)是云計算技術(shù)得以實現(xiàn)并推廣落地的重要基石,同時,隨著云計算技術(shù)的演進(jìn),虛擬化技術(shù)也同樣在不斷演進(jìn),從最早的計算虛擬化發(fā)展到目前的應(yīng)用虛擬化,兩者是一種相輔相成,螺旋式推進(jìn)的關(guān)系。
云計算技術(shù)從誕生到當(dāng)前,共經(jīng)歷了3個階段,分別稱為云計算1.0、云計算2.0和云計算3.0,在不同的階段,虛擬化技術(shù)的表現(xiàn)形式和關(guān)注點也不相同,兩者關(guān)系如下圖所示:
在云計算1.0時代,主要是將傳統(tǒng)IT硬件基礎(chǔ)設(shè)施轉(zhuǎn)換為虛擬化基礎(chǔ)設(shè)施,來提升資源利用率。該階段的關(guān)鍵特征體現(xiàn)為:通過計算虛擬化技術(shù)的引入,將企業(yè)IT應(yīng)用與底層的基礎(chǔ)設(shè)施徹底分離解耦,將多個企業(yè)IT應(yīng)用實例及運(yùn)行環(huán)境(客戶機(jī)操作系統(tǒng),GuestOS)復(fù)用在相同的物理服務(wù)器上,并通過虛擬化集群調(diào)度軟件,將更多的IT應(yīng)用復(fù)用在更少的服務(wù)器節(jié)點上,從而實現(xiàn)資源利用效率的提升。
在云計算2.0時代,主要是向云租戶提供池化資源服務(wù)和精細(xì)化自動管理,推動企業(yè)業(yè)務(wù)的云化演進(jìn)。該階段的關(guān)鍵特征體現(xiàn)為:不僅通過計算虛擬化完成CPU、內(nèi)存、裸金屬服務(wù)器等池化資源的集中管理和自動調(diào)度,同時引入存儲虛擬化和網(wǎng)絡(luò)虛擬化技術(shù),實現(xiàn)數(shù)據(jù)中心內(nèi)部存儲資源和網(wǎng)絡(luò)資源的池化集中管理和統(tǒng)一調(diào)度。面向內(nèi)部和外部的租戶,將原本需要通過數(shù)據(jù)中心管理員人工干預(yù)的基礎(chǔ)設(shè)施資源復(fù)雜低效的申請、釋放與配置過程,轉(zhuǎn)變?yōu)橐绘I式全自動化資源發(fā)放服務(wù)過程。這個階段大幅提升了企業(yè)基礎(chǔ)設(shè)施資源的快速敏捷發(fā)放能力,縮短了基礎(chǔ)設(shè)施資源準(zhǔn)備周期,實現(xiàn)資源的按需彈性供給。為企業(yè)核心業(yè)務(wù)走向敏捷,更好地應(yīng)對瞬息萬變的競爭與發(fā)展奠定了基礎(chǔ)。云計算2.0階段面向云租戶的基礎(chǔ)設(shè)施資源服務(wù)供給,可以是虛擬機(jī)形式,可以是容器(輕量化虛擬機(jī)),也可以是物理機(jī)形式。該階段的企業(yè)云化演進(jìn),暫時還不涉及基礎(chǔ)設(shè)施層之上的IT應(yīng)用與中間件、數(shù)據(jù)庫軟件架構(gòu)的變化。
在云計算3.0時代,面向應(yīng)用開發(fā)者及管理維護(hù)者提供分布式微服務(wù)化應(yīng)用架構(gòu)和大數(shù)據(jù)智能化服務(wù)。
該階段的關(guān)鍵特征體現(xiàn)為:企業(yè)IT應(yīng)用架構(gòu)逐步開始去IOE化,依托開源增強(qiáng)、跨不同業(yè)務(wù)應(yīng)用領(lǐng)域高度共享的數(shù)據(jù)庫、中間件平臺服務(wù)層以及功能更加輕量化解耦、數(shù)據(jù)與應(yīng)用邏輯徹底分離的分布式無狀態(tài)化架構(gòu),從而實現(xiàn)支撐企業(yè)業(yè)務(wù)敏捷化、智能化以及資源利用效率提升。
5、數(shù)據(jù)中心內(nèi)部虛擬化技術(shù)分類
目前,在數(shù)據(jù)中心內(nèi)虛擬服務(wù)器、虛擬網(wǎng)絡(luò)、虛擬存儲、虛擬設(shè)備和其他“虛擬技術(shù)”等已對傳統(tǒng)基礎(chǔ)設(shè)施產(chǎn)生了逆襲。在上述云計算的三個階段,使得虛擬化技術(shù)和云計算技術(shù)得到極大發(fā)展的關(guān)鍵就是2.0時代,主要的特征就是從計算虛擬化走向存儲虛擬化和網(wǎng)絡(luò)虛擬化。
從支撐云計算按需、彈性分配資源,與硬件解耦的虛擬化技術(shù)的角度來看,云計算早期階段主要聚焦在計算虛擬化領(lǐng)域。事實上,計算虛擬化技術(shù)早在IBM 370時代就已經(jīng)在其大型機(jī)操作系統(tǒng)上誕生。技術(shù)原理是通過在OS與裸機(jī)硬件之間插入虛擬化層,來在裸機(jī)硬件指令系統(tǒng)之上仿真模擬出多個370大型機(jī)的“運(yùn)行環(huán)境”,使得上層“誤認(rèn)為”自己運(yùn)行在一個獨占系統(tǒng)之上,實際上是由計算虛擬化引擎在多個虛擬機(jī)之間進(jìn)行CPU分時調(diào)度,同時對內(nèi)存、I/O、網(wǎng)絡(luò)等訪問也進(jìn)行訪問屏蔽。
后來,當(dāng)x86平臺演進(jìn)成為在IT領(lǐng)域硬件平臺的主流之后,VMware ESX、XEN、KVM等依托于單機(jī)OS的計算虛擬化技術(shù)才將IBM 370的虛擬化機(jī)制在x86服務(wù)器的硬件體系架構(gòu)下實現(xiàn),并且在單機(jī)/單服務(wù)器虛擬化的基礎(chǔ)上引入了具備虛擬機(jī)動態(tài)遷移和HA調(diào)度能力的中小集群管理軟件,比如:VMware的vCenter/vSphere、Citrix的XEN Center和華為的FusionSphere等,從而形成當(dāng)前的計算虛擬化主體。
與此同時,作為數(shù)據(jù)信息持久化載體的存儲已經(jīng)逐步從服務(wù)器計算中剝離出來,與必不可少的CPU計算能力一樣,在數(shù)據(jù)中心發(fā)揮著至關(guān)重要的作用?,F(xiàn)在數(shù)據(jù)中心內(nèi)部不再封閉,內(nèi)部服務(wù)器互訪和對外部互聯(lián)網(wǎng)訪問需求,使得存儲和網(wǎng)絡(luò)也同計算一樣,成為數(shù)據(jù)中心IT基礎(chǔ)設(shè)施不可或缺的“三大要素”。就數(shù)據(jù)中心端到端基礎(chǔ)設(shè)施解決方案而言,不僅需要計算資源的按需分配、彈性伸縮、與硬件解耦的需求,對存儲資源和網(wǎng)絡(luò)資源需求同樣如此,因此,存儲虛擬化和網(wǎng)絡(luò)虛擬化技術(shù)應(yīng)運(yùn)而生。
對于普通x86服務(wù)器來說,CPU和內(nèi)存資源虛擬化后再將其以vCPU/vMemory的方式,按需供給用戶/租戶使用。計算計算虛擬化中僅存在資源池的“大分小”的問題。然而對于存儲來說,由于硬盤的容量有限,而客戶/租戶對數(shù)據(jù)容量的需求越來越大,因此必須對數(shù)據(jù)中心內(nèi)多個分布式服務(wù)器存儲資源,比如:服務(wù)器內(nèi)的存儲資源、外置SAN/NAS等進(jìn)行“小聚大”的整合,組成存儲資源池。這個存儲資源池,可能是單一廠家提供的同構(gòu)資源池,也可以是被存儲虛擬化層整合成為跨多廠家異構(gòu)的統(tǒng)一資源池。各種存儲資源池均能以統(tǒng)一的塊存儲、對象存儲或者文件存儲格式進(jìn)行訪問。數(shù)據(jù)存儲虛擬化示意圖如下所示:
對于數(shù)據(jù)中心網(wǎng)絡(luò)來說,網(wǎng)絡(luò)對于業(yè)務(wù)應(yīng)用,作為連接服務(wù)器節(jié)點的計算和存儲資源是一種實實在在的資源需求。傳統(tǒng)數(shù)據(jù)中心內(nèi)部,網(wǎng)絡(luò)交換功能都是在物理交換機(jī)和路由器設(shè)備上完成的,網(wǎng)絡(luò)功能對上層業(yè)務(wù)應(yīng)用而言僅僅體現(xiàn)為一個一個被通信鏈路連接起來的孤立的“盒子”,無法動態(tài)感知來自上層業(yè)務(wù)的網(wǎng)絡(luò)功能需求,完全需要人工配置的方式來實現(xiàn)對業(yè)務(wù)層網(wǎng)絡(luò)組網(wǎng)與安全隔離策略的需要。
在云時代多租戶虛擬化的環(huán)境下,不同租戶對于邊緣的路由及網(wǎng)關(guān)設(shè)備的配置管理需求也存在極大的差異化,即使物理路由器和防火墻自身的多實例能力也無法滿足云環(huán)境下租戶數(shù)量的要求,如果采用與租戶數(shù)量等量的路由器與防火墻設(shè)備,成本上無法接受。于是,伯克利大學(xué)的Nick Mckeown教授提出將網(wǎng)絡(luò)自身的功能從專用封閉平臺遷移到服務(wù)器通用x86平臺上來,SDN概念從此誕生。
網(wǎng)絡(luò)資源虛擬化后,服務(wù)器節(jié)點的應(yīng)用VM連接差異化,就可由云操作系統(tǒng)來自動化地創(chuàng)建和銷毀,并通過一次性建立起來的物理網(wǎng)絡(luò)連接矩陣,進(jìn)行任意兩個網(wǎng)絡(luò)端節(jié)點之間的虛擬通訊鏈路建立,以及必要的安全隔離保障,從而實現(xiàn)業(yè)務(wù)驅(qū)動的網(wǎng)絡(luò)自動化管理配置,大幅度降低數(shù)據(jù)中心網(wǎng)絡(luò)管理的復(fù)雜度。從資源利用率來看,任意兩個虛擬網(wǎng)絡(luò)節(jié)點之間的流量帶寬,都需要通過物理網(wǎng)絡(luò)來交換和承載,只要不超過物理網(wǎng)絡(luò)的資源配額上限(一般建議物理網(wǎng)絡(luò)按照無阻塞的CLOS模式來設(shè)計實施),一旦虛擬節(jié)點被釋放,其所對應(yīng)的網(wǎng)絡(luò)帶寬占用也將被同步釋放,因此也就相當(dāng)于實現(xiàn)對物理網(wǎng)絡(luò)資源的最大限度的“網(wǎng)絡(luò)資源動態(tài)共享”。通俗點講,網(wǎng)絡(luò)虛擬化讓多個盒子式的網(wǎng)絡(luò)實體第一次以一個統(tǒng)一整合的“網(wǎng)絡(luò)資源池”的形態(tài),出現(xiàn)在業(yè)務(wù)應(yīng)用層面前,同時與計算和存儲資源之間,也有了統(tǒng)一協(xié)同機(jī)制。網(wǎng)絡(luò)虛擬化示意圖如下圖所示:
上面基礎(chǔ)設(shè)施虛擬化技術(shù)的“三要素”是電信云領(lǐng)域需要重點關(guān)注的三個分類,屬于云計算中IaaS服務(wù)部分的內(nèi)容。
除此之外,還有基于PaaS和SaaS的桌面虛擬化技術(shù),這部分內(nèi)容因電信云領(lǐng)域目前不涉及,因此在本站的云計算分類中會有相關(guān)介紹,這里不再贅述。后續(xù),會在NFV關(guān)鍵技術(shù)分類中按照計算虛擬化、存儲虛擬化和網(wǎng)絡(luò)虛擬化三大部分逐一介紹,并會重點KVM的部署和性能調(diào)優(yōu)。