譚 印,蘇雯潔
(桂林電子科技大學(xué),廣西 北海536000)
云計算最顯著的特色就是對資源和服務(wù)的虛擬處理,現(xiàn)如今越來越多的IT企業(yè)都在效仿云數(shù)據(jù)模式路線,它所消耗的能量也是有目共睹的,不光是企業(yè),就連相關(guān)政府部門也開始關(guān)心并研究云數(shù)據(jù)能量低耗的問題[1-3],這就需要借助云計算虛擬機(jī)遷移模型這項技術(shù),它是當(dāng)前高效利用云端資源和低能耗的尖端技術(shù)。眾所周知,無論是資源還是服務(wù)的虛擬化,操作者對它們的搜索都是極其便捷的,但由于虛擬機(jī)的各項策略還是或多或少地對整個平臺的性能產(chǎn)生了一定程度的影響,因此,虛擬機(jī)遷移模型的重要性顯而易見[4]。虛擬機(jī)遷移是在保證云計算中心能順利提供幫助的條件下,在有限的時間里,把虛擬機(jī)的相關(guān)節(jié)點進(jìn)行遷移,以此來減少各個節(jié)點的超負(fù)載,并有效減少云計算中心能量的耗用。
劉開南[5]等人設(shè)計了一種云數(shù)據(jù)中心基于遺傳算法的虛擬機(jī)遷移模型,構(gòu)建虛擬機(jī)遷移時間消耗模型,結(jié)合該模型通過全局遺傳算法對虛擬機(jī)遷移進(jìn)行優(yōu)化。以某企業(yè)的數(shù)據(jù)中心作為對象,采用該方法對遷移效果進(jìn)行測試,結(jié)果表明;該方法可以有效降低虛擬機(jī)的遷移次數(shù),降低了物理主機(jī)的使用頻率。張智俊[6]等人提出了基于LP&GR算法的多優(yōu)先級虛擬機(jī)遷移方法,對虛擬機(jī)的負(fù)載狀態(tài)進(jìn)行預(yù)測,以此來降低虛擬機(jī)過載概率。構(gòu)建決策分配模型,結(jié)合LP&GR算法設(shè)計多個優(yōu)先級,以此來保證虛擬機(jī)的有序遷移。分析實驗結(jié)果可知,該方法可以提高虛擬機(jī)的負(fù)載均衡性能。上述方法雖然在一定程度上實現(xiàn)了虛擬機(jī)遷移的優(yōu)化,但是均不適用于跨數(shù)據(jù)虛擬機(jī)遷移。為此研究基于深度哈希算法的云計算虛擬機(jī)遷移模型,降低跨數(shù)據(jù)虛擬機(jī)遷移的帶寬開銷。深度哈希算法具備較優(yōu)的圖像檢索功能,在云計算領(lǐng)域應(yīng)用廣泛。
利用深度哈希算法提取基本鏡像的類似程度,依據(jù)基本鏡像的類似程度構(gòu)建哈希圖。該方法主要包含無監(jiān)督階段與有監(jiān)督階段[7,8],第一種階段利用棧式自動編碼神經(jīng)網(wǎng)絡(luò)(Stacked Autoencoder,SA)學(xué)習(xí)深度卷積神經(jīng)網(wǎng)絡(luò)(DCNN)的初始參數(shù),通過逐層貪婪訓(xùn)練法學(xué)習(xí)SA的參數(shù),作為有監(jiān)督階段的優(yōu)化參數(shù)。
2.1.1 無監(jiān)督階段
利用SA學(xué)習(xí)DCNN的初始參數(shù),SA中包含數(shù)層稀疏編碼器,其中下一層的輸入均為上一層的輸出,編碼操作為依據(jù)上下次序運(yùn)行各層自編碼器;解碼操作為依據(jù)上述操作的相反方向展開解碼;該編碼器的操作原理如圖1所示。
圖1 編碼器操作原理
SA的訓(xùn)練方式是按照上下順序?qū)γ恳粚诱归_訓(xùn)練,SA的首層參數(shù)是通過原始數(shù)據(jù)獲取的,并將其轉(zhuǎn)換成向量傳遞至下一層,作為其輸入,隨即展開訓(xùn)練;直到全部編碼器訓(xùn)練結(jié)束后,在分類器中輸入最終的特征。
2.1.2 有監(jiān)督階段
SA網(wǎng)絡(luò)訓(xùn)練結(jié)束后,利用存在標(biāo)簽的樣本對SA展開有監(jiān)督調(diào)整,其調(diào)整幅度較小,確?;剧R像在漢明空間內(nèi)依舊存在較高的類似程度。為了獲取虛擬機(jī)鏡像樣本,可以參考目標(biāo)函數(shù)優(yōu)化思想,建立一個目標(biāo)函數(shù),運(yùn)用優(yōu)化求解的方式獲取具有高置信度的有效標(biāo)簽,即虛擬機(jī)鏡像樣本標(biāo)簽。然后,通過基本鏡像屬性間的語義類似程度確定樣本對A的標(biāo)簽,A的取值區(qū)間是A∈[0,1],令A(yù)的權(quán)值與基本鏡像屬性類似程度成反比,通過對比損失函數(shù)改進(jìn)有監(jiān)督階段的參數(shù)。
令樣本(x1,x2)∈X,A∈[0,1],存在標(biāo)簽的訓(xùn)練基本鏡像為X,訓(xùn)練標(biāo)簽是Y。樣本對映射空間的歐式距離為
(1)
其中,映射函數(shù)是FW。
有監(jiān)督階段的損失函數(shù)表達(dá)公式如下
(2)
有監(jiān)督階段的調(diào)整步驟如下
步驟1:利用語義標(biāo)簽學(xué)習(xí)各輸入樣本,按照標(biāo)簽語義的類似程度得到A的權(quán)值,按照順序訓(xùn)練全部樣本,獲取樣本訓(xùn)練集;
步驟2:迭代計算,以全部收斂為止。
(3)
在Y的權(quán)值大于0.5的情況下,以優(yōu)化W的方式延長歐式距離dW,依舊利用式(3)展開運(yùn)算。采用最小化映射函數(shù)的方式,完成輸出空間中各樣本點間dW的縮短與延長。
2.1.3SA二值化
通過閾值法二值化處理SA內(nèi)的特征,使其變成二值特征,節(jié)省存儲空間[9],縮短運(yùn)算時間。SA中的Tanh函數(shù)的輸出表達(dá)公式如下
(4)
SA最終輸出值的區(qū)間為[-1,1]。
通過分析每維基本景象數(shù)據(jù)的統(tǒng)計特征,利用式(5)展開閾值分割,公式如下
(5)
2.1.4 算法流程
深度哈希算法的步驟為:
步驟1:在DCNN網(wǎng)絡(luò)中輸入原始基本鏡像數(shù)據(jù)集,得到基本鏡像的特征;
步驟2:訓(xùn)練SA,通過閾值法得到二進(jìn)制哈希碼;
步驟3:依據(jù)二進(jìn)制哈希碼獲取屬性相近的基本鏡像數(shù)據(jù)集;
步驟4:語義分析屬性相近基本鏡像數(shù)據(jù)集的標(biāo)簽,得到標(biāo)簽近似權(quán)值;
步驟5:按照基本鏡像對的語義類似程度,更改SA參數(shù);
步驟6:求解漢明距離,獲取基本鏡像的類似程度;
步驟7:依據(jù)基本鏡像的類似程度構(gòu)建哈希圖。
2.2.1 模型架構(gòu)
云計算虛擬機(jī)遷移模型的架構(gòu)如圖2所示。
圖2 云計算虛擬機(jī)遷移模型架構(gòu)
根據(jù)圖2可知,在基于深度哈希算法的云計算虛擬機(jī)遷移模型中令各數(shù)據(jù)中心均存在一個MA,其作用是通過虛擬機(jī)遷移服務(wù)實現(xiàn)不同數(shù)據(jù)中心的遷移。依據(jù)各數(shù)據(jù)中心中的MA實現(xiàn)云計算虛擬機(jī)遷移過程中的信息交互[10],以及共享虛擬機(jī)鏡像過程中的信息交互。同時,操作者通過下載與利用共享存儲池中的基本鏡像,可以完成云計算虛擬機(jī)的遷移。
2.2.2 存儲單元
利用哈希圖存儲虛擬機(jī)的基本鏡像,云計算虛擬機(jī)的遷移請求叫作一次事件,在構(gòu)建新的虛擬機(jī)情況下,宿主機(jī)會傳輸請求至MA,由存儲單元完成存儲功能。在基本鏡像發(fā)送至共享存儲池時,該鏡像僅具備只讀功能。在存儲單元中不僅存儲基本鏡像副本及其散列值,還存儲由深度哈希算法獲取的彼此間類似程度。除MA以外的其余單元均不具備傳遞虛擬機(jī)鏡像功能。存儲單元的操作步驟如下:
步驟1:生成一次事件,即構(gòu)建一個新的虛擬機(jī);
步驟2:觀察共享存儲池內(nèi)有無與該事件對應(yīng)的基本鏡像,如果有與該事件對應(yīng)的基本鏡像,那么執(zhí)行步驟3,反之,安裝基本鏡像,同時傳遞請求至MA,并傳輸至共享存儲池內(nèi),設(shè)置公開條件;
步驟3:主機(jī)傳遞請求至MA,利用MA求解步驟2內(nèi)基本鏡像的散列值,存儲于本地數(shù)據(jù)中心;
步驟4:將上述事件傳遞至剩余數(shù)據(jù)中心的MA,實際上是將各基本鏡像間的類似程度傳遞出去;
步驟5:利用深度哈希算法構(gòu)建哈希圖;
步驟6:該事件在哈希圖內(nèi)達(dá)成一致,在固定時間中,通過每個MA優(yōu)化本地哈希圖。
2.2.3 遷移請求階段
遷移單元的作用是傳遞基本鏡像,實現(xiàn)信息交互。發(fā)送虛擬機(jī)遷移請求時,利用MA決定需要遷移的鏡像數(shù)據(jù),其步驟為:
步驟1:源主機(jī)接收虛擬機(jī)遷移請求時,傳遞請求至本地MA,MA搜索整個哈希圖文件,對比分析發(fā)送請求的遷移虛擬機(jī)和目標(biāo)數(shù)據(jù)中心的鏡像散列值;
步驟2:塑造臨時標(biāo)志位存儲發(fā)送請求的遷移虛擬機(jī)的鏡像散列值,目的是避免存儲重復(fù)信息,如果目標(biāo)數(shù)據(jù)中心存在該鏡像散列值,那么將該標(biāo)志位記作1,如果目標(biāo)數(shù)據(jù)中心不存在該鏡像散列值,那么將其記作0,將標(biāo)記結(jié)果與該虛擬機(jī)的基本鏡像和目標(biāo)數(shù)據(jù)中心的基本鏡像間的類似程度信息傳遞至源主機(jī);
步驟3:源主機(jī)將接收的信息發(fā)送至目標(biāo)主機(jī),目標(biāo)主機(jī)確定信號后,便可展開遷移操作。由源主機(jī)向目標(biāo)主機(jī)傳遞信息的作用確保遷移的鏡像相同,原因是每個數(shù)據(jù)中心的MA間的哈希圖副本完全相同,僅有這兩個主機(jī)的基本鏡像類似程度信息相同,才能確保遷移操作的順利執(zhí)行。
步驟4:確定執(zhí)行虛擬機(jī)遷移后,通過MA傳遞存在0與1標(biāo)記結(jié)果的鏡像數(shù)據(jù)塊和鏡像散列值到目標(biāo)主機(jī)。
2.2.4 遷移過程
云計算虛擬機(jī)遷移過程步驟如下:
步驟1:遷移基本鏡像;
步驟2:遷移操作者數(shù)據(jù),依據(jù)快照方法遷移該數(shù)據(jù),縮短遷移時間;
步驟3:遷移內(nèi)存數(shù)據(jù),利用預(yù)復(fù)制方法遷移該數(shù)據(jù),遷移前提是結(jié)束操作者數(shù)據(jù)遷移;
步驟4:在迭代副本符合終止閾值的情況下,虛擬機(jī)在源站點停止運(yùn)轉(zhuǎn),目標(biāo)站點開始啟動。
仿真中有50個數(shù)據(jù)中心,各數(shù)據(jù)中心分別存在2個服務(wù)器,分別是虛擬機(jī)的宿主機(jī)與遷移代理主機(jī)。實驗中遷移云計算虛擬機(jī)間基本鏡像的類似程度是(m,n),基本鏡像存儲結(jié)構(gòu)遷移虛擬機(jī)操作系統(tǒng)鏡像間的類似程度是m,工作環(huán)境鏡像間的類似程度是n。
選取云數(shù)據(jù)中心遺傳算法遷移模型(文獻(xiàn)[5])與LP&GR算法遷移模型(文獻(xiàn)[6])作為本文模型的對比模型,利用三種模型在不同類似程度以及不同負(fù)載情況下,分別同時遷移50個虛擬機(jī),對比分析三種模型遷移過程中的總遷移時間與網(wǎng)絡(luò)流量,不同負(fù)載編號及含義如表1所示,對比分析結(jié)果如表2所示。
表1 不同負(fù)載的詳細(xì)信息
表2 對比分析結(jié)果
根據(jù)表2可知,在負(fù)載相同時,三種模型的總遷移時間均隨著類似程度的提升而逐漸降低,本文模型的下降幅度最大,總遷移時間最低;在類似程度相同時,三種模型的總遷移時間均隨著負(fù)載的提升而逐漸提升,本文模型的總遷移時間依舊最低。原因是本文模型利用深度哈希算法構(gòu)建的哈希圖具備迅速共享策略,不用反復(fù)求解數(shù)據(jù),縮短了遷移時間。在負(fù)載相同時,三種模型的網(wǎng)絡(luò)流量均隨著類似程度的提升而逐漸下降,在類似程度相同時,三種模型的網(wǎng)絡(luò)流量均隨著負(fù)載的提升而逐漸提升,在不同情況下,本文模型的網(wǎng)絡(luò)流量均最低,說明本文方法的帶寬開銷最小。實驗證明:本文模型在同時遷移多個虛擬機(jī)時的總遷移時間最小,網(wǎng)絡(luò)流量最低即帶寬開銷最小,具備較優(yōu)的跨數(shù)據(jù)中心虛擬機(jī)遷移性能。
以基本鏡像類似程度是(5%,5%)以及負(fù)載編號是Ⅲ為例,原因是這種情況下所需遷移的基本鏡像數(shù)據(jù)量最高,在遷移啟動一定時間后,對三種模型的遷移過程展開攻擊,測試三種模型延長的遷移時間,分析三種模型抵御攻擊的性能,延長的遷移時間測試結(jié)果如圖3所示。
圖3 延長的遷移時間測試結(jié)果
根據(jù)圖3可知,在抵御攻擊時,三種模型均存在延長的遷移時間,本文模型延長的遷移時間波動區(qū)間為0.80~0.86s,其余兩種模型延長的遷移時間波動區(qū)間分別為0.83~0.90s、0.84~0.89s。實驗證明:本文模型抵御攻擊時遷移時間延長的幅度較小,說明本文模型具備較優(yōu)的抵御攻擊性能。
分析三種模型在遷移不同虛擬機(jī)數(shù)量時的能量消耗與SLA違反率如表3所示。
根據(jù)表3可知,隨著虛擬機(jī)數(shù)量的增加,本文模型的平均能量消耗最低;SLA違反率隨虛擬機(jī)數(shù)量增加的變化幅度較小,其余兩種模型的SLA違反率變化幅度較大。實驗證明:本文模型的能量消耗最低,其SLA違反率最低且較為平穩(wěn),有效提升QoS服務(wù)質(zhì)量要求。
表3 能量消耗與SLA違反率
針對云計算平臺數(shù)據(jù)中心的能量消耗高與QoS服務(wù)質(zhì)量低的問題,研究基于深度哈希算法的云計算虛擬機(jī)遷移模型,縮短虛擬機(jī)遷移時間,提升遷移過程的抵御攻擊能力。本文模型不僅適用于遷移單個虛擬機(jī),還適用于跨數(shù)據(jù)中心虛擬機(jī)遷移,確保數(shù)據(jù)傳輸?shù)陌踩裕诤罄m(xù)研究中將其廣泛應(yīng)用于云計算的各種領(lǐng)域中。