国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

云計(jì)算中虛擬機(jī)磁盤遷移時(shí)機(jī)優(yōu)化策略

2014-12-23 01:25黃黎明李先鋒
關(guān)鍵詞:通用設(shè)備表項(xiàng)磁盤

陳 睦,黃黎明,李先鋒

(上海交通大學(xué)醫(yī)學(xué)院附屬新華醫(yī)院 信息管理部,上海200092)

0 引 言

虛擬化技術(shù)是目前多種新興網(wǎng)絡(luò)計(jì)算模式的基礎(chǔ)支撐技術(shù),為用戶提供了高可用性、動(dòng)態(tài)、可擴(kuò)展、可按需分配的邏輯資源。利用虛擬機(jī)遷移技術(shù),實(shí)現(xiàn)服務(wù)器集群中各服務(wù)器的動(dòng)態(tài)負(fù)載均衡,使得整個(gè)系統(tǒng)中資源的合理利用。

虛擬機(jī)遷移的研究主要有虛擬機(jī)內(nèi)存的遷移算法研究以及虛擬機(jī)外設(shè)的遷移方法研究。針對(duì)虛擬機(jī)遷移的停機(jī)時(shí)間和遷移總時(shí)間可以設(shè)計(jì)出以下遷移方法[1-3]: “停止—拷貝”算法,“預(yù)拷貝”算法, “后拷貝”算法,以及 “懶惰拷貝”算法。網(wǎng)絡(luò)掛起/恢復(fù)ISR (internet suspend/re-sume)系統(tǒng)[4]通過(guò)分布式存儲(chǔ)器在不同的時(shí)空重現(xiàn)用戶執(zhí)行環(huán)境。Collective項(xiàng)目使用寫時(shí)復(fù)制技術(shù)[5],通過(guò)增量傳輸機(jī)制遷移虛擬機(jī)。Luo等提出了通過(guò)預(yù)拷貝算法來(lái)增量地同步虛擬機(jī)的鏡像數(shù)據(jù)以實(shí)現(xiàn)透明的遷移[6,7]。Bradford等實(shí)現(xiàn)了在數(shù)據(jù)塊級(jí)別的預(yù)拷貝算法以及寫操作扼殺的機(jī)制來(lái)遷移虛擬機(jī)的鏡像文件以實(shí)現(xiàn)在廣域網(wǎng)中的遷移[8]。針對(duì)集群環(huán)境下的虛擬機(jī)遷移,劉詩(shī)海等提出基于gSOAP的內(nèi)部角色通信的遷移方法[9]。

雖然上述解決方案都能在特定情況下取得不錯(cuò)的效果,但是對(duì)虛擬機(jī)遷移過(guò)程中遷移量最大的磁盤的細(xì)節(jié)問(wèn)題考慮不足,直接導(dǎo)致磁盤遷移的效率低下。為了提升磁盤的遷移效率,本文以Qcow2磁盤格式為例,從更細(xì)粒度的資源管理方式入手對(duì)磁盤的遷移進(jìn)行優(yōu)化,提出了一種磁盤遷移時(shí)機(jī)優(yōu)化策略,從而避免遷移過(guò)程中無(wú)謂的數(shù)據(jù)傳輸,從而達(dá)到減小數(shù)據(jù)傳輸量和總體遷移耗時(shí)的效果。

Qcow2 (qemu copy on write 2)[10]是 一 種 虛 擬 磁 盤 格式,正如其名 “寫時(shí)拷貝”,Qcow2格式的磁盤是由多個(gè)磁盤以鏈?zhǔn)浇Y(jié)構(gòu)構(gòu)成的一個(gè)整體,任意兩個(gè)相鄰磁盤中,被依賴的叫基礎(chǔ)磁盤,另一塊叫增量磁盤。在遷移Qcow2磁盤時(shí),如果遷入遷出兩端有共同的基礎(chǔ)磁盤,則可以只遷增量磁盤,否則,遷移將涉及基礎(chǔ)磁盤的部分內(nèi)容。本文的剩余部分安排如下:第二節(jié)介紹Qcow2 磁盤布局以及Qcow2磁盤的遷移流程。第三節(jié)講述Qcow2 遷移設(shè)計(jì)思路,并講述本文提出的Qcow2設(shè)備帶外遷移算法,然后通過(guò)第四節(jié)的實(shí)驗(yàn)來(lái)驗(yàn)證該算法的優(yōu)點(diǎn)。第五節(jié)對(duì)本文的主要內(nèi)容進(jìn)行總結(jié)。

1 Qcow2磁盤布局及遷移流程

1.1 Qcow2磁盤布局

