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

?

云計(jì)算環(huán)境中虛擬機(jī)動(dòng)態(tài)遷移技術(shù)研究

2018-12-15 11:25袁愛平
計(jì)算機(jī)時(shí)代 2018年10期
關(guān)鍵詞:虛擬機(jī)云計(jì)算

袁愛平

摘 要: 預(yù)拷貝是虛擬機(jī)動(dòng)態(tài)遷移的主要方法之一,通過迭代傳輸內(nèi)存頁(yè)完成源節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的遷移。但預(yù)拷貝方法由于重復(fù)傳輸同一臟頁(yè)內(nèi)存,導(dǎo)致了遷移過程占據(jù)較長(zhǎng)的時(shí)間。本文通過對(duì)預(yù)拷貝方法的改進(jìn),提出了一種快速的虛擬機(jī)實(shí)時(shí)遷移方法,提高了迭代過程中臟頁(yè)內(nèi)存的傳輸效率。實(shí)驗(yàn)結(jié)果證明,與傳統(tǒng)的預(yù)拷貝方法相比,改進(jìn)后的預(yù)拷貝方法明顯地減少了遷移時(shí)間和傳輸數(shù)據(jù),達(dá)到了虛擬機(jī)快速遷移的目的。

關(guān)鍵詞: 云計(jì)算; 虛擬機(jī); 動(dòng)態(tài)遷移; 預(yù)拷貝

中圖分類號(hào):TP301 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2018)10-05-03

Abstract: Pre-copy is one of the main methods of virtual machine live migration, and the migration of source node to destination node is accomplished by iteratively transmitting memory pages. However, due to the repeated transmission of the same dirty page memory, the migration process takes longer migration time. By improving the pre-copy method, a fast live migration method for virtual machine is proposed, which improves the transmission efficiency of dirty pages in the iteration process. The experimental results show that the improved pre-copy method obviously reduces the migration time and transmission data, and it achieves the goal of rapid migration of virtual machines.

Key words: cloud computing; virtual machine; live migration; pre-copy

0 引言

隨著信息技術(shù)和網(wǎng)絡(luò)應(yīng)用的快速發(fā)展,云計(jì)算作為一種全新的計(jì)算模式,已越來越受到工業(yè)界和學(xué)術(shù)界的關(guān)注。通過云計(jì)算平臺(tái),用戶可以獲得按需、靈活和可伸縮的計(jì)算及存儲(chǔ)資源。為了提高系統(tǒng)資源的利用率,云計(jì)算系統(tǒng)引入了虛擬化技術(shù),通過將一臺(tái)物理服務(wù)器分割為若干個(gè)相互隔離的虛擬服務(wù)器,實(shí)現(xiàn)對(duì)物理資源的動(dòng)態(tài)分割。虛擬機(jī)的動(dòng)態(tài)遷移作為虛擬化的關(guān)鍵技術(shù)之一,解決了云計(jì)算數(shù)據(jù)中心的負(fù)載均衡、電源管理、在線維護(hù)等問題。在虛擬機(jī)的動(dòng)態(tài)遷移問題中,預(yù)拷貝方法是虛擬機(jī)最主要的實(shí)時(shí)遷移技術(shù)之一[1]。

1 預(yù)拷貝方法

預(yù)拷貝方法[2]是由Clark等人提出并實(shí)現(xiàn)的虛擬機(jī)動(dòng)態(tài)遷移機(jī)制。目前最流行的Xen、KVM及VMware等虛擬化平臺(tái)都已經(jīng)提供了預(yù)拷貝機(jī)制,并且已經(jīng)被廣泛應(yīng)用。預(yù)拷貝方法將源計(jì)算機(jī)上的內(nèi)存頁(yè)以迭代的方式拷貝到目的計(jì)算機(jī)上。首先第一輪拷貝所有的內(nèi)存頁(yè),第二輪只拷貝在第一輪迭代過程中修改過的頁(yè)(臟頁(yè)),依此類推,第n輪拷貝的是第n-1輪迭代過程中修改過的頁(yè)。當(dāng)臟頁(yè)數(shù)目到達(dá)某個(gè)常數(shù)或者迭代達(dá)到一定次數(shù)時(shí),預(yù)拷貝階段就結(jié)束。這時(shí)停機(jī),并把剩余的臟頁(yè)和CPU運(yùn)行狀態(tài)拷貝到目的計(jì)算機(jī)。

