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