以磁盤為單位的角度看,Qcow2將多塊磁盤組織為鏈?zhǔn)浇Y(jié)構(gòu),通過(guò)維護(hù)存儲(chǔ)設(shè)備邏輯地址與Qcow2實(shí)際地址的映射關(guān)系,對(duì)外提供邏輯虛擬磁盤。此結(jié)構(gòu)可以使得上層虛擬機(jī)設(shè)備對(duì)數(shù)據(jù)存儲(chǔ)的管理粒度更細(xì),不再只是以一個(gè)整體設(shè)備為單位與客戶機(jī)操作系統(tǒng)提供服務(wù),而可以通過(guò)一定的元數(shù)據(jù)組織映射方式為虛擬機(jī)提供存儲(chǔ)支持,不同虛擬磁盤中的各數(shù)據(jù)塊間產(chǎn)生了依賴關(guān)系,從而使得存儲(chǔ)設(shè)備組織數(shù)據(jù)從設(shè)備級(jí)的粒度降低到數(shù)據(jù)塊的粒度。

Qcow2帶來(lái)了靈活的數(shù)據(jù)存儲(chǔ)組織方式,由于虛擬機(jī)系統(tǒng)保存快照的操作要求對(duì)數(shù)據(jù)采用寫前拷貝的方式,Qcow2細(xì)粒度的存儲(chǔ)組織形式為其提供了良好的支持。此外,由于鏈?zhǔn)酱鎯?chǔ)特性,多個(gè)虛擬磁盤可共享一個(gè)基礎(chǔ)磁盤,因此Qcow2格式可節(jié)省大量存儲(chǔ)空間。同時(shí),即使是該增量磁盤的內(nèi)容加以修改,其容量也不會(huì)大于基礎(chǔ)磁盤的大小。

下面介紹單個(gè)Qcow2磁盤內(nèi)部的磁盤布局,如圖1所示。Qcow2將單個(gè)虛擬磁盤按固定大小,劃分成多個(gè)磁盤塊,即整個(gè)磁盤是由大量磁盤塊按序整齊排列構(gòu)成。無(wú)論是Qcow2的元數(shù)據(jù)還是數(shù)據(jù)均存儲(chǔ)在這些磁盤塊當(dāng)中。

其元數(shù)據(jù)主要可劃分為4分部:

屬性塊 (Header):位于第一個(gè)磁盤塊,保存了該Qcow2的基本屬性,如磁盤魔數(shù)、版本、存儲(chǔ)容量、塊大小等,也可據(jù)此獲得其它元數(shù)據(jù)塊的位置與長(zhǎng)度信息。

快照塊 (Snapshot):?jiǎn)蝹€(gè)Qcow2磁盤內(nèi)部可進(jìn)行快照保存,該塊存放了相應(yīng)快照的基本屬性信息,包括快照的名稱,映射塊地址,保存時(shí)間等。

圖1 Qcow2磁盤布局

映射塊 (L1,L2):維護(hù)存儲(chǔ)邏輯地址與Qcow2 實(shí)際存儲(chǔ)地址映射關(guān)系。在給定設(shè)備邏輯地址的情況下,可通過(guò)映射塊中的映射表項(xiàng)進(jìn)行二級(jí)映射查找,從而獲得所需數(shù)據(jù)塊的實(shí)際地址。

Qcow2磁盤運(yùn)行的核心環(huán)節(jié)是將設(shè)備的邏輯地址映射為設(shè)備內(nèi)部實(shí)際地址的過(guò)程。在單個(gè)Qcow2磁盤內(nèi)部,元數(shù)據(jù)部分設(shè)計(jì)了二級(jí)映射表,其中一級(jí)映射表是由多個(gè)連續(xù)的L1塊構(gòu)成。映射表中的表項(xiàng)從第一個(gè)L1塊的起始處順序存儲(chǔ),每一個(gè)表項(xiàng)負(fù)責(zé)相應(yīng)的邏輯地址范圍的轉(zhuǎn)換,該地址范圍可由屬性塊中的CLUSTER_BITS 計(jì)算得到。所有表項(xiàng)長(zhǎng)度固定且相等,記錄了一個(gè)二級(jí)映射表的地址,每個(gè)二級(jí)映射表由一個(gè)單獨(dú)的L2塊構(gòu)成,與一級(jí)映射表類似,表項(xiàng)依然以固定長(zhǎng)度從L2塊起始處順序存儲(chǔ),每個(gè)表項(xiàng)負(fù)責(zé)相應(yīng)邏輯地址范圍的轉(zhuǎn)換,其存儲(chǔ)內(nèi)容為所請(qǐng)求邏輯地址在Qcow2設(shè)備中的實(shí)際地址。至此,完成了邏輯地址到Qcow2層物理地址的映射,單磁盤Qcow2二層尋址如圖2所示。

圖2 單磁盤Qcow2二層尋址