預(yù)拷貝方法存在的一個(gè)問題就是重復(fù)傳輸同一臟頁(yè)內(nèi)存,從而導(dǎo)致遷移過程占據(jù)較長(zhǎng)的遷移時(shí)間,這對(duì)于云計(jì)算數(shù)據(jù)中心是不利的;存在的另一個(gè)問題是內(nèi)存臟頁(yè)面的收斂性問題。當(dāng)網(wǎng)絡(luò)傳輸速率小于源虛擬機(jī)內(nèi)存更新速率時(shí),就會(huì)產(chǎn)生臟頁(yè)面無法收斂的問題。對(duì)于預(yù)拷貝方法的數(shù)據(jù)高冗余性和收斂性這兩個(gè)問題,已經(jīng)有學(xué)者提出了改進(jìn)方案。趙春等人[3]提出了一種基于動(dòng)態(tài)調(diào)整閾值的虛擬機(jī)遷移算法,通過統(tǒng)計(jì)分析物理機(jī)歷史負(fù)載數(shù)據(jù),動(dòng)態(tài)地調(diào)整虛擬機(jī)遷移的閾值門限,再延時(shí)觸發(fā)和預(yù)測(cè)物理機(jī)的負(fù)載趨勢(shì)來確定虛擬機(jī)遷移時(shí)機(jī)。Bolin Hu等人[4]提出了一個(gè)基于次數(shù)序列的預(yù)拷貝算法,通過設(shè)定高臟頁(yè)面的閥值K,低于K值的臟頁(yè)在本輪迭代中可能被發(fā)送給目的主機(jī),否則直到迭代結(jié)束才被發(fā)送出去。Petter Svard等人[5]提出了基于增量壓縮技術(shù)的預(yù)拷貝算法,以內(nèi)存頁(yè)更新變化的增量來代替變化后的頁(yè)面本身數(shù)據(jù)。本文通過對(duì)傳統(tǒng)預(yù)拷貝方法的改進(jìn),提出了一種快速的虛擬機(jī)實(shí)時(shí)遷移方法。

2 快速的虛擬機(jī)實(shí)時(shí)遷移方法

在預(yù)拷貝方法中,根據(jù)頁(yè)面的使用狀態(tài)將遷移的內(nèi)存頁(yè)分為三類,也就是三種頁(yè)位圖:to_send、to_skip和to_fix。這三種頁(yè)位圖的說明如下。

to_send:標(biāo)記的是在前一輪迭代過程中變臟的頁(yè),也就是在本次迭代中需要被傳送的頁(yè);

to_skip:標(biāo)記的是在本次迭代中可以跳過不傳的頁(yè);

to_fix:標(biāo)記的是在最后的停機(jī)拷貝階段才傳送的頁(yè)。

實(shí)際上,to_send頁(yè)位圖中記錄的內(nèi)存頁(yè)是前一輪迭代過程中被修改的頁(yè),只需在迭代開始前把上一輪的臟頁(yè)位圖拷貝到to_send就可以了。to_skip是為了減少頁(yè)的反復(fù)重傳而引入的一個(gè)頁(yè)位圖,記錄的是那些由于改動(dòng)較頻繁而可以跳過不傳的頁(yè)。to_skip中記錄的是那些還沒有被映射的頁(yè),這些頁(yè)被放到最后一輪傳送。

