• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于COW雙寫的虛擬機磁盤全量遷移關(guān)鍵技術(shù)

    2020-01-08 02:22:44王科丁倩梅余萬
    現(xiàn)代信息科技 2020年15期

    王科 丁倩梅 余萬

    摘 ?要:虛擬機熱遷移技術(shù)是指可以把一個虛擬機從一臺物理服務器遷移到另一臺物理服務器上,整個過程虛擬機內(nèi)部業(yè)務不中斷,虛擬機熱遷移大多是基于共享存儲進行遷移,磁盤未使用熱遷移技術(shù)。提出主要解決磁盤熱遷移優(yōu)化的算法及方案,主要適用于將虛擬機從一個存儲載體以全量的形式熱遷移至另一個存儲載體,亦適用含有內(nèi)存遷移的虛擬機整機遷移。通過算法將實現(xiàn)虛擬機的快速部署、快速動態(tài)分配等各種應用場景,達到節(jié)能降耗、負載均衡的目的。

    關(guān)鍵詞:COW;全量遷移;整機遷移

    中圖分類號:TP302;TP309.3 ? ? 文獻標識碼:A 文章編號:2096-4706(2020)15-0104-04

    Abstract:Virtual machine hot migration technology refers to that a virtual machine can be migrated from one physical server to another. The internal business of virtual machine is not interrupted in the whole process. Virtual machine hot migration is mostly based on shared storage,and the disk does not use hot migration technology. This paper puts forward the algorithm and scheme to solve the hot migration optimization of disk. It is mainly suitable for the hot migration of virtual machine from one storage carrier to another in the form of full quantity,and also suitable for the whole virtual machine migration with memory migration. Through the algorithm,various application scenarios such as rapid deployment and dynamic allocation of virtual machine will be realized to achieve the purpose of energy saving,consumption reduction and load balancing.

    Keywords:COW;full disk migration;whole machine migration

    0 ?引 ?言

    近年來,虛擬化技術(shù)已經(jīng)成為云數(shù)據(jù)中心大規(guī)模推廣部署的核心技術(shù)。通過虛擬化技術(shù)將海量的底層基礎(chǔ)計算、存儲、網(wǎng)絡資源等實例化一臺獨立的虛擬機器,而虛擬機遷移是數(shù)據(jù)中心的常見業(yè)務場景,虛擬機的遷移技術(shù)實現(xiàn)了虛擬機從一臺物理機到另外一臺物理機的遷移,使數(shù)據(jù)中心的資源配置更加靈活。一般虛擬機遷移技術(shù)分為冷遷移,即停機遷移;熱遷移,即在線不停機遷移[1]。實際運用中常用到熱遷移,虛擬機熱遷移是虛擬化技術(shù)的重要組成部分,也是實現(xiàn)云計算中基礎(chǔ)設(shè)施和服務的重要基礎(chǔ)。筆者在日常教學科研中關(guān)注到國內(nèi)外對虛擬機遷移技術(shù)的研究中磁盤部分許多采用增量快照的方案,這樣效率高,耗時少,但存在一定的使用場景限制和速率瓶頸。而基于COW(Copy On Write,寫時復制)雙寫(遷移過程中產(chǎn)生的動態(tài)數(shù)據(jù)同時寫入源主機與目的主機)的虛擬機磁盤全量或整機遷移技術(shù)[2],在保證高效率、低耗時的情況下,主要針對優(yōu)化虛擬機多磁盤全量遷移和整機遷移過程中存在可靠性、遷移速度、物理機額外開銷等問題,適用于全量備份場景。

    筆者在高校云計算平臺的教學過程中,結(jié)合之前工作經(jīng)驗,因多次涉及各類遷移,發(fā)現(xiàn)非共享存儲遷移很慢,通過教學實驗測試得出通過熱遷移可以極大地減少停機遷移的時間成本、服務成本開銷,保障服務的連續(xù)性,提高了云數(shù)據(jù)中心資源的配置能力。經(jīng)研究遷移原理后編寫DEMO驗證,并通過本文進行記錄。

    1 ?Xen預拷貝算法改進思路

    1.1 ?改進可能存在的數(shù)據(jù)多次傳輸

    通常磁盤遷移下的預拷貝算法,首先是將所有的數(shù)據(jù)塊先拷貝至目的主機,然后由Bitmap記錄臟數(shù)據(jù)塊并進行迭代傳輸[3]。存在這樣一種情況:涉及到內(nèi)存遷移的情況時,內(nèi)存遷移迭代的是每次傳送在上次迭代中修改了的頁,簡稱“臟頁”。對于一些修改比較頻繁的臟頁,臟數(shù)據(jù)塊產(chǎn)生時,其對應的數(shù)據(jù)塊在第一次還未被拷貝至目的主機,若按照預拷貝算法[4],這個數(shù)據(jù)塊位置的數(shù)據(jù)將被拷貝兩次,也有可能在傳輸過程中多次被遷移,從而使整個傳輸過程傳送的效率非常低。這些臟頁又被稱為“工作集”,工作集如果在傳輸中反復地被傳送,會增加總遷移時間,所以需要一種策略去測定工作集,避免重復的傳送造成的不必要消耗。

    因此需要引入一個傳輸策略來控制數(shù)據(jù)的傳輸。提出引入傳輸水線(Transfer Level)對此種情況進行優(yōu)化。水線是一個讀進程鎖,通過算法,將其用于記錄傳輸靜態(tài)數(shù)據(jù)塊位置,位于水線之后的數(shù)據(jù)[5],無論Write_Read_thread怎么改動,其臟數(shù)據(jù)都不會被傳送至目的虛擬機[6],而位于水線之前的數(shù)據(jù)在被Write_Read_thread改動后會立即被傳輸過去,如圖1所示。其中aaa、ddd為內(nèi)存對應位置原始數(shù)據(jù);bbb、ccc為讀寫現(xiàn)場正寫入的數(shù)據(jù);S_dyn_thread源主機發(fā)送動態(tài)變化數(shù)據(jù)的線程;D_dyn_data目標主機接受動態(tài)變化數(shù)據(jù)的線程;S_static_thread源主機逐個發(fā)送動態(tài)靜態(tài)數(shù)據(jù)的線程;D_static_data為目標主機接受靜態(tài)數(shù)據(jù)的線程;TCP_SOCKET為tcp傳輸SCOKET。

    而其中水線的移動需要一個移動策略,來控制水線什么時候移動,以及每次移動位置實現(xiàn)什么功能。保證傳輸?shù)膬?yōu)化效率達到最高。但制定此策略前需要對動態(tài)數(shù)據(jù)的寫入情況進行一個位置的判定,這里我們在開始傳輸前結(jié)合Linux虛擬機的Ext4文件系統(tǒng)VHD的寫入規(guī)則對新數(shù)據(jù)的位置進行判斷[7]。

    我們將磁盤大小的5%預留作為不被傳輸?shù)膮^(qū)塊,且這5%的區(qū)塊是大量新數(shù)據(jù)即將寫入的區(qū)塊,如圖2所示。

    當水線(圖2中虛線)移動到預留區(qū)塊(圖2中虛線箭頭中間區(qū)域)首部時,水線直接跳過預留區(qū)塊至其尾部,然后再正常移動。在水線移動到圖中實線位置時,按照水線之前的數(shù)據(jù)(不包括預留區(qū)塊中的數(shù)據(jù))在被Write_Read_thread改動后會被立即傳輸至目的虛擬機,位于水線之后的數(shù)據(jù),無論Write_Read_thread怎么改動,其臟數(shù)據(jù)都不會被傳送的方法進行傳輸。當磁盤全量遷移完成進入雙寫階段,即水線位于傳輸隊列尾部時,水線回移到預留區(qū)塊的首部,此時解除預留區(qū)塊不被傳輸?shù)膶傩?,恢復正常的傳輸,水線正常移動,水線之前的臟數(shù)據(jù)保持雙寫,而水線之后至預留區(qū)塊尾部之間的數(shù)據(jù)保持不被傳輸,水線正常移動至預留區(qū)塊尾部時,若此刻水線之后還有相應預留區(qū)塊,則水線移到此預留區(qū)塊的首部重復上述過程。若此刻水線之后不存在相應的預留區(qū)塊,則水線移到傳輸隊列尾部,此時保持水線之前數(shù)據(jù)的雙寫,等待內(nèi)存遷移。

    1.2 ?目的主機可能存在的數(shù)據(jù)多次寫入

    磁盤遷移下的預拷貝算法[8],第一步是將所有的數(shù)據(jù)塊先拷貝至目的主機,然后記錄臟數(shù)據(jù)塊并進行迭代傳輸。存在這樣一種情況:不在同一個傳輸周期內(nèi)同一數(shù)據(jù)塊位置變臟的時候,該數(shù)據(jù)塊位置的數(shù)據(jù)將多次被傳輸至目的主機,目的主機將多次寫入。對于磁盤遷移的情況,將多次產(chǎn)生磁盤I/O。提出在目的主機引入緩存對此種情況進行優(yōu)化,如圖3所示。

    2 ?整體實現(xiàn)方案

    2.1 ?總體方案設(shè)計

    方案中遷移前資源檢查、其他設(shè)備的遷移等方案保持與現(xiàn)有系統(tǒng)一致,改進方案只針對磁盤遷移相關(guān)模塊。提出的改進方案支持一個虛擬機多個磁盤的全量遷移,亦支持一個虛擬機多個磁盤全量整機遷移(含內(nèi)存遷移)。實現(xiàn)流程如圖4所示[9]。

    (1)源端Xen向Mg_agent模塊下發(fā)磁盤遷移命令(含遷移相關(guān)信息);

    (2)源端Mg_agent從Xenstore中讀取源磁盤信息;

    (3)源端Mg_agent向各個對應的Tapdisk2進程發(fā)送信號;

    (4)源端Tapdisk2開始磁盤全量遷移流程,在磁盤Block寫入處打開動態(tài)數(shù)據(jù)判斷及動態(tài)數(shù)據(jù)傳輸流程;

    (5)目的端Mg_agent收到源端發(fā)送的靜態(tài)數(shù)據(jù)、動態(tài)數(shù)據(jù);

    (6)目的端收到的動態(tài)數(shù)據(jù)采用Bitmap記錄,并緩存,達到閾值再寫入磁盤;

    (7)目的端收到靜態(tài)數(shù)據(jù)后判斷動態(tài)數(shù)據(jù)的Bitmap是否有臟位(解決臨界數(shù)據(jù)可能出現(xiàn)的傳輸?shù)竭_先后問題),決定是否寫入目的磁盤。

    2.2 ?引入Mg_agent進行多磁盤遷移的控制

    2.2.1 ?對于不同主機多個磁盤全量遷移的情況

    由引入的Mg_agent模塊進行協(xié)調(diào),其同時啟動磁盤全量遷移,先完成數(shù)據(jù)傳輸?shù)拇疟P保持雙寫狀態(tài),等待其他磁盤完成,之后完成的磁盤也保持雙寫,等待剩余磁盤的數(shù)據(jù)傳輸。[10]流程如圖5所示。

    2.2.2 ?對于不同主機多個磁盤全量整機遷移(含內(nèi)存遷移)的情況

    在Xen模塊中sleep_vm()前觸發(fā)引入的Mg_agent模塊進行磁盤全量整機遷移(含內(nèi)存遷移),即,當磁盤全量遷移完成進入雙寫階段后開始內(nèi)存遷移[11]。流程如圖6所示。

    2.2.3 ?對于在同一臺主機,不同存儲設(shè)備之間磁盤全量遷移的情況

    Mg_agent模塊不用將靜態(tài)數(shù)據(jù)與緩存的動態(tài)數(shù)據(jù)通過TCP_SOCKET發(fā)送至目的主機,而是直接寫入目的存儲設(shè)備[12],即,將發(fā)送至網(wǎng)絡替換為寫入目的存儲設(shè)備。流程如圖7所示。

    3 ?方案測試和分析

    3.1 ?實驗目的

    通過本方案[13]的優(yōu)化算法及措施,在Xen平臺上實現(xiàn)虛擬機的熱遷移,在10 GB磁盤、20 GB磁盤、50 GB磁盤、100 GB磁盤大小并分別在1 GB、2 GB、3 GB、5 GB動態(tài)數(shù)據(jù)寫入量的情況下測出數(shù)據(jù)包優(yōu)化前的實際傳輸量以及優(yōu)化后的傳輸量。

    3.2 ?實驗數(shù)據(jù)分析

    從表1可知,優(yōu)化方案基于以下兩個方向進行優(yōu)化:一是磁盤大小;二是遷移期間數(shù)據(jù)寫入量。當磁盤大小一致時,數(shù)據(jù)寫入量越大,優(yōu)化方案優(yōu)化效率越低,反之越高,甚至優(yōu)化后寫入數(shù)據(jù)傳輸量可以為零。當寫入數(shù)據(jù)大小一致時,磁盤越大,優(yōu)化方案優(yōu)化效率越高,甚至磁盤在足夠大的情況下優(yōu)化后可以實現(xiàn)寫入數(shù)據(jù)的傳輸為零。

    4 ?結(jié) ?論

    本文通過對現(xiàn)有動態(tài)遷移機制的研究和分析,將傳輸水線思想引入拷貝策略當中,在一定程度上減少了實際遷移磁盤Block的數(shù)量和遷移時間。下一步將繼續(xù)研究通過預測磁盤Block的改變概率,分批次對文中提及的靜態(tài)數(shù)據(jù)進行拷貝,進一步降低重復拷貝的可能性,進而更進一步優(yōu)化傳輸。

    參考文獻:

    [1] 高翔.基于Xen的虛擬機動態(tài)遷移算法優(yōu)化 [D].哈爾濱:哈爾濱工業(yè)大學,2010.

    [2] 劉鎏,虞紅芳,鄭少平.面向業(yè)務動態(tài)變化的虛擬機遷移技術(shù)研究 [J].計算機應用研究,2016,33(2):534-539.

    [3] 劉詩海,孫宇清,石維琪,等.面向可擴展集群環(huán)境的快速虛擬機遷移方法 [J].東南大學學報(自然科學版),2011,41(3):468-472.

    [4] 鄭婷婷,武延軍,賀也平.云計算環(huán)境下的虛擬機快速克隆技術(shù) [J].計算機工程與應用,2011,47(13):63-67.

    [5] 常德成,徐高潮.虛擬機動態(tài)遷移方法 [J].計算機應用研究,2013,30(4):971-976.

    [6] 周晨.云計算中面向能耗的虛擬機遷移研究 [D].南京:南京郵電大學,2016.

    [7] 劉海坤.虛擬機在線遷移性能優(yōu)化關(guān)鍵技術(shù)研究 [D].武漢:華中科技大學,2012.

    [8] CLARK C,F(xiàn)RASER K,HAND S,et al. Live migration of virtual machines [C]//NSDI05:Proceedings of the 2nd conference on Symposium on Networked Systems Design & Implementation. Berkeley,CA,United States:USENIX Association,2005:273-286.

    [9] CHAGANTI P. Xen Virtualization:A fast and practical guide to supporting multiple operating systems with the Xen hypervisor [M].Birmingham,UK:Packt Publishing,2007.

    [10] 周煜,盧正添,易固武,等.一種基于過濾驅(qū)動的寫時拷貝快照方法 [J].四川大學學報(自然科學版),2010,47(3):478-482.

    [11] LIU H K,JIN H,LIAO X F,et al. Live migration of virtual machine based on full system trace and replay [C]//HPDC09:Proceedings of the 18th ACM international symposium on High performance distributed computing,New York,NY,United States:ACM,2009.

    [12] 陳彬,肖儂,蔡志平,等.基于優(yōu)化的COW虛擬塊設(shè)備的虛擬機按需部署機制 [J].計算機學報,2009,32(10):1915-1926.

    [13] 何玫峻,金連文,李磊.基于混合遷移的OpenStack虛擬機在線遷移改進方案 [J].系統(tǒng)工程理論與實踐,2014,34(s1):216-220.

    作者簡介:王科(1985—),男,漢族,四川成都人,講師,碩士研究生,研究方向:云計算、大數(shù)據(jù)。

    巴林左旗| 九江市| 虞城县| 大理市| 新竹市| 西和县| 宾阳县| 吉木萨尔县| 永川市| 永善县| 开化县| 天长市| 文水县| 武隆县| 台山市| 鄂托克前旗| 萨嘎县| 剑阁县| 马鞍山市| 印江| 高青县| 尼勒克县| 内乡县| 游戏| 乐业县| 勐海县| 龙海市| 柞水县| 绥芬河市| 南部县| 根河市| 宜都市| 蒙阴县| 和龙市| 绥化市| 长泰县| 鸡东县| 富阳市| 遂昌县| 华蓥市| 台东县|