在多個(gè)Qcow2磁盤的鏈?zhǔn)酱鎯?chǔ)中,可能出現(xiàn)邏輯地址在當(dāng)前磁盤無(wú)法找到有效映射表項(xiàng)的情形,由此需跨越至基礎(chǔ)磁盤進(jìn)行映射,其對(duì)于讀請(qǐng)求和寫請(qǐng)求中的處理方式有異。在讀請(qǐng)求中,遇到無(wú)效的映射表項(xiàng)時(shí),該請(qǐng)求被直接轉(zhuǎn)至基礎(chǔ)磁盤,從而將對(duì)增量磁盤的讀請(qǐng)求轉(zhuǎn)化為對(duì)基礎(chǔ)磁盤的讀請(qǐng)求,如果基礎(chǔ)磁盤依然無(wú)法完成映射,則可繼續(xù)向依賴的基礎(chǔ)磁盤轉(zhuǎn)發(fā)讀請(qǐng)求,如此迭代進(jìn)行。在寫請(qǐng)求中,遇到無(wú)效表項(xiàng)的情況,首先在增量磁盤分配數(shù)據(jù)塊,然后根據(jù)其邏輯地址在映射塊中構(gòu)建映射表項(xiàng),Qcow2多磁盤尋址示意圖如圖3所示。

圖3 Qcow2多磁盤尋址

1.2 Qcow2磁盤的遷移流程

由于Qcow2磁盤獨(dú)特的鏈?zhǔn)浇Y(jié)構(gòu),QEMU 遷移分為兩種模式:獨(dú)立遷移模式和共享遷移模式。獨(dú)立遷移模式適用于遷入遷出兩端沒(méi)有相同基礎(chǔ)磁盤的情形,將遷出端磁盤鏈上被遷移客戶機(jī)依賴的所有數(shù)據(jù)塊發(fā)送至遷入端,在遷出端形成一個(gè)獨(dú)立的磁盤,該磁盤不依賴任何其它磁盤。共享遷移適用于遷移兩端具有相同基礎(chǔ)磁盤的情形,該模式只對(duì)增量磁盤進(jìn)行遷移,增量磁盤存儲(chǔ)容量較基礎(chǔ)磁盤越小。

圖4是Qcow2增量磁盤作為塊設(shè)備在QEMU 中的遷移流程。QEMU 塊設(shè)備遷移是在通用設(shè)備層進(jìn)行的,以設(shè)備數(shù)據(jù)為遷移對(duì)象,而非設(shè)備本身,即其遷移時(shí)并不傳輸存儲(chǔ)設(shè)備層的任何元數(shù)據(jù),只傳輸上層軟件需要的邏輯層數(shù)據(jù)內(nèi)容。

圖4 基于Qcow2磁盤數(shù)據(jù)的遷移

QEMU 塊遷移采用了 “存—傳—取”的模式,在遷移Qcow2磁盤時(shí),其 “存”的行為是通過(guò)向QEMU 通用塊設(shè)備層發(fā)送讀請(qǐng)求,該請(qǐng)求通過(guò)Qcow2的設(shè)備驅(qū)動(dòng)再逐層轉(zhuǎn)發(fā),最終獲得請(qǐng)求地址的數(shù)據(jù),這一系列過(guò)程中,Qcow2磁盤中所有元數(shù)據(jù)都只服務(wù)于Qcow2的設(shè)備驅(qū)動(dòng),而未被通用塊設(shè)備層甚至更高層的應(yīng)用感知。隨后,在 “傳”的環(huán)節(jié)中,其傳輸對(duì)象也是讀請(qǐng)求獲得的數(shù)據(jù),即只對(duì)應(yīng)用層有意義的磁盤存儲(chǔ)內(nèi)容。在 “取”的環(huán)節(jié)中,遷入端會(huì)將收到的數(shù)據(jù)打包成寫請(qǐng)求向通用設(shè)備層下發(fā),繼而通過(guò)Qcow2 設(shè)備驅(qū)動(dòng)完成寫請(qǐng)求。遷移最終的結(jié)果是,在Qcow2設(shè)備層以上的層次來(lái)看,遷移兩端的數(shù)據(jù)是完全一致的,但在Qcow2存儲(chǔ)設(shè)備內(nèi)部,其元數(shù)據(jù)幾乎不可能完全相同。

在通用設(shè)備層遷移的好處體現(xiàn)在兩個(gè)方面:①通用設(shè)備層對(duì)遷移流程的控制,使各種格式的虛擬磁盤驅(qū)動(dòng)無(wú)須考慮遷移的實(shí)現(xiàn),減輕了磁盤驅(qū)動(dòng)的開(kāi)發(fā)壓力,避免每個(gè)磁盤驅(qū)動(dòng)實(shí)現(xiàn)遷移接口;②通用設(shè)備層遷移的兼容性較好,遷入端和遷出端無(wú)需具備相同的虛擬磁盤格式,因?yàn)橥ㄓ迷O(shè)備層負(fù)責(zé)了遷移的邏輯控制,而各驅(qū)動(dòng)實(shí)現(xiàn)了相同的設(shè)備讀寫接口,這樣不管底層設(shè)備是否異構(gòu),遷入和遷出兩端便可以通用設(shè)備層進(jìn)行數(shù)據(jù)交互。

2 Qcow2設(shè)備帶外遷移算法

2.1 Qcow2遷移設(shè)計(jì)思路