針對(duì)預(yù)拷貝方法中存在的這個(gè)問題,在預(yù)拷貝方法中新增了一個(gè)頁(yè)位圖[6]:to_send_last,與to_fix位圖頁(yè)面一樣,to_send_last標(biāo)記的也是需要在最后一輪迭代被傳送的頁(yè)面,但是to_send_last只記錄那些頻繁更新的頁(yè)面。為了更好地確定哪些內(nèi)存頁(yè)是改動(dòng)頻繁的,我們?cè)O(shè)定只有在最近的n次觀測(cè)中至少有k次被確認(rèn)改動(dòng),才被最終確認(rèn)為改動(dòng)頻繁的內(nèi)存頁(yè)。

在改進(jìn)的預(yù)拷貝方法中,那些頻繁更新的頁(yè)面被放入了to_send_last位圖頁(yè)中,并且僅在最后一輪迭代中被傳送,因此可寫工作集會(huì)快速收斂,并且迭代拷貝過程可以在若干輪迭代中完成。在改進(jìn)的預(yù)拷貝算法中,那些頻繁更新的頁(yè)面僅在最后一輪迭代中被傳送。同時(shí)為了避免導(dǎo)致留到最后傳送的頁(yè)面過多而造成停機(jī)時(shí)間的延長(zhǎng),使內(nèi)存遷移的效率和性能下降,我們定義了一個(gè)鏈表p,p中的一個(gè)節(jié)點(diǎn)代表to_send_last中的一個(gè)內(nèi)存頁(yè)面,并且按照臟頁(yè)率由低到高排序。定義鏈表的長(zhǎng)度為m,其值根據(jù)具體情況設(shè)置。每次把臟頁(yè)面放入to_send_last位圖時(shí),同時(shí)把該頁(yè)面的地址按照臟頁(yè)率插入到鏈表p中。當(dāng)鏈表的長(zhǎng)度超過m時(shí),則把臟頁(yè)率最低的節(jié)點(diǎn)移出鏈表,同時(shí)把該節(jié)點(diǎn)指向的頁(yè)面從to_send_last位圖中刪除,再傳送該內(nèi)存頁(yè)面到目的計(jì)算機(jī)上。

改進(jìn)后預(yù)拷貝方法的遷移過程,分為以下6個(gè)步驟[2],如圖1所示,這里把遷移的發(fā)起者即源計(jì)算機(jī)記為主機(jī)A,目的計(jì)算機(jī)記為主機(jī)B。

⑴ 預(yù)遷移

程序?qū)Ⅱ?yàn)證主機(jī)A和主機(jī)B的存儲(chǔ)以及網(wǎng)絡(luò)設(shè)置,并對(duì)主機(jī)B進(jìn)行資源清理,以確保主機(jī)B有足夠的資源接受這個(gè)虛擬機(jī)。

⑵ 預(yù)定資源

主機(jī)B預(yù)訂虛擬機(jī)所需要的資源,并生成一個(gè)虛擬機(jī)的容器。

⑶ 預(yù)拷貝

這個(gè)階段為我們改進(jìn)的部分。在這一階段VM仍然運(yùn)行,主機(jī)A以迭代的方式將VM的內(nèi)存頁(yè)拷貝到主機(jī)B上。其過程為首先傳輸所有的內(nèi)存頁(yè),然后在迭代過程中把那些改動(dòng)頻繁的內(nèi)存頁(yè)放入到to_ send last頁(yè)位圖,同時(shí)把該頁(yè)面的地址按照臟頁(yè)率插入到一個(gè)鏈表p中。當(dāng)鏈表的長(zhǎng)度超過m時(shí),則把臟頁(yè)率最低的節(jié)點(diǎn)移出鏈表,同時(shí)把該節(jié)點(diǎn)指向的頁(yè)面從to_send_last位圖中刪除,在此輪迭代中傳送該內(nèi)存頁(yè)面到目的計(jì)算機(jī)上,否則在最后一輪迭代過程中傳送。

