陳立秀
【摘 要】 隨著網(wǎng)絡(luò)技術(shù)以及信息技術(shù)的迅速發(fā)展,大數(shù)據(jù)技術(shù)、人工智能以及物聯(lián)網(wǎng)技術(shù)都得到了廣泛的應(yīng)用,對于大數(shù)據(jù)的管理與維護(hù)需要有效的手段與技術(shù)來實(shí)現(xiàn)。分布式服務(wù)器的數(shù)據(jù)管理,可以通過計(jì)算熱遷移來實(shí)現(xiàn),但問題是計(jì)算熱遷移僅僅是在主機(jī)之間為虛擬機(jī)提供計(jì)算資源(CPU、內(nèi)存、I/O)的切換,這對于虛擬機(jī)管理員手工平衡計(jì)算資源有很大的幫助,可是計(jì)算熱遷移對虛擬機(jī)的存儲位置的切換并沒有任何的作用,因?yàn)橛?jì)算熱遷移不會改變虛擬機(jī)的存儲位置。如果用戶環(huán)境需要對存儲設(shè)備進(jìn)行維護(hù),或者當(dāng)前存儲設(shè)備無法滿足虛擬機(jī)的虛擬硬盤的容量,那么就需要將虛擬機(jī)的存儲位置進(jìn)行轉(zhuǎn)移,而且虛擬機(jī)在轉(zhuǎn)移的過程中要能保持伺服狀態(tài)。對此可以通過存儲熱遷移或者計(jì)算存儲合并遷移來實(shí)現(xiàn),還可以通過SDRS(Storage Distributed Resource Scheduler)存儲分布式資源平衡計(jì)劃來自動感知當(dāng)前用戶的存儲現(xiàn)象,并且給出遷移建議或者直接遷移。
【關(guān)鍵詞】 虛擬機(jī);計(jì)算;存儲;熱遷移;SDRS
隨著大數(shù)據(jù)的出現(xiàn)與應(yīng)用,服務(wù)器虛擬化技術(shù)也顯得尤為重要,而虛擬機(jī)的“熱遷移”技術(shù)又是虛擬化技術(shù)中的熱點(diǎn)。虛擬機(jī)的熱遷移是指對處于開機(jī)狀態(tài)的虛擬機(jī)執(zhí)行實(shí)時遷移,也就是在保持業(yè)務(wù)不中斷的情況下將虛擬機(jī)從一臺物理主機(jī)遷移到另一臺物理主機(jī)。虛擬化管理員不能在不同數(shù)據(jù)中心之間執(zhí)行熱遷移,共享存儲(包括分布式存儲)是熱遷移的前提條件。計(jì)算熱遷移技術(shù)是在主機(jī)之間為虛擬機(jī)提供計(jì)算資源的切換,無論用戶將虛擬機(jī)的計(jì)算資源移向何處,存儲位置都不會發(fā)生改變。有時候用戶并不希望切換計(jì)算資源的主機(jī),只希望切換存儲位置,或者希望計(jì)算資源及存儲位置同時切換,為了滿足這個要求,可以使用存儲熱遷移,讓虛擬機(jī)在保持伺服的狀態(tài)下以及不改變計(jì)算資源的前提下從一個位置切換到另一個位置??梢允褂糜?jì)算和存儲合并遷移的方式來脫離共享存儲基礎(chǔ)設(shè)施前提的計(jì)算和存儲資源的切換。通過數(shù)據(jù)群集,SDRS存儲分布式資源平衡計(jì)劃自動感知當(dāng)前用戶的存儲現(xiàn)象,給出遷移建議或者直接遷移。
一、存儲熱遷移的基本原理
首先存儲熱遷移會將虛擬機(jī)的NVRAM、VMX、VMkernel交換文件、日志文件、快照文件等從原存儲位置復(fù)制到新的存儲位置,但此時并沒有復(fù)制虛擬硬盤中的VMDK文件。然后在目標(biāo)存儲設(shè)備上啟動一個虛擬機(jī)的影子(也叫映像),創(chuàng)建一張子磁盤(也叫鏡像磁盤),子磁盤的作用是在同步存儲熱遷移發(fā)生過程中實(shí)現(xiàn)源和目標(biāo)存儲設(shè)備之間的I/O操作。換言之,存儲熱遷移發(fā)生時,對虛擬機(jī)磁盤的操作都將被寫入到子磁盤中,這就可以最大限度地確保存儲熱遷移發(fā)生時的I/O操作不被丟失。再然后存儲熱遷移將虛擬機(jī)的虛擬磁盤文件VMDK(暫可稱為父磁盤),從源存儲設(shè)備復(fù)制到目標(biāo)存儲設(shè)備,當(dāng)父磁盤(原始VMDK)復(fù)制完成之后,再將父磁盤(原始VMDK)和子磁盤(鏡像磁盤)關(guān)聯(lián)并整合為新的VMDK文件。將控制權(quán)以非常迅速的方式移交給目標(biāo)存儲設(shè)備之上的影子虛擬機(jī),注意這個過程非常的快速,幾乎在幾秒鐘內(nèi)完成,不會對伺服業(yè)務(wù)造成過大的影響,很多時候用戶幾乎感知不到。最后整個存儲熱遷移完成之后,將從源存儲設(shè)備中刪除虛擬機(jī)文件。
二、虛擬機(jī)存儲熱遷移的實(shí)施
(一)實(shí)施目標(biāo)
確認(rèn)虛擬機(jī)的配置文件和VMDK在共享存儲中,虛擬機(jī)正在使用ESXi-E的計(jì)算資源,對共享存儲中的虛擬機(jī)及VMDK存儲熱遷移到ESXi-E的本地存儲中。
(二)實(shí)施環(huán)境
實(shí)施環(huán)境如下圖所示,當(dāng)前虛擬機(jī)的配置文件及VMDK存放在共享存儲中,計(jì)算資源在ESXi-E(192.168.199.5)之上。由于當(dāng)前用戶環(huán)境需要對共享存儲進(jìn)行維護(hù),所以需要將原本存儲在共享存儲中的虛擬機(jī)配置文件及VMDK執(zhí)行存儲熱遷移到ESXi-E的本地存儲中,在這個存儲熱遷移的過程中,虛擬機(jī)要保持伺服狀態(tài)并維持I/O的持續(xù)操作。
(三)實(shí)施步驟
首先用戶確認(rèn)當(dāng)前虛擬機(jī)的各項(xiàng)配置文件和VMDK文件存儲在一個名為Datastore-iSCSI-SAN的共享存儲中,而且正在使用ESXi-E(192.168.199.5)的計(jì)算資源。
選擇需要執(zhí)行存儲熱遷移的虛擬機(jī),然后點(diǎn)擊遷移,在出現(xiàn)的更改數(shù)據(jù)存儲選項(xiàng)中,將虛擬機(jī)配置文件及VMDK遷移到ESXi-E的本地存儲Datastore-ESXi-E中,完成上述配置之后,可以看到遷移進(jìn)度條。完成存儲熱遷移之后,用戶可以在ESXi-E的本地存儲Datastore-ESXi-E中確認(rèn)存儲遷移的情況,而且在這個過程中虛擬機(jī)是一直處于伺服狀態(tài)的,并且伺服沒有中斷。
三、虛擬機(jī)的計(jì)算和存儲同時熱遷移
(一)虛擬機(jī)的計(jì)算和存儲同時熱遷移工作原理
在VMware vSphere5.1開始以及之后版本,允許對虛擬機(jī)同時執(zhí)行計(jì)算和存儲的熱遷移,也就是將計(jì)算熱遷移和存儲熱遷移的兩個功能合并。這種合并的熱遷移最大的優(yōu)勢在于可以形成一種無共享存儲設(shè)備的熱遷移,集中體現(xiàn)計(jì)算熱遷移和存儲熱遷移的共同優(yōu)勢。一般而言這種合組方式的熱遷移只需要用戶兩臺主機(jī)處于相同的二層或者大二層即可。
值得注意的是,要對虛擬機(jī)執(zhí)行計(jì)算和存儲執(zhí)行熱遷移功能(合并遷移)的配置時,必須使用vSphere Web Client登錄vCenter,而不能使用vSphere Client完成配置,因?yàn)関Sphere Client不支持合并遷移的功能。
在執(zhí)行合并熱遷移過程中,被首先復(fù)制的是熱遷移的存儲流量,待存儲流量復(fù)制完成之后,才開始復(fù)制計(jì)算流量(內(nèi)存流量),換言之,合并熱遷移首先發(fā)生的是存儲熱遷移,然后才是計(jì)算熱遷移。存在這種先后順序的原因是存儲遷移中的虛擬硬盤比內(nèi)存的體積要大很多,速度較慢,所以存儲熱遷移的時間要比計(jì)算熱遷移更長,然而內(nèi)存變化的頻率會比虛擬硬盤變化的頻率更高,如果在合并遷移過程中首先去執(zhí)行計(jì)算熱遷移,那么內(nèi)存位圖文件在等待存儲熱遷移完成的過程中,會變得非?!坝纺[”。所以在合并熱遷移的架構(gòu)設(shè)計(jì)上采取先存儲遷移再計(jì)算遷移的原則。
(二)虛擬機(jī)的計(jì)算和存儲同時熱遷移實(shí)施
1. 實(shí)現(xiàn)目標(biāo)
確定虛擬機(jī)的配置文件和VMDK及計(jì)算資源都在ESXi-E(192.168.199.5)之上,將虛擬機(jī)在ESXi-E上的存儲資源和計(jì)算資源全部熱遷移到ESXi-D中。
2. 實(shí)施步驟
首先要確認(rèn)當(dāng)前虛擬機(jī)的計(jì)算資源和存儲資源都在物理主機(jī)ESXi-E之上,然后選擇需要執(zhí)行合并遷移的虛擬機(jī),選擇點(diǎn)擊遷移,再選擇更改主機(jī)和數(shù)據(jù)存儲;緊接著選擇遷移的目標(biāo)資源,在該環(huán)境中請選擇“Cluster”群集;進(jìn)一步選擇要遷移的目標(biāo)主機(jī)ESXi-D(192.168.199.4);再選擇目標(biāo)數(shù)據(jù)存儲,可將Datastore-ESXi-D-Local的數(shù)據(jù)存儲作為目標(biāo)存儲,選擇最優(yōu)vMotion性能預(yù)留CPU,這就意味著如果目標(biāo)主機(jī)沒有足夠的CPU資源供立即使用,那么vMotion將不會啟動。完成上述過程之后,會看到合并熱遷移的執(zhí)行進(jìn)度條,當(dāng)進(jìn)度條完成時,整個合并熱遷移即完成。
四、SDRS資源平衡計(jì)劃
(一)數(shù)據(jù)存儲群集
數(shù)據(jù)存儲群集是具備相似屬性的多個數(shù)據(jù)存儲的集合,也叫作對數(shù)據(jù)存儲的池化,在聚合的存儲資源上,它們共享資源和管理接口,以實(shí)現(xiàn)空間資源平衡、I/O延遲平衡、親合性和反親和規(guī)則等高級功能等。
(二)存儲資源分布式平衡計(jì)劃——SDRS(Storage Distributed Resource Scheduler)
云數(shù)據(jù)中心的大量存儲資源可能具備不同的存儲容量、不同的I/O負(fù)載,因此管理人工來決策虛擬機(jī)的初始存儲位置,以及后期的資源平衡是一個非常頭痛的事情。這就需要一種能自動平衡存儲資源,決策虛擬機(jī)存儲位置的功能,毫無疑問存儲DRS(簡稱SRDS)是最佳選擇。
SDRS必須基于數(shù)據(jù)存儲群集建立,SDRS要能根據(jù)數(shù)據(jù)存儲群集中的不同數(shù)據(jù)存儲的空間情況、I/O延遲、親和性和反親和性規(guī)則來自動決策虛擬機(jī)的存放位置以及后期的資源平衡計(jì)劃。在初始決策虛擬機(jī)的存放位置時,SDRS會對數(shù)據(jù)存儲群集中所有數(shù)據(jù)存儲執(zhí)行SRDS算法,然后給出建議或者直接將虛擬機(jī)自動地存放相應(yīng)的數(shù)據(jù)存儲之上,通常SDRS給出的這個建議和執(zhí)行的平衡行為是根據(jù)一系列的條件制訂的最佳方案。
SDRS如何去決策虛擬機(jī)初始放置的位置,以及何時做出遷移或者給出遷移建議?
SDRS主要依賴兩個關(guān)鍵因素來決策虛擬機(jī)初始放置的位置以及后繼的平衡方式與建議。這兩個關(guān)鍵因素是數(shù)據(jù)存儲空間的使用率和數(shù)據(jù)存儲的I/O負(fù)載情況。
已用空間:當(dāng)某個數(shù)據(jù)存儲的空間使用率達(dá)到該設(shè)定值時,SDRS便執(zhí)行存儲遷移或者給出遷移的建議,最終是遷移還是僅給出遷移的建議,取決于SDRS的模式(是全自動還是非自動)。該參數(shù)的默認(rèn)值是80%,比如當(dāng)前數(shù)據(jù)存儲上有一臺虛擬機(jī),該虛擬機(jī)的虛擬硬盤隨著業(yè)務(wù)伺服的持續(xù),將逐步變大,如果存放該虛擬機(jī)及虛擬硬盤的數(shù)據(jù)存儲空間已經(jīng)被使用了80%,此時如SRDS果使用的是全自動模式,那么它將會把該虛擬機(jī)直接遷移到數(shù)據(jù)存儲群集中的另一個數(shù)據(jù)存儲中,如果SDRS使用的是非自動模式,那么它會給用戶提供遷移建議,但是不會自動完成存儲遷移。
I/O泄后時間主要是為了避免I/O瓶頸,設(shè)定一個關(guān)于I/O延遲的值,如果某個數(shù)據(jù)存儲上虛擬機(jī)的I/O延遲超大于了設(shè)定值,那么SDRS則會執(zhí)行存儲遷移或者給出存儲遷移的建議,將虛擬機(jī)的存儲遷移到時一個低于I/O泄后時間的數(shù)據(jù)存儲之上,到底是執(zhí)行存儲遷移還是僅給出建議,這取決于SDRS的模式。
五、小結(jié)
通過虛擬機(jī)的存儲熱遷移的基本工作原理、注意事項(xiàng)、計(jì)算和存儲,以及熱遷移的工作原理,分析了不同的合并熱遷移的典型場景、數(shù)據(jù)存儲群集、存儲資源分布式平衡計(jì)劃-人工平衡和全自動化等,對于大數(shù)據(jù)的熱遷移實(shí)現(xiàn)了較好的效果。
參考文獻(xiàn):
[1] 楊云. 網(wǎng)絡(luò)服務(wù)器搭建、配置與管理[M]. 北京:人民郵電出版社,2019.
[2] 柳義筠. hadoop應(yīng)用開發(fā)[M]. 上海:上海交通大學(xué)出版社,2021.
[3] 池瑞楠,姚駿屏. 虛擬化技術(shù)與應(yīng)用[M]. 北京:高等教育出版社,2018.
[4] 敖志剛. 網(wǎng)絡(luò)虛擬化技術(shù)完全指南[M]. 北京:電子工業(yè)出版社,2021.