在通用設(shè)備層進(jìn)行遷移是一種優(yōu)雅的方法,屏蔽了底層設(shè)備的細(xì)節(jié),為不同虛擬存儲(chǔ)設(shè)備提供了通用的數(shù)據(jù)遷移接口[11],但由此造成了對(duì)磁盤格式特點(diǎn)的忽視,這在面對(duì)Qcow2獨(dú)立模式遷移時(shí)尤其明顯:

(1)作為動(dòng)態(tài)映射磁盤格式,Qcow2具有的一項(xiàng)重要功能便是壓縮。在遷移過(guò)程中,基于數(shù)據(jù)內(nèi)容的遷移會(huì)首先在遷出端Qcow2驅(qū)動(dòng)層為通用設(shè)備層解壓縮,將解壓縮的內(nèi)容傳輸?shù)竭w入端后可能會(huì)對(duì)該數(shù)據(jù)進(jìn)行壓縮后再存儲(chǔ)。反復(fù)進(jìn)行的壓縮和解壓縮造成大量無(wú)謂的系統(tǒng)開(kāi)銷。

(2)通用設(shè)備層的遷移是面向數(shù)據(jù)的,即將遷移行為轉(zhuǎn)化為多個(gè)讀寫請(qǐng)求,每個(gè)讀寫請(qǐng)求向相應(yīng)的設(shè)備驅(qū)動(dòng)轉(zhuǎn)發(fā),在Qcow2中,其L2 數(shù)據(jù)塊不會(huì)全部?jī)?chǔ)存在內(nèi)存中,因此這些讀寫請(qǐng)求的下發(fā)不僅使得內(nèi)存讀寫更為頻繁,也因讀寫L2數(shù)據(jù)塊而增加了物理讀寫請(qǐng)求的發(fā)出頻率。

(3)對(duì)于Qcow2而言,其二級(jí)地址映射模式通常將邏輯上地址連續(xù)的內(nèi)容存儲(chǔ)在非連續(xù)的實(shí)際物理地址中,這在增量磁盤中體現(xiàn)得更為明顯,因此,遷移中大量的順序讀寫邏輯地址的請(qǐng)求在Qcow2設(shè)備層經(jīng)二級(jí)地址映射后很可能體現(xiàn)為物理設(shè)備上的隨機(jī)讀寫請(qǐng)求,從而降低讀寫效率。

鑒于上述考慮,本文針對(duì)Qcow2 設(shè)備的獨(dú)立遷移模式[12]進(jìn)行優(yōu)化,將基礎(chǔ)磁盤與增量磁盤遷移內(nèi)容分離,對(duì)基礎(chǔ)磁盤的數(shù)據(jù)內(nèi)容直接進(jìn)行設(shè)備層遷移,從而避免遷移兩端在遷移基礎(chǔ)磁盤數(shù)據(jù)時(shí)由壓縮引起的無(wú)謂系統(tǒng)開(kāi)銷,減少遷移時(shí)讀寫流程中的多次尋址,減少順序請(qǐng)求轉(zhuǎn)為隨機(jī)請(qǐng)求的發(fā)生次數(shù),最終提高遷移速度,基于Qcow2磁盤設(shè)備的遷移如圖5所示。

圖5 基于Qcow2磁盤設(shè)備的遷移

QEMU 的通用設(shè)備層遷移不區(qū)分?jǐn)?shù)據(jù)來(lái)源,遷移數(shù)據(jù)既可能來(lái)自基礎(chǔ)磁盤,也可能來(lái)自增量磁盤,客觀上造成了基礎(chǔ)磁盤和增量磁盤兩部分?jǐn)?shù)據(jù)的交替?zhèn)鬏?,因此,?duì)基礎(chǔ)磁盤采用基于設(shè)備的遷移可以分別將基礎(chǔ)磁盤和增量磁盤數(shù)據(jù)傳輸時(shí)機(jī)進(jìn)行集中,實(shí)現(xiàn)Qcow2磁盤遷移時(shí)機(jī)進(jìn)行優(yōu)化。

基礎(chǔ)磁盤遷移時(shí)機(jī)優(yōu)化體現(xiàn)在該磁盤內(nèi)容的遷移不依賴整個(gè)遷移進(jìn)程中Qcow2驅(qū)動(dòng)對(duì)讀請(qǐng)求的處理,而是忽略Qcow2的存儲(chǔ)與管理細(xì)節(jié),直接在遷移開(kāi)始階段以設(shè)備形式遷移,從而使得基礎(chǔ)磁盤數(shù)據(jù)傳輸不會(huì)被增量磁盤數(shù)據(jù)傳輸中斷。Qcow2磁盤的寫請(qǐng)求處理為寫時(shí)拷貝模式:對(duì)于客戶機(jī)下發(fā)的寫請(qǐng)求,新的數(shù)據(jù)只會(huì)更新到增量鏡像,在虛擬機(jī)的整個(gè)運(yùn)行過(guò)程中,虛擬機(jī)不會(huì)對(duì)基礎(chǔ)鏡像造成任何改變。這樣的特性使得Qcow2的基礎(chǔ)磁盤遷移在數(shù)據(jù)一致性方面的問(wèn)題被大大簡(jiǎn)化,以虛擬設(shè)備整體的形式發(fā)送到遷入端,基礎(chǔ)磁盤遷移前后,遷入遷出兩端上該磁盤文件完全相同。