⑷ 停機(jī)拷貝

首先,在主機(jī)A上停止虛擬機(jī)的運(yùn)行,接著通過ARP廣播將與虛擬機(jī)有關(guān)的網(wǎng)絡(luò)流量從主機(jī)A重定向到主機(jī)B上。最后,讓主機(jī)A上的虛擬機(jī)和主機(jī)B上的容器做最后的同步工作。

⑸ 提交

當(dāng)主機(jī)B已經(jīng)收到完整的虛擬機(jī)狀態(tài)時(shí),它會(huì)發(fā)一個(gè)確認(rèn)信息給主機(jī)A,接著,主機(jī)A會(huì)關(guān)閉之前的虛擬機(jī)。

⑹ 啟動(dòng)

主機(jī)B上的容器被激活,主機(jī)B成為新的虛擬機(jī),并且對(duì)外廣播它的IP地址。

3 實(shí)驗(yàn)與結(jié)果分析

3.1 實(shí)驗(yàn)環(huán)境

⑴ 硬件環(huán)境

2臺(tái)普通PC機(jī),配置如下:

CPU:Intel Pentium Dua1CPU 1.81GHz;

內(nèi)存:2048M;

硬盤:80G;

網(wǎng)絡(luò):100M以太網(wǎng)。

⑵ 軟件環(huán)境

實(shí)驗(yàn)在安裝了Xen 3.3.0的Ubuntu 8.04系統(tǒng)上進(jìn)行。被遷移的虛擬機(jī)是源計(jì)算機(jī)中唯一的虛擬機(jī),并且在目的計(jì)算機(jī)中也沒有其他虛擬機(jī)。虛擬機(jī)的內(nèi)存大小從256MB到1024 MB。對(duì)于改動(dòng)頻繁內(nèi)存頁(yè)的確認(rèn),實(shí)驗(yàn)中采用的設(shè)置是n為5,k為2,鏈表的長(zhǎng)度m設(shè)為10。實(shí)驗(yàn)的各項(xiàng)參數(shù)值均從Xen的日志中直接獲得或計(jì)算得出,并且為多次實(shí)驗(yàn)的平均值。

3.2 實(shí)驗(yàn)結(jié)果與分析

低臟頁(yè)率實(shí)驗(yàn)是在操作系統(tǒng)空負(fù)載時(shí)進(jìn)行的,而高臟頁(yè)率實(shí)驗(yàn)則是在操作系統(tǒng)中有負(fù)載時(shí)進(jìn)行的。表1-4給出的是傳統(tǒng)預(yù)拷貝方法和快速預(yù)拷貝方法在低、高臟頁(yè)率下的迭代次數(shù)、宕機(jī)時(shí)間和總消耗時(shí)間值的對(duì)比。

在低臟頁(yè)率環(huán)境下,遷移時(shí)內(nèi)存頁(yè)迭代的次數(shù)不多,所有迭代次數(shù)距設(shè)定的最多迭代次數(shù)30次還有很大的距離。優(yōu)化前后對(duì)比可以看出優(yōu)化效果并不明顯。

當(dāng)臟頁(yè)率很高的時(shí)候,迭代的次數(shù)也隨之增多,設(shè)定的迭代次數(shù)最多為30次,傳統(tǒng)的預(yù)拷貝方法在各種環(huán)境都達(dá)到最高的迭代次數(shù)。而快速預(yù)拷貝方法在迭代次數(shù)、宕機(jī)時(shí)間和總消耗時(shí)間上明顯地少于傳統(tǒng)的預(yù)拷貝方法,提高了虛擬機(jī)動(dòng)態(tài)遷移的性能。

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

