由于直接部署在裸機(jī)上,虛擬機(jī)管理程序需要自帶硬件驅(qū)動(dòng),虛擬機(jī)的所有操作都需要通過(guò)虛擬機(jī)管理程序。還有一種虛擬化虛擬機(jī)管理程序,KVM是最流行的一種(安裝在個(gè)人電腦上的virtualbox和工作站也是)。它們依賴于主機(jī)操作系統(tǒng)。這樣做的好處是他們可以充分利用主機(jī)的各種資源管理和驅(qū)動(dòng),但是效率會(huì)打折扣。下圖是使用IO時(shí)KVM的流程圖。
當(dāng)然,從完全虛擬化、半虛擬化和硬件輔助虛擬化的角度來(lái)看,數(shù)據(jù)中心現(xiàn)在基本上是硬件輔助虛擬化。完全虛擬化完全依靠軟件模擬,半虛擬化需要修改操作,讓他們知道自己在虛擬環(huán)境中運(yùn)行。硬件輔助為每個(gè)Guest OS提供一組寄存器,Guest OS可以直接在特權(quán)級(jí)運(yùn)行,從而提高效率。
雖然VMware的ESXI仍然是數(shù)據(jù)中心的主要虛擬化軟件,但KVM正在慢慢趕上OpenStack,KVM是開(kāi)源的。下面簡(jiǎn)單介紹一下KVM。KVM是基于內(nèi)核的,從內(nèi)核2.6開(kāi)始帶。它可以在x86和power等主流架構(gòu)上運(yùn)行。KVM主要是CPU和內(nèi)存的虛擬化,其他設(shè)備的虛擬化和虛擬機(jī)的管理都需要QEMU。一個(gè)虛擬機(jī)本質(zhì)上就是一個(gè)進(jìn)程,運(yùn)行在qemu-KVM進(jìn)程地址空,KVM (kernel 空)和QEMU (user 空)相結(jié)合,為用戶提供一個(gè)完整的虛擬化環(huán)境。
2.網(wǎng)絡(luò)虛擬化
網(wǎng)絡(luò)虛擬化是一種重要的網(wǎng)絡(luò)技術(shù),它可以在物理網(wǎng)絡(luò)上虛擬多個(gè)隔離的虛擬網(wǎng)絡(luò),而不依賴于底層的物理連接,并且可以動(dòng)態(tài)改變網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),提供多租戶隔離,從而使不同的用戶可以使用獨(dú)立的網(wǎng)絡(luò)資源片,從而提高網(wǎng)絡(luò)資源的利用率,實(shí)現(xiàn)靈活的網(wǎng)絡(luò)。目前最火的是軟件定義網(wǎng)絡(luò)(SDN)。SDN的出現(xiàn)使得網(wǎng)絡(luò)虛擬化的實(shí)現(xiàn)更加靈活高效,同時(shí)網(wǎng)絡(luò)虛擬化也成為SDN應(yīng)用中的一個(gè)重量級(jí)應(yīng)用。其核心技術(shù)OpenFlow將網(wǎng)絡(luò)設(shè)備的控制平面和數(shù)據(jù)平面分開(kāi),從而實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)流量的靈活控制,使網(wǎng)絡(luò)作為一個(gè)管道更加智能化。
通過(guò)SDN實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化包括物理網(wǎng)絡(luò)管理、網(wǎng)絡(luò)資源虛擬化和網(wǎng)絡(luò)隔離三個(gè)部分。這三部分往往由專(zhuān)門(mén)的中間層軟件來(lái)完成,我們稱(chēng)之為網(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ù)平面,虛擬化平面是控制器;對(duì)于租戶控制器,虛擬化平臺(tái)就是數(shù)據(jù)平面。因此,虛擬化平臺(tái)本質(zhì)上有兩個(gè)屬性:數(shù)據(jù)平面和控制平面。在虛擬化的核心層,虛擬化平臺(tái)需要完成從物理網(wǎng)絡(luò)資源到虛擬資源的虛擬化映射過(guò)程。面對(duì)租戶控制器,虛擬化平臺(tái)充當(dāng)數(shù)據(jù)平面,并將模擬的虛擬網(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ù)?,為租戶提供隔離的虛擬網(wǎng)絡(luò)。
網(wǎng)絡(luò)虛擬化平臺(tái)示意圖
虛擬化平臺(tái)不僅可以實(shí)現(xiàn)物理拓?fù)涞教摂M拓?fù)涞摹耙粚?duì)一”映射,還可以實(shí)現(xiàn)物理拓?fù)涞摹岸鄬?duì)一”映射。由于租戶網(wǎng)絡(luò)不能壟斷物理平面的交換機(jī),所以虛擬網(wǎng)絡(luò)本質(zhì)上實(shí)現(xiàn)了“一虛多”和“多虛一”的虛擬化。這里的“一個(gè)虛擬多臺(tái)”是指單個(gè)物理交換機(jī)可以虛擬映射到多個(gè)虛擬租戶網(wǎng)絡(luò)中的邏輯交換機(jī),從而由不同的租戶共享;“多個(gè)虛擬交換機(jī)”是指將多個(gè)物理交換機(jī)和鏈路資源虛擬化為一個(gè)大型邏輯交換機(jī)。也就是說(shuō),租戶眼中的交換機(jī)可以通過(guò)多個(gè)物理交換機(jī)進(jìn)行物理連接。
將單個(gè)虛擬節(jié)點(diǎn)映射到多個(gè)物理節(jié)點(diǎn)
(2)網(wǎng)絡(luò)資源虛擬化
為了實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化,虛擬化平臺(tái)需要對(duì)物理網(wǎng)絡(luò)資源進(jìn)行抽象虛擬化,包括拓?fù)涮摂M化、節(jié)點(diǎn)資源虛擬化和鏈路資源虛擬化。
拓?fù)涮摂M化
拓?fù)涮摂M化是網(wǎng)絡(luò)虛擬化平臺(tái)最基本的功能。虛擬平臺(tái)需要完成從虛擬節(jié)點(diǎn)和虛擬鏈路到租戶虛擬網(wǎng)絡(luò)中物理節(jié)點(diǎn)和鏈路的映射。這包括“一對(duì)一”和“一對(duì)多”映射。在“一對(duì)一”映射中,虛擬節(jié)點(diǎn)將映射到物理節(jié)點(diǎn),虛擬鏈路也是如此。在“一對(duì)多”映射中,一個(gè)虛擬節(jié)點(diǎn)可以映射成多個(gè)連接在一起的物理節(jié)點(diǎn);邏輯鏈路也可以映射到鏈接在一起的多個(gè)鏈路。對(duì)于物理節(jié)點(diǎn),一個(gè)物理節(jié)點(diǎn)可以被多個(gè)邏輯節(jié)點(diǎn)映射。
節(jié)點(diǎn)資源虛擬化
節(jié)點(diǎn)資源的虛擬化包括節(jié)點(diǎn)Flow表、CPU等資源的抽象虛擬化。流表資源本身就是交換節(jié)點(diǎn)的稀缺資源。如果可以虛擬化,然后由虛擬化平臺(tái)分配給不同的租戶,那么不同的租戶可以分配和限制節(jié)點(diǎn)資源的使用。拓?fù)涑橄笾皇峭瓿闪藦奶摂M節(jié)點(diǎn)到物理節(jié)點(diǎn)的映射,并沒(méi)有指定不同用戶/租戶對(duì)物理節(jié)點(diǎn)資源的分配。如果要對(duì)網(wǎng)絡(luò)進(jìn)行更細(xì)粒度的虛擬化,就需要對(duì)節(jié)點(diǎn)資源進(jìn)行虛擬化。
鏈接資源虛擬化
和節(jié)點(diǎn)資源一樣,鏈路資源也是網(wǎng)絡(luò)中重要的資源,但是拓?fù)涑橄蟛](méi)有規(guī)定一些用戶可以使用多少鏈路資源。因此,為了實(shí)現(xiàn)鏈路資源的合理分配,有必要對(duì)鏈路資源進(jìn)行虛擬化??梢猿橄筇摂M化的鏈路資源包括租戶可用的帶寬、端口的隊(duì)列資源等。
(3)網(wǎng)絡(luò)隔離
網(wǎng)絡(luò)資源虛擬化只是完成了從物理資源到虛擬資源的抽象過(guò)程。為了實(shí)現(xiàn)完整的網(wǎng)絡(luò)虛擬化,需要為不同的租戶提供隔離的網(wǎng)絡(luò)資源。網(wǎng)絡(luò)隔離需要隔離SDN的控制平面和數(shù)據(jù)平面,以保證不同租戶控制器之間的互補(bǔ)干擾和不同虛擬網(wǎng)絡(luò)之間的隔離。另外,為了滿足用戶在地址空之間的定制需求,虛擬化平臺(tái)還需要對(duì)網(wǎng)絡(luò)地址進(jìn)行虛擬化。
控制平面隔離
控制器的性能對(duì)SDN的整體性能影響很大,所以虛擬化平臺(tái)需要保證租戶的控制器在運(yùn)行時(shí)不受其他租戶控制器的影響,從而保證租戶可以使用虛擬化平臺(tái)的資源。虛擬化平臺(tái)連接到租戶控制器時(shí),需要保證進(jìn)程能夠獲得一定的資源,比如CPU資源。虛擬化平臺(tái)本身可以輕松地將租戶的控制器相互隔離。
數(shù)據(jù)平面隔離
數(shù)據(jù)平面的資源包括節(jié)點(diǎn)的CPU和流表、鏈路帶寬、端口的隊(duì)列資源等。為了保證每個(gè)租戶的正常使用,需要相應(yīng)隔離數(shù)據(jù)平面的資源,以保證租戶的資源不被其他租戶占用。如果資源沒(méi)有在數(shù)據(jù)平面上隔離,那么數(shù)據(jù)平面上租戶的數(shù)據(jù)之間就會(huì)產(chǎn)生競(jìng)爭(zhēng),不能保證租戶對(duì)網(wǎng)絡(luò)資源的需求,所以需要在數(shù)據(jù)平面上隔離資源。
地址隔離
為了使租戶能夠在自己的虛擬租戶網(wǎng)絡(luò)中任意使用地址,虛擬化平臺(tái)需要完成地址隔離。地址隔離主要通過(guò)地址映射來(lái)實(shí)現(xiàn)。租戶可以隨意定制地址空,這些地址是面向租戶的虛擬化平臺(tái)虛擬地址。虛擬化平臺(tái)在轉(zhuǎn)發(fā)租戶控制器南行協(xié)議報(bào)文時(shí),需要將虛擬地址翻譯成整個(gè)網(wǎng)絡(luò)唯一的物理地址。租戶服務(wù)器的地址在發(fā)送到接入交換機(jī)時(shí)會(huì)被修改為物理地址,然后數(shù)據(jù)包的轉(zhuǎn)發(fā)會(huì)基于修改后的物理地址。當(dāng)數(shù)據(jù)到達(dá)租戶目的地址的主機(jī)出口時(shí),控制器需要將該地址轉(zhuǎn)換為原租戶設(shè)置的地址,從而完成地址的虛擬映射。地址的虛擬映射使租戶可以使用完整的地址空和任意的FlowSpace (flow 空:由流表匹配項(xiàng)組成的多維空),而物理層實(shí)現(xiàn)地址隔離,使不同租戶使用特定的物理地址和數(shù)據(jù)不會(huì)相互干擾。
3.存儲(chǔ)虛擬化
存儲(chǔ)虛擬化是一種貫穿整個(gè)信息技術(shù)環(huán)境的技術(shù),用于簡(jiǎn)化原本可能相對(duì)復(fù)雜的底層基礎(chǔ)架構(gòu)。存儲(chǔ)虛擬化的思想是將資源的邏輯映像從物理存儲(chǔ)中分離出來(lái),從而為系統(tǒng)和管理員提供簡(jiǎn)化和無(wú)縫的資源虛擬視圖。存儲(chǔ)虛擬化在云計(jì)算之前已經(jīng)發(fā)展了很長(zhǎng)時(shí)間,與云計(jì)算沒(méi)有特別的關(guān)系。云計(jì)算存儲(chǔ)通常指亞馬遜的S3存儲(chǔ)或EBS存儲(chǔ),它將一個(gè)統(tǒng)一的資源庫(kù)劃分為多個(gè)用戶。
對(duì)用戶來(lái)說(shuō),虛擬化存儲(chǔ)資源就像一個(gè)巨大的“存儲(chǔ)池”。用戶看不到特定的磁盤(pán)和磁帶,也不必關(guān)心他們的數(shù)據(jù)通向哪個(gè)特定的存儲(chǔ)設(shè)備。
從管理角度來(lái)看,虛擬存儲(chǔ)池采用集中式管理,根據(jù)具體需求動(dòng)態(tài)分配存儲(chǔ)資源給各種應(yīng)用。值得指出的是,通過(guò)使用虛擬化技術(shù),磁帶庫(kù)可以由磁盤(pán)陣列模擬,為應(yīng)用程序提供與磁盤(pán)一樣快但與磁帶庫(kù)一樣大的存儲(chǔ)資源。這就是VTL,虛擬磁帶庫(kù)(VTL),它如今被廣泛使用,在當(dāng)今的企業(yè)存儲(chǔ)系統(tǒng)中扮演著越來(lái)越重要的角色。
主流存儲(chǔ)虛擬化有以下三種技術(shù)。在云計(jì)算場(chǎng)景中,通常會(huì)根據(jù)實(shí)際場(chǎng)景選擇合適的技術(shù)。
療養(yǎng)院
先說(shuō)高端存儲(chǔ)?,F(xiàn)在高端存儲(chǔ)應(yīng)該是以EMC、IBM、HDS為主。近年來(lái),外部存儲(chǔ)隨著廉價(jià)磁盤(pán)不斷提高容量和性能,推動(dòng)了存儲(chǔ)區(qū)域網(wǎng)絡(luò)和主機(jī)光纖通道接口的不斷成熟,在數(shù)據(jù)中心,尤其是金融領(lǐng)域變得非常普遍。
存儲(chǔ)區(qū)域網(wǎng)絡(luò)提供塊存儲(chǔ)。例如,一個(gè)磁盤(pán)陣列中有10個(gè)測(cè)試數(shù)據(jù)磁盤(pán),然后10個(gè)數(shù)據(jù)磁盤(pán)可以按磁盤(pán)陣列或邏輯卷(LVM)劃分。但是,這10個(gè)數(shù)據(jù)磁盤(pán)不同于以前的物理磁盤(pán)。邏輯盤(pán)可以具有提供100克的第一物理盤(pán)和提供300克的第二物理盤(pán)。對(duì)于操作系統(tǒng)來(lái)說(shuō),無(wú)法感知是物理磁盤(pán)還是邏輯磁盤(pán),這就是存儲(chǔ)資源池的概念。RAID或LVM不僅可以提供數(shù)據(jù)保護(hù),還可以重新劃分磁盤(pán)大小,提高讀寫(xiě)速率。
但是SAN也不是沒(méi)有缺點(diǎn),價(jià)格也比較貴。光纖端口和光纖交換機(jī)價(jià)格高,所以有IPSAN存儲(chǔ),存儲(chǔ)協(xié)議由IP協(xié)議承載;無(wú)法提供數(shù)據(jù)共享,一個(gè)磁盤(pán)只能掛在一臺(tái)主機(jī)上,所以有NAS存儲(chǔ)。
噪聲控制協(xié)會(huì)
NAS是文件存儲(chǔ)。與塊存儲(chǔ)相比,文件存儲(chǔ)具有最大的數(shù)據(jù)共享優(yōu)勢(shì)。它基于標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議,存儲(chǔ)區(qū)域網(wǎng)絡(luò)有自己的一套存儲(chǔ)協(xié)議。常見(jiàn)的NAS包括NFS、FTP、HTTP文件服務(wù)器等。由于這類(lèi)設(shè)備通常有IP,一般客戶端可以作為數(shù)據(jù)網(wǎng)關(guān)服務(wù)器直接訪問(wèn)。網(wǎng)絡(luò)連接存儲(chǔ)建立在傳統(tǒng)網(wǎng)絡(luò)上,因此可以遠(yuǎn)距離傳輸。NAS易于安裝和維護(hù),但速度通常比SAN慢很多。
分布式存儲(chǔ)
隨著x86性能的提高,用x86芯片搭建的小型存儲(chǔ)系統(tǒng)開(kāi)始在中端存儲(chǔ)領(lǐng)域嶄露頭角。利用X86本地磁盤(pán)構(gòu)建大型存儲(chǔ)集群。分布式存儲(chǔ)通??梢蕴峁K存儲(chǔ)和文件存儲(chǔ)。沒(méi)有必要引入與OpenStack緊密集成的分布式存儲(chǔ)ceph。下圖是ceph官網(wǎng)的整體模塊圖,提供了CEPH FS文件存儲(chǔ)系統(tǒng)和POSIX接口,對(duì)象存儲(chǔ)和最常用的快速存儲(chǔ)。
其基石是以下RADOS,然后是系統(tǒng)組件,包括:
ceph osds:ceph的OSD(對(duì)象存儲(chǔ)設(shè)備)守護(hù)進(jìn)程。主要功能包括:數(shù)據(jù)存儲(chǔ)、復(fù)制數(shù)據(jù)處理、數(shù)據(jù)恢復(fù)、數(shù)據(jù)補(bǔ)償、平衡數(shù)據(jù)分布。并提供一些與數(shù)據(jù)相關(guān)的監(jiān)控信息給cephmonitor,讓cephmonitor可以檢查其他OSD的心跳狀態(tài)。CEPH存儲(chǔ)集群需要至少兩個(gè)CEPH操作系統(tǒng)才能有效存儲(chǔ)兩個(gè)數(shù)據(jù)。請(qǐng)注意,這里的兩個(gè)ceph OSD指的是運(yùn)行在兩個(gè)物理服務(wù)器上的守護(hù)進(jìn)程,而不是一個(gè)物理服務(wù)器上的兩個(gè)ceph OSD。
監(jiān)視器:CEPH的Moniter守護(hù)進(jìn)程,其主要功能是維護(hù)集群狀態(tài)表組,該組包含多個(gè)表,包括Moniter:CEPH、OSD映射、PG(放置組)映射和CRUSH映射。
mdss:ceph的MDS(元數(shù)據(jù)服務(wù)器)守護(hù)進(jìn)程,主要保存ceph文件系統(tǒng)的元數(shù)據(jù)。請(qǐng)注意,CEPH的數(shù)據(jù)塊設(shè)備和CEPH對(duì)象存儲(chǔ)都不需要CEPH MDS守護(hù)程序。Cephemds為基于POSIX文件系統(tǒng)的用戶提供了一些基本命令,比如ls、find等。,可以大大降低CPEH存儲(chǔ)集群的壓力。
另一個(gè)開(kāi)源對(duì)象存儲(chǔ)是openstack的Swift。Swift的初衷是低成本存儲(chǔ)超大容量的數(shù)據(jù)。swift使用容器來(lái)管理對(duì)象,允許用戶存儲(chǔ)、檢索和刪除對(duì)象及其元數(shù)據(jù),所有這些都是通過(guò)用戶友好的RESTful界面完成的。