增量磁盤遷移時(shí)機(jī)的集中主要體現(xiàn)在處理遷移造成的讀寫請(qǐng)求時(shí),增量磁盤與基礎(chǔ)磁盤的鏈?zhǔn)疥P(guān)系被割裂,從而使得增量磁盤的數(shù)據(jù)傳輸不會(huì)被基礎(chǔ)磁盤數(shù)據(jù)傳輸中斷。在基礎(chǔ)磁盤遷移完成后,由于其所有數(shù)據(jù)已被傳至遷入端,增量磁盤在處理由遷移造成的讀請(qǐng)求時(shí)應(yīng)當(dāng)避免再去基礎(chǔ)磁盤查取數(shù)據(jù)。這需要修改Qcow2驅(qū)動(dòng)層,使其識(shí)別遷移造成的讀請(qǐng)求,并返回約定的已遷移標(biāo)識(shí)。

通過(guò)基礎(chǔ)和增量磁盤遷移時(shí)機(jī)的集中完成了Qcow2遷移時(shí)機(jī)的優(yōu)化,該優(yōu)化較傳統(tǒng)方法的優(yōu)勢(shì)主要體現(xiàn)在:①基礎(chǔ)磁盤的遷移對(duì)物理存儲(chǔ)來(lái)講是一個(gè)文件的傳輸,因此這部分遷移造成的讀寫請(qǐng)求無(wú)需經(jīng)過(guò)Qcow2的驅(qū)動(dòng),避免了Qcow2的尋址過(guò)程。②Qcow2本身具有壓縮特性,由于其較大的數(shù)據(jù)量而占用了網(wǎng)絡(luò)資源,在遷入端看來(lái),基于Qcow2設(shè)備的遷移辦法可避免對(duì)數(shù)據(jù)的無(wú)謂解壓縮與壓縮,達(dá)到加速遷移的目的。

2.2 Qcow2設(shè)備帶外遷移算法

作為一種虛擬設(shè)備,Qcow2基礎(chǔ)磁盤在宿主機(jī)看來(lái)是一個(gè)普通文件,在整個(gè)遷移過(guò)程中,該文件內(nèi)容不會(huì)發(fā)生任何變化。因此,可將該設(shè)備的遷移以帶外遠(yuǎn)程文件拷貝的形式實(shí)現(xiàn)。依賴現(xiàn)有的遠(yuǎn)程文件拷貝 (remote file copy,RCP)協(xié)議[13],通過(guò)在遷移兩端物理機(jī)建立傳輸文件的連接,即可完成基礎(chǔ)磁盤的整體設(shè)備遷移,磁盤遷移時(shí)機(jī)優(yōu)化流程如圖6所示。

圖6 磁盤遷移時(shí)機(jī)優(yōu)化流程

以設(shè)備整體形式對(duì)基礎(chǔ)磁盤進(jìn)行遷移,與QEMU 原有的遷移辦法完全兼容。從遷出端看,其對(duì)增量鏡像讀請(qǐng)求如果可以在增量鏡像找到地址,則發(fā)送增量鏡像內(nèi)的數(shù)據(jù),否則在基礎(chǔ)鏡像映射地址發(fā)送基礎(chǔ)鏡像內(nèi)的數(shù)據(jù)。從遷入端看,其對(duì)Qcow2磁盤不存在讀請(qǐng)求操作,其通過(guò)增量鏡像獲取的數(shù)據(jù)打包成寫請(qǐng)求后,與普通寫請(qǐng)求完全相同,只是對(duì)基礎(chǔ)鏡像的更新操作,Qcow2驅(qū)動(dòng)可確保該請(qǐng)求正確完成。所以,基礎(chǔ)磁盤整體遷移并未對(duì)QEMU 原有的遷移流程造成影響,因此,在基礎(chǔ)磁盤整體遷移后,再按QEMU 原有的遷移流程進(jìn)行增量磁盤的遷移從設(shè)計(jì)邏輯來(lái)講是完全可行的。

具體到QEMU 虛擬機(jī)遷移的流程,基礎(chǔ)磁盤整體遷移的體現(xiàn)在開(kāi)始階段和迭代階段:

開(kāi)始階段:為了在實(shí)現(xiàn)上保持與QEMU 原有遷移流程的兼容,基礎(chǔ)磁盤遷移可以看作是增量遷移進(jìn)行數(shù)據(jù)內(nèi)容傳輸前期的參數(shù)設(shè)定階段,因此,可在遷移開(kāi)始階段對(duì)基礎(chǔ)磁盤遷移,其具體實(shí)現(xiàn)形式為從遷出端向遷入端發(fā)送基礎(chǔ)磁盤文件,本文選擇RCP協(xié)議進(jìn)行。