本文根據(jù)對(duì)預(yù)拷貝方法機(jī)制的分析,提出了一種快速的預(yù)拷貝方法來動(dòng)態(tài)遷移虛擬機(jī),通過增加一個(gè)標(biāo)記改動(dòng)頻繁內(nèi)存頁(yè)的頁(yè)位圖,并使用鏈表來控制最后迭代傳送的內(nèi)存頁(yè)面,提高了虛擬機(jī)的遷移性能。最后在Xen 3.3.0上通過實(shí)驗(yàn)進(jìn)行了驗(yàn)證,結(jié)果表明,與預(yù)拷貝方法相比,本文提出的快速預(yù)拷貝方法能夠在不同的虛擬機(jī)內(nèi)存大小和高臟頁(yè)率環(huán)境下減少迭代次數(shù)和總遷移時(shí)間。

參考文獻(xiàn)(References):

[1] 趙佳.虛擬機(jī)動(dòng)態(tài)遷移的關(guān)鍵問題研究[D].吉林大學(xué),2013.

[2] Clark C, Fraser K, Hand S Hansen J, Jul E, Limpach C,Pratt I, Warfield A. Live migration of virtual machines[C].Proceedings of the 2nd Conference on Symposium on Networked Systems Design&Implementation;(NSDI'OS). Berkeley, USA: ACM Press,2005:273-286

[3] 趙春,閆連山,崔允賀等.基于動(dòng)態(tài)調(diào)整閾值的虛擬機(jī)遷移算法[J].計(jì)算機(jī)應(yīng)用,2017.37(9):2547-2550

[4] Bolin Hu, Zhou Lei, Yu Lei, Dong Xu, Jiandun Li. A Time-Series Based Precopy Approach for Live Migration of Virtual Machines[C].Proceedings of 2011 IEEE 17th International Conference on Parrallel and Distributed Systems (ICPADS). Tainan, Taiwan:IEEE Press,2011:947-952

[5] Petter Svard, Johan Tordsson, Benoit Hudzia, Erik Elmroth. High performance live migration through dynamic page transfer reordering and compression[C].Proceedings of 2011 3rd IEEE International Conference on Cloud Computing Technology and Science. Athens, Greece: IEEE Press,2011:542-548

[6] 馬飛.云計(jì)算數(shù)據(jù)中心中虛擬機(jī)放置和實(shí)時(shí)遷移研究[D].北京交通大學(xué),2013.

猜你喜歡
虛擬機(jī)云計(jì)算
虛擬機(jī)技術(shù)在計(jì)算機(jī)組裝課堂中的應(yīng)用
虛擬機(jī)服務(wù)器在教學(xué)實(shí)踐中的探索研究
淺談?dòng)?jì)算機(jī)系統(tǒng)虛擬化網(wǎng)絡(luò)設(shè)置方案
志愿服務(wù)與“互聯(lián)網(wǎng)+”結(jié)合模式探究
云計(jì)算與虛擬化
任務(wù)驅(qū)動(dòng)教學(xué)法在《網(wǎng)絡(luò)應(yīng)用服務(wù)管理》教學(xué)中的應(yīng)用
基于云計(jì)算的移動(dòng)學(xué)習(xí)平臺(tái)的設(shè)計(jì)
虛擬機(jī)局域網(wǎng)組建技術(shù)應(yīng)用初探
實(shí)驗(yàn)云:理論教學(xué)與實(shí)驗(yàn)教學(xué)深度融合的助推器
云計(jì)算中的存儲(chǔ)虛擬化技術(shù)應(yīng)用
永济市| 天门市| 三台县| 大城县| 新源县| 朝阳区| 毕节市| 徐州市| 三亚市| 唐山市| 腾冲县| 龙游县| 太保市| 获嘉县| 望谟县| 洛南县| 手游| 光泽县| 南郑县| 巍山| 扎赉特旗| 大渡口区| 兰坪| 阳泉市| 佛学| 精河县| 临沧市| 衡阳市| 新巴尔虎左旗| 福安市| 黑山县| 渝北区| 清水河县| 琼结县| 宿迁市| 岳阳县| 股票| 南江县| 通渭县| 津南区| 车险|