計(jì)算虛擬化就是在虛擬系統(tǒng)和底層硬件之間抽象出CPU和內(nèi)存等,以供虛擬機(jī)使用。計(jì)算虛擬化技術(shù)需要模擬出一套操作系統(tǒng)的運(yùn)行環(huán)境,在這個(gè)環(huán)境你可以安裝Windows也是可以安裝Linux,這些操作系統(tǒng)被稱作Guest OS。他們相互獨(dú)立,互不影響(相對(duì)的,因?yàn)楫?dāng)主機(jī)資源不足會(huì)出現(xiàn)競(jìng)爭(zhēng)等問(wèn)題,導(dǎo)致運(yùn)行緩慢等問(wèn)題)。

計(jì)算虛擬化可以將主機(jī)單個(gè)物理核虛擬出多個(gè)vcpu,這些vcpu本質(zhì)上就是運(yùn)行的進(jìn)程,考慮到系統(tǒng)調(diào)度,所以并不是虛擬的核數(shù)越多越好;內(nèi)存相似的,把物理機(jī)上面內(nèi)存進(jìn)行邏輯劃分出多個(gè)段,供不同的虛擬機(jī)使用,每個(gè)虛擬機(jī)看到的都是自己獨(dú)立的一個(gè)內(nèi)存。除了這些還需要模擬網(wǎng)絡(luò)設(shè)備、BIOS等。這個(gè)虛擬化軟件叫做hypervisor,著名的有ESXI、xen、KVM等,通常分為兩種,第一種是直接部署到物理服務(wù)器上面的,
由于直接部署到裸機(jī)上面,hypervisor需要自帶各種硬件驅(qū)動(dòng),虛擬機(jī)的所有操作都需要經(jīng)過(guò)hypervisor。還有另一種虛擬化hypervisor,以KVM最為流行(個(gè)人電腦上面安裝的virtualbox以及workstations也是),它們依賴與宿主機(jī)操作系統(tǒng),這樣的好處就是可以充分利用宿主機(jī)的各種資源管理以及驅(qū)動(dòng),但效率上面會(huì)打一些折扣。下圖是KVM的在使用IO時(shí)候的流程圖。
當(dāng)然也可以從全虛擬化、半虛擬化、硬件輔助虛擬化的角度去說(shuō),現(xiàn)在數(shù)據(jù)中心基本都是硬件輔助虛擬化了,全虛擬化就是完全靠軟件模擬、半虛擬需要修改操作讓其知道自己運(yùn)行在虛擬環(huán)境中、硬件輔助由硬件為每個(gè)Guest OS提供一套寄存器、Guest OS可以直接運(yùn)行在特權(quán)級(jí),這樣提高效率。
雖然當(dāng)前數(shù)據(jù)中心商用的虛擬化軟件仍然以VMware的ESXI為主,但在OpenStack的推動(dòng)下,KVM正在慢慢追趕,并且KVM是開(kāi)源的,下面簡(jiǎn)單介紹一下KVM。KVM是基于內(nèi)核的,從內(nèi)核2.6以后就自帶了,可以運(yùn)行在x86和power等主流架構(gòu)上。 KVM主要是CPU和內(nèi)存的虛擬化,其它設(shè)備的虛擬化和虛擬機(jī)的管理則需要依賴QEMU完成。一個(gè)虛擬機(jī)本質(zhì)上就是一個(gè)進(jìn)程,運(yùn)行在QEMU-KVM進(jìn)程地址空間,KVM(內(nèi)核空間)和qemu(用戶空間)相結(jié)合一起向用戶提供完整的虛擬化環(huán)境。
2. 網(wǎng)絡(luò)虛擬化
網(wǎng)絡(luò)虛擬化是一種重要的網(wǎng)絡(luò)技術(shù),該技術(shù)可在物理網(wǎng)絡(luò)上虛擬多個(gè)相互隔離的虛擬網(wǎng)絡(luò),不依賴于底層物理連接,能夠動(dòng)態(tài)變化網(wǎng)絡(luò)拓?fù)洌峁┒嘧鈶舾綦x,從而使得不同用戶之間使用獨(dú)立的網(wǎng)絡(luò)資源切片變成可能,從而提高網(wǎng)絡(luò)資源利用率,實(shí)現(xiàn)彈性的網(wǎng)絡(luò)。這里面目前最為火熱的即軟件定義網(wǎng)絡(luò)(Software Defined Network, SDN),SDN的出現(xiàn)使得網(wǎng)絡(luò)虛擬化的實(shí)現(xiàn)更加靈活和高效,同時(shí)網(wǎng)絡(luò)虛擬化也成為SDN應(yīng)用中的重量級(jí)應(yīng)用。其核心技術(shù)OpenFlow通過(guò)將網(wǎng)絡(luò)設(shè)備控制面與數(shù)據(jù)面分離開(kāi)來(lái),從而實(shí)現(xiàn)了網(wǎng)絡(luò)流量的靈活控制,使網(wǎng)絡(luò)作為管道變得更加智能。
通過(guò)SDN實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化包括物理網(wǎng)絡(luò)管理,網(wǎng)絡(luò)資源虛擬化和網(wǎng)絡(luò)隔離三部分。而這三部分內(nèi)容往往通過(guò)專門的中間層軟件完成,我們稱之為網(wǎng)絡(luò)虛擬化平臺(tái)。虛擬化平臺(tái)需要完成物理網(wǎng)絡(luò)的管理和抽象虛擬化,并分別提供給不同的租戶。此外,虛擬化平臺(tái)還應(yīng)該實(shí)現(xiàn)不同租戶之間的相互隔離,保證不同租戶互不影響。虛擬化平臺(tái)的存在使得租戶無(wú)法感知到網(wǎng)絡(luò)虛擬化的存在,也即虛擬化平臺(tái)可實(shí)現(xiàn)用戶透明的網(wǎng)絡(luò)虛擬化。
(1)虛擬化平臺(tái)
虛擬化平臺(tái)是介于數(shù)據(jù)網(wǎng)絡(luò)拓?fù)浜妥鈶艨刂破髦g的中間層。面向數(shù)據(jù)平面,虛擬化平面就是控制器;而面向租戶控制器,虛擬化平臺(tái)就是數(shù)據(jù)平面。所以虛擬化平臺(tái)本質(zhì)上具有數(shù)據(jù)平面和控制層面兩種屬性。在虛擬化的核心層,虛擬化平臺(tái)需要完成物理網(wǎng)絡(luò)資源到虛擬資源的虛擬化映射過(guò)程。面向租戶控制器,虛擬化平臺(tái)充當(dāng)數(shù)據(jù)平面角色,將模擬出來(lái)的虛擬網(wǎng)絡(luò)呈現(xiàn)給租戶控制器。從租戶控制器上往下看,只能看到屬于自己的虛擬網(wǎng)絡(luò),而并不了解真實(shí)的物理網(wǎng)絡(luò)。而在數(shù)據(jù)層面的角度看,虛擬化平臺(tái)就是控制器,而交換機(jī)并不知道虛擬平面的存在。所以虛擬化平臺(tái)的存在實(shí)現(xiàn)了面向租戶和面向底層網(wǎng)絡(luò)的透明虛擬化,其管理全部的物理網(wǎng)絡(luò)拓?fù)洌⑾蜃鈶籼峁└綦x的虛擬網(wǎng)絡(luò)。

網(wǎng)絡(luò)虛擬化平臺(tái)示意圖
虛擬化平臺(tái)不僅可以實(shí)現(xiàn)物理拓?fù)涞教摂M拓?fù)洹耙粚?duì)一”的映射,也應(yīng)該能實(shí)現(xiàn)物理拓?fù)洹岸鄬?duì)一”的映射。而由于租戶網(wǎng)絡(luò)無(wú)法獨(dú)占物理平面的交換機(jī),所以本質(zhì)上虛擬網(wǎng)絡(luò)實(shí)現(xiàn)了“一虛多”和“多虛一”的虛擬化。此處的“一虛多”是指單個(gè)物理交換機(jī)可以虛擬映射成多個(gè)虛擬租戶網(wǎng)中的邏輯交換機(jī),從而被不同的租戶共享;“多虛一”是指多個(gè)物理交換機(jī)和鏈路資源被虛擬成一個(gè)大型的邏輯交換機(jī)。即租戶眼中的一個(gè)交換機(jī)可能在物理上由多個(gè)物理交換機(jī)連接而成。