迭代階段:該階段中基礎(chǔ)磁盤遷移已經(jīng)完成,正在進(jìn)行增量磁盤遷移。此處需要關(guān)注增量磁盤的讀請(qǐng)求。按照Qcow2的驅(qū)動(dòng)實(shí)現(xiàn),其讀請(qǐng)求應(yīng)當(dāng)在增量磁盤內(nèi)無(wú)法完成地址映射時(shí)轉(zhuǎn)而向基礎(chǔ)磁盤發(fā)送讀請(qǐng)求。但在基礎(chǔ)磁盤整體遷移后,如果該讀請(qǐng)求并非客戶機(jī)下發(fā),而是由遷移模塊向通用設(shè)備層下發(fā)的,那么其獲得的數(shù)據(jù)則將通過(guò)遷移連接發(fā)送至遷入端,而這些數(shù)據(jù)已經(jīng)在開(kāi)始階的基礎(chǔ)磁盤整體遷移過(guò)程中遷移完成,這樣就失去了整體遷移的意義。因此,對(duì)于此階段的讀請(qǐng)求,應(yīng)添加標(biāo)志位對(duì)于讀請(qǐng)求的來(lái)源加以區(qū)分。Qcow2 驅(qū)動(dòng)中的讀函數(shù)為qcow2_co_readv,其中有一項(xiàng)整型參數(shù)表示扇區(qū)個(gè)數(shù),因扇區(qū)個(gè)數(shù)不可能為負(fù),所以將該整型最高位用來(lái)區(qū)分該讀請(qǐng)求的來(lái)源,在遷移模塊下發(fā)讀請(qǐng)求時(shí),將此參數(shù)最高位置為1,在客戶機(jī)發(fā)送讀請(qǐng)求時(shí),該參數(shù)正常。進(jìn)入到qcow2_co_readv函數(shù)內(nèi)時(shí),對(duì)此參數(shù)最高位進(jìn)行判斷,并標(biāo)記目前請(qǐng)求是否為遷移模塊的請(qǐng)求,如果是,則在地址映射遇到結(jié)果為未分配塊時(shí)停止該請(qǐng)求向基礎(chǔ)磁盤的轉(zhuǎn)發(fā),其它地址映射結(jié)果的處理流程不變。如果不是,則按QEMU 原有正常流程處理。

3 Qcow2遷移時(shí)機(jī)優(yōu)化實(shí)驗(yàn)

本實(shí)驗(yàn)硬件設(shè)備由三臺(tái)配置相同的物理機(jī)組在成:CPU 為Intel(R)Xeon (R)X5650 2.67GHz,六核十二線程,內(nèi)存32G,硬盤1T 容量7200rpm 32MB緩存,千兆以太網(wǎng)互聯(lián)。

本節(jié)測(cè)試了5個(gè)不同大小的增量磁盤在磁盤遷移時(shí)機(jī)優(yōu)化前后的表現(xiàn),它們有共同的基礎(chǔ)磁盤,大小為812MB,該磁盤對(duì)外提供2GB的邏輯磁盤地址。實(shí)驗(yàn)結(jié)果如圖7。

圖7 空載下不同增量磁盤遷移優(yōu)化前后對(duì)比

從圖7可以看出,優(yōu)化前,遷移耗時(shí)對(duì)增量磁盤大小的變化并不敏感,甚至在增量磁盤較大時(shí),遷移時(shí)間還輕微地縮短了。這是因?yàn)樵谕ㄓ脡K設(shè)備層遷移數(shù)據(jù)時(shí),遷移對(duì)象是Qcow2對(duì)外呈現(xiàn)的邏輯磁盤的數(shù)據(jù),遷移時(shí)間主要由邏輯磁盤空間大小決定,與Qcow2內(nèi)部如何組織磁盤鏈?zhǔn)浇Y(jié)構(gòu)無(wú)關(guān),無(wú)論增量磁盤大小如何變化,其對(duì)外提供的邏輯空間大小是不變的,因此遷移的時(shí)間基本恒定。至于在增量磁盤增大時(shí)出現(xiàn)的遷移時(shí)間輕微下降,是因?yàn)橄噍^于增量磁盤較小的情況,遷移的大部分?jǐn)?shù)據(jù)只依靠增量磁盤完成,而無(wú)需再去基礎(chǔ)磁盤查取,從而減小了開(kāi)銷。

下面再來(lái)分析優(yōu)化后的情況。優(yōu)化后增量磁盤大小直接影響著遷移時(shí)間,甚至在某些極端條件下,優(yōu)化后的效果輕微弱于優(yōu)化前的系統(tǒng)表現(xiàn)。這是因?yàn)閮?yōu)化后,遷移時(shí)間由兩部分構(gòu)成:基礎(chǔ)磁盤遷移時(shí)間和增量磁盤遷移時(shí)間,基礎(chǔ)磁盤遷移時(shí)間由基礎(chǔ)磁盤的大小決定。在基礎(chǔ)磁盤不變的情況下,隨著增量磁盤的增長(zhǎng),遷移時(shí)間逐漸變長(zhǎng)。

由于優(yōu)化的效果體現(xiàn)在優(yōu)化前后遷移時(shí)間的差值,結(jié)合上述分析,優(yōu)化效果主要由邏輯磁盤大小與虛擬磁盤(包括基礎(chǔ)磁盤與增量磁盤)大小的差值決定。結(jié)合Qcow2格式的特點(diǎn),此差值的兩個(gè)主要決定因素是:邏輯磁盤空間與基礎(chǔ)磁盤空間的比值和基礎(chǔ)磁盤與增量磁盤的邏輯空間重疊表示量。其中,前者對(duì)優(yōu)化效果起正面作用,因?yàn)閴嚎s比越高,基礎(chǔ)磁盤越小,時(shí)間差值越大。后者對(duì)優(yōu)化效果起負(fù)面作用,基礎(chǔ)磁盤與增量磁盤重疊表示邏輯磁盤空間,意味著一個(gè)邏輯數(shù)據(jù)塊占用了兩個(gè)塊的虛擬磁盤空間,使得虛擬磁盤增大,減小優(yōu)化前后遷移時(shí)間差值,這種數(shù)據(jù)重疊表示是由虛擬機(jī)對(duì)增量磁盤寫操作導(dǎo)致基礎(chǔ)磁盤相應(yīng)數(shù)據(jù)塊失效引起的。

在系統(tǒng)實(shí)際運(yùn)行情況下,基礎(chǔ)磁盤通常扮演著虛擬電氣的角色,只安裝操作系統(tǒng)和用戶定制的應(yīng)用程序。這使其具有兩個(gè)顯著特點(diǎn):大量邏輯磁盤空間空閑,使得邏輯磁盤與基礎(chǔ)磁盤空間比值很高;系統(tǒng)運(yùn)行時(shí),對(duì)基礎(chǔ)磁盤表示的邏輯數(shù)據(jù)塊寫請(qǐng)求非常少,以致基礎(chǔ)磁盤與增量磁盤重疊表示的邏輯空間非常少。內(nèi)核編譯負(fù)載下不同增量磁盤遷移優(yōu)化前后對(duì)比如圖8所示。

圖8 內(nèi)核編譯負(fù)載下不同增量磁盤遷移優(yōu)化前后對(duì)比

本文對(duì)虛擬機(jī)有負(fù)載情形下的優(yōu)化效果進(jìn)行測(cè)試,在有負(fù)載鏡像中,由于安裝了Linux源碼樹(shù),基礎(chǔ)磁盤增大到1.3GB,對(duì)外提供邏輯磁盤空間依舊為2GB。從圖7中可以看出,基礎(chǔ)磁盤的增大使得每個(gè)增量磁盤的遷移時(shí)間都相應(yīng)增加。但對(duì)于Qcow2的應(yīng)用環(huán)境來(lái)講,邏輯空間與基礎(chǔ)磁盤與大小比值通常較為懸殊,至少為數(shù)倍,多的甚至達(dá)數(shù)十倍,圖9實(shí)驗(yàn)描述了基礎(chǔ)磁盤大小為695MB,增量磁盤大小為1300MB 時(shí),不同邏輯空間大小下的磁盤優(yōu)化情況,可以發(fā)現(xiàn)物理空間一定的情況下,邏輯空間越大,優(yōu)化效果越好。

圖9 不同邏輯磁盤遷移優(yōu)化前后對(duì)比

綜上,在系統(tǒng)正常使用狀態(tài)下,虛擬磁盤總大小通常小于邏輯磁盤空間大小,該優(yōu)化可以帶來(lái)正面效果。在極端條件下,即用戶將所有邏輯磁盤空間都耗盡時(shí),也只造成了微弱的負(fù)面效果,這也是該技術(shù)優(yōu)化的最壞情況。因此,在絕大部分情況下,該優(yōu)化技術(shù)可以有效加速遷移。

4 結(jié)束語(yǔ)

針對(duì)虛擬機(jī)遷移中虛擬磁盤遷移效率低下的問(wèn)題,本文以qcow2磁盤格式為例,從更細(xì)粒度的資源管理方式入手,提出了一種qcow2 設(shè)備帶外遷移算法。首先闡述qcow2磁盤布局以及其遷移過(guò)程,然后針對(duì)Qcow2設(shè)備的獨(dú)立遷移模式進(jìn)行優(yōu)化,針對(duì)qcow2格式磁盤自壓縮的的特點(diǎn),分離基礎(chǔ)磁盤和增量磁盤的遷移階段,對(duì)基礎(chǔ)磁盤直接遷移,不對(duì)增量磁盤進(jìn)行解壓縮,避免了因解壓縮和壓縮帶來(lái)不必要的系統(tǒng)開(kāi)銷,同時(shí)降低遷移的數(shù)據(jù)量,縮短遷移延時(shí)。實(shí)驗(yàn)結(jié)果表明,相對(duì)與優(yōu)化前,虛擬磁盤的遷移時(shí)間可以降低25%-55%左右。

[1]LU Xiaohu,LI Qin.Research and implementation on migration of virtual machine including Vm-disk [J].Computer Science,2009,36 (7):256-261 (in Chinese).[呂小虎,李沁.虛擬機(jī)磁盤遷移技術(shù)研究與實(shí)現(xiàn) [J].計(jì)算機(jī)科學(xué),2009,36(7):256-261.]

[2]Jie Zheng,Tze Sing Eugene Ng,Kunwadee Sripanidkulchai.Workload-aware live storage migration for clouds [C]//Proceedings of the 7th International Conference on Virtual Execution Environments.New York:ACM,2011:133-144.

[3]Hines M R,Gopalan K.Post-copy based live virtual machine migration using adaptive pre-paging and dynamic self-ballooning[C]//Proc Fifth International Conf Virtual Execution Environments.New York:ACM,2009:51-60.

[4]Satyanarayanan M,Gilbert B,Toups M,et al.Pervasive personal computing in an internet suspend/resume system [J].IEEE Internet Computing,2007,11 (2):16-25.

[5]Bogdan Nicolae,F(xiàn)ranck Cappello.A hybrid local storage transfer scheme for live migration of I/O intensive workloads[C]//Proceedings of the 21st International Symposium on High-Performance Parallel and Distributed Computing.New York:ACM,2012:85-96.

[6]Luo Y,Zhang B,Wang X,et al.Live and incremental wholesystem migration of virtual machines using block-bitmap[C]//Proc IEEE International Conf Cluster Computing.Washington DC, USA:IEEE Computer Society,2008:99-106.

[7]ZHANG Binbin,LUO Yingwei, WANG Xiaolin,et al.Whole-system live migration mechanism for virtual machines[J].Acta Electronica Sinica,2009,37 (4):894-899 (in Chinese).[張彬彬,羅英偉,汪小林,等.虛擬機(jī)全系統(tǒng)在線遷移 [J].電子學(xué)報(bào),2009,37 (4):894-899.]

[8]Bradford R,Kotsovinos E,F(xiàn)eldmann A,et al.Live wide-area migration of virtual machines including local persistent state.[C]//Proc Third ACM Conf Virtual Execution Environments.New York:ACM Press,2007:169-179.

[9]LIU Shihai,SUN Yuqing,SHI Weiqi,et al.Rapid migration method of virtual machine for extensible cluster environment[J].Journal of Southeast University (Natural Science Edition),2011,41 (3):468-472 (in Chinese).[劉詩(shī)海,孫宇清,石維琪,等.面向可擴(kuò)展集群環(huán)境的快速虛擬機(jī)遷移方法[J].東南大學(xué)學(xué)報(bào):自然科學(xué)版,2011,41 (3):468-472.]

[10]McLoughlin M.The QCOW2image format [DB/OL].https://people.gnome.org/~markmc/qcow-image-format.html,2008.

[11]REN Qingdong,LI Tianyang,YUAN Man,et al.Generalized data migration tool based on metadata-driven [J].Journal of Daqing Petroleum Institute,2011,35 (1):76-80 (in Chinese).[任慶東,李天陽(yáng),袁滿,等.基于元數(shù)據(jù)驅(qū)動(dòng)的通用數(shù)據(jù)遷移工具 [J].大慶石油學(xué)院學(xué)報(bào),2011,35 (1):76-80.]

[12]LIU Pengcheng,CHEN Rong.Cloud computing-oriented live migration framework for virtual machine[J].Computer Engineering,2010,36 (5):37-39 (in Chinese). [劉鵬程,陳榕.面向云計(jì)算的虛擬機(jī)動(dòng)態(tài)遷移框架 [J].計(jì)算機(jī)工程,2010,36 (5):37-39.]

[13]JIANG Nan,SHU Yantai,KANG Yang.A cross-layer method to improve receiver-centric transport protocol in WLAN [J].Control &Automation,2008,24 (18):56-58(in Chinese). [姜楠,舒炎泰,康楊.一種RCP 協(xié)議在WLAN 下的跨層改進(jìn)方法 [J].微計(jì)算機(jī)信息,2008,24(18):56-58.]

猜你喜歡
通用設(shè)備表項(xiàng)磁盤
一種改進(jìn)的TCAM路由表項(xiàng)管理算法及實(shí)現(xiàn)
基于ARMA模型預(yù)測(cè)的交換機(jī)流表更新算法
解決Windows磁盤簽名沖突
修改磁盤屬性
變電站電流互感器額定容量選擇
SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項(xiàng)轉(zhuǎn)換的流表調(diào)度優(yōu)化
磁盤組群組及iSCSI Target設(shè)置
創(chuàng)建VSAN群集
關(guān)于招標(biāo)過(guò)程中電梯選型及建設(shè)性建議分析
通用設(shè)備節(jié)能成為金橋綠色低碳發(fā)展的重要途徑