国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      在虛擬機(jī)鏡像中實現(xiàn)文件系統(tǒng)單寫日志的方法

      文檔序號:10552640閱讀:326來源:國知局
      在虛擬機(jī)鏡像中實現(xiàn)文件系統(tǒng)單寫日志的方法【專利摘要】本發(fā)明提供了一種在虛擬機(jī)鏡像中實現(xiàn)文件系統(tǒng)單寫日志的方法,包括步驟1:當(dāng)虛擬機(jī)內(nèi)部文件系統(tǒng)做檢查點(diǎn)時,攔截檢查點(diǎn)對應(yīng)的I/O操作,并逆向成文件粒度語義;步驟2:判斷I/O操作是否為針對虛擬機(jī)內(nèi)部日志的拷貝操作并執(zhí)行相應(yīng)操作;步驟3:將虛擬塊地址到物理地址映射表的修改先記錄到同一個物理塊上,當(dāng)映射表的修改全部保存到同一個物理塊上后,將物理塊上的修改作用到實際映射表上。本發(fā)明在不修改客戶虛擬機(jī)和文件系統(tǒng)的情況下,動態(tài)識別虛擬機(jī)內(nèi)部日志操作,并通過修改虛擬機(jī)鏡像中虛擬塊地址和物理地址映射關(guān)系的方法,實現(xiàn)了文件系統(tǒng)單寫日志機(jī)制,在保證虛擬機(jī)內(nèi)部文件系統(tǒng)一致性的情況下,提升了虛擬化I/O性能?!緦@f明】在虛擬機(jī)鏡像中實現(xiàn)文件系統(tǒng)單寫日志的方法
      技術(shù)領(lǐng)域
      [0001]本發(fā)明涉及系統(tǒng)虛擬化技術(shù)和文件系統(tǒng),具體地,涉及一種在虛擬機(jī)鏡像中實現(xiàn)文件系統(tǒng)單寫日志的方法?!?br>背景技術(shù)
      】[0002]文件系統(tǒng)日志[0003]文件系統(tǒng)使用日志方法來保證文件系統(tǒng)一致性。當(dāng)更新文件時,文件系統(tǒng)先將數(shù)據(jù)和對應(yīng)的元數(shù)據(jù)寫入日志中,當(dāng)日志數(shù)據(jù)持久化存儲在磁盤后,文件系統(tǒng)做檢查點(diǎn)(checkpoint),將對應(yīng)的數(shù)據(jù)和元數(shù)據(jù)拷貝至它們實際的位置,然后釋放日志空間。當(dāng)文件系統(tǒng)崩潰時(由于掉電或者軟件錯誤等原因),如果數(shù)據(jù)和元數(shù)據(jù)都已保存在日志中,文件系統(tǒng)重啟時可以從日志中恢復(fù)之前的I/O操作;如果數(shù)據(jù)和元數(shù)據(jù)沒有全部保存在日志中,則放棄此次修改。[0004]Ext3、Ext4文件系統(tǒng)包含三種日志模式:回寫(writeback),順序(ordered),數(shù)據(jù)(data)。在回寫模式中,只有元數(shù)據(jù)被寫入日志中。這種模式提供較好的性能,不過有較大的風(fēng)險。在順序模式中,只有元數(shù)據(jù)被寫入日志中,但在日志被標(biāo)記為提交前,數(shù)據(jù)會被寫入磁盤中。在數(shù)據(jù)模式中,元數(shù)據(jù)和文件內(nèi)容都被寫入日志中。這種模式下提供最好的文件系統(tǒng)一致性,但是數(shù)據(jù)需要寫兩次,犧牲了I/O性能。[0005]虛擬機(jī)鏡像格式[0006]虛擬化技術(shù)的一個便利之處在于可以使用虛擬機(jī)鏡像作為虛擬機(jī)的后端存儲。虛擬機(jī)鏡像提供了很多先進(jìn)的功能(如去重、加密),極大的簡化了虛擬機(jī)的管理。[0007]qC0W2是KVM虛擬機(jī)使用的一種鏡像格式。它維護(hù)了一個兩層的查詢表,用來管理地址翻譯。簇是qcow2鏡像的基本單元,簇大小保存在鏡像頭部中(imageheader)。鏡像頭包含指向查詢表的指針。進(jìn)行地址翻譯時,每個虛擬塊地址(virtualblockaddress)a被分為三個部分,a=(al,a2,a3):al作為一級查詢表(Lltable)的索引去找到對應(yīng)二級查詢表(L2table)的地址,a2作為二級查詢表的索引找到對應(yīng)數(shù)據(jù)簇的地址,a3是在簇中的偏移。[0008]本發(fā)明主要提出了一種在虛擬機(jī)鏡像中通過修改虛擬塊地址和物理地址映射關(guān)系,消除虛擬機(jī)內(nèi)部文件系統(tǒng)checkpoint時將數(shù)據(jù)拷貝至實際位置的寫操作,從而實現(xiàn)文件系統(tǒng)單寫日志的方法。該方法在保證虛擬機(jī)內(nèi)文件系統(tǒng)一致性的情況下,提高了虛擬化I/O的性能?!?br/>發(fā)明內(nèi)容】[0009]針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種在虛擬機(jī)鏡像中實現(xiàn)文件系統(tǒng)單寫日志的方法。[0010]根據(jù)本發(fā)明提供的在虛擬機(jī)鏡像中實現(xiàn)文件系統(tǒng)單寫日志的方法,包括如下步驟:[ΟΟ??]步驟I:當(dāng)虛擬機(jī)內(nèi)部文件系統(tǒng)做檢查點(diǎn),即checkpoint時,攔截checkpoint對應(yīng)的I/O操作,并對攔截的I/O操作進(jìn)行語義分析,將攔截的塊粒度I/O操作逆向成文件粒度語義;[0012]步驟2:判斷I/O操作是否為針對虛擬機(jī)內(nèi)部日志的拷貝操作,若是,則修改虛擬機(jī)鏡像虛擬塊地址到物理地址映射關(guān)系,將該I/O操作指向的虛擬機(jī)鏡像虛擬塊地址,并刪除原來指向虛擬機(jī)內(nèi)部日志中對應(yīng)數(shù)據(jù)的映射;若否,則允許執(zhí)行該I/O操作;[0013]步驟3:將虛擬塊地址到物理地址映射表的修改記錄到同一個物理塊上;當(dāng)物理地址映射表的修改全部保存到同一個物理塊上后,將物理塊上的修改作用到實際映射表上。[0014]優(yōu)選地,所述步驟I中的在虛擬機(jī)外對攔截的I/O操作進(jìn)行語義分析,將虛擬機(jī)外部攔截的塊粒度的I/O操作,轉(zhuǎn)化為虛擬機(jī)內(nèi)部文件粒度操作。[0015]優(yōu)選地,所述步驟2中的刪除原來指向虛擬機(jī)內(nèi)部日志中對應(yīng)數(shù)據(jù)的映射,即去除了拷貝寫機(jī)制,實現(xiàn)了虛擬機(jī)內(nèi)部文件系統(tǒng)單寫日志機(jī)制,通過修改虛擬塊地址到物理地址的映射關(guān)系,避免虛擬機(jī)內(nèi)部文件系統(tǒng)數(shù)據(jù)寫兩次問題。[0016]優(yōu)選地,步驟3中為保證修改虛擬機(jī)鏡像虛擬塊地址到物理地址映射關(guān)系操作和刪除原來指向虛擬機(jī)內(nèi)部日志中對應(yīng)數(shù)據(jù)的映射關(guān)系操作的這兩種操作的原子性,將虛擬塊地址到物理地址映射表的修改記錄到同一個物理塊上;其中,利用磁盤提供的單一數(shù)據(jù)塊修改的原子性,將虛擬塊地址到物理塊地址映射關(guān)系的修改先寫入同一數(shù)據(jù)塊中,從而保證虛擬塊地址到物理塊地址映射表修改的原子性。[0017]與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:[0018]本發(fā)明提供的在虛擬機(jī)鏡像中實現(xiàn)文件系統(tǒng)單寫日志的方法解決了虛擬機(jī)內(nèi)部文件系統(tǒng)由于引入日志機(jī)制帶來的數(shù)據(jù)寫兩遍問題,在不修改客戶虛擬機(jī)和文件系統(tǒng)的情況下,動態(tài)識別虛擬機(jī)內(nèi)部日志操作,并通過修改虛擬機(jī)鏡像中虛擬塊地址和物理地址映射關(guān)系的方法,實現(xiàn)了文件系統(tǒng)單寫日志機(jī)制,在保證虛擬機(jī)內(nèi)部文件系統(tǒng)一致性的情況下,提升了虛擬化I/O性能?!靖綀D說明】[0019]通過閱讀參照以下附圖對非限制性實施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會變得更明顯:[0020]圖1為qC0W2鏡像格式的組織形式和地址翻譯過程示意圖;[0021]圖2為虛擬機(jī)內(nèi)部文件系統(tǒng)修改過程和對應(yīng)虛擬機(jī)鏡像中數(shù)據(jù)映射關(guān)系一;[0022]圖3為虛擬機(jī)內(nèi)部文件系統(tǒng)修改過程和對應(yīng)虛擬機(jī)鏡像中數(shù)據(jù)映射關(guān)系二?!揪唧w實施方式】[0023]下面結(jié)合具體實施例對本發(fā)明進(jìn)行詳細(xì)說明。以下實施例將有助于本領(lǐng)域的技術(shù)人員進(jìn)一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應(yīng)當(dāng)指出的是,對本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變化和改進(jìn)。這些都屬于本發(fā)明的保護(hù)范圍。[0024]根據(jù)本發(fā)明提供的在虛擬機(jī)鏡像中實現(xiàn)文件系統(tǒng)單寫日志的方法,包括如下步驟:[0025]步驟I:當(dāng)虛擬機(jī)內(nèi)部文件系統(tǒng)做檢查點(diǎn)(checkpoint)時,攔截checkpoint對應(yīng)的I/O操作,并對攔截的I/O操作進(jìn)行語義分析,將攔截的塊粒度I/O操作逆向成文件粒度語義。[0026]步驟2:判斷I/O操作是否為針對虛擬機(jī)內(nèi)部日志的拷貝操作,若是,則修改虛擬機(jī)鏡像虛擬塊地址到物理地址映射關(guān)系,將該I/O操作指向的虛擬機(jī)鏡像虛擬塊地址,并刪除原來指向虛擬機(jī)內(nèi)部日志中對應(yīng)數(shù)據(jù)的映射;若否,則允許執(zhí)行該I/O操作。[0027]步驟3:為保證修改虛擬機(jī)鏡像虛擬塊地址到物理地址映射關(guān)系和刪除原來指向虛擬機(jī)內(nèi)部日志中對應(yīng)數(shù)據(jù)的映射兩種操作的原子性,將虛擬塊地址到物理地址映射表的修改先記錄到同一個物理塊上,利用磁盤提供的單一數(shù)據(jù)塊修改的原子性,保證映射表修改的原子性。當(dāng)映射表的修改全部保存到同一個物理塊上后,將物理塊上的修改作用到實際映射表上。[0028]所述步驟I中的在虛擬機(jī)外對攔截的I/O操作進(jìn)行語義分析,即將虛擬機(jī)外部攔截的塊粒度的I/o操作,轉(zhuǎn)化為虛擬機(jī)內(nèi)部文件粒度操作。[0029]所述步驟2中的刪除原來指向日志中對應(yīng)數(shù)據(jù)的映射,即去除了拷貝寫機(jī)制,實現(xiàn)了虛擬機(jī)內(nèi)部文件系統(tǒng)單寫日志機(jī)制,通過修改兩個虛擬塊地址到物理塊地址的映射指針,避免虛擬機(jī)內(nèi)部文件系統(tǒng)數(shù)據(jù)寫兩次問題。[0030]所述步驟3中的利用磁盤提供的單一數(shù)據(jù)塊修改的原子性,將虛擬塊地址到物理塊地址映射關(guān)系的修改先寫入同一數(shù)據(jù)塊中,從而保證虛擬塊地址到物理塊地址映射表修改的原子性。[0031]在虛擬機(jī)內(nèi)部文件系統(tǒng)使用數(shù)據(jù)日志模式,數(shù)據(jù)享有高一致性的情況下,解決數(shù)據(jù)日志模式下數(shù)據(jù)寫兩遍的問題,從而提高虛擬化I/O性能。[0032]為達(dá)到上述目的,本發(fā)明提出的技術(shù)方案,一種在虛擬機(jī)鏡像中實現(xiàn)文件系統(tǒng)單寫日志的方法,針對文件系統(tǒng)日志checkpoint過程時,需要從日志中拷貝數(shù)據(jù)至數(shù)據(jù)實際所在位置,設(shè)計一種通過修改虛擬機(jī)鏡像虛擬塊地址到物理地址映射關(guān)系的方式,避免了數(shù)據(jù)寫兩次問題。[0033]當(dāng)虛擬機(jī)內(nèi)部文件系統(tǒng)使用數(shù)據(jù)日志模式時,所有的修改(數(shù)據(jù)和元數(shù)據(jù))都先被記錄到日志中。當(dāng)日志被提交到磁盤,并持久化的存儲到磁盤后,文件系統(tǒng)可以開始checkpoint過程,拷貝日志中的數(shù)據(jù)和元數(shù)據(jù)至它們實際所在位置。文件系統(tǒng)數(shù)據(jù)在虛擬機(jī)鏡像中的映射關(guān)系如附圖2所示。圖2、圖3中的Des表示日志描述塊,M表示元數(shù)據(jù),D表示文件內(nèi)容,C表示日志交換塊。[0034]本發(fā)明提出通過修改虛擬機(jī)鏡像虛擬塊地址到物理地址映射關(guān)系的方式,避免了checkpoint過程中數(shù)據(jù)寫兩次問題。當(dāng)虛擬機(jī)內(nèi)部修改文件時,所有的修改(數(shù)據(jù)和元數(shù)據(jù))先被記錄到虛擬機(jī)內(nèi)部文件系統(tǒng)日志中。然后日志被提交到磁盤,并被持久化存儲。其次,當(dāng)虛擬機(jī)內(nèi)部文件系統(tǒng)做checkpoint時,攔截checkpoint對應(yīng)的1/0操作,如果攔截的1/0操作是拷貝虛擬機(jī)內(nèi)部日志至其實際位置,則直接修改虛擬機(jī)鏡像虛擬塊地址到物理地址映射關(guān)系,將攔截的1/0操作指向的虛擬機(jī)塊地址,指向日志中對應(yīng)數(shù)據(jù)的物理地址,并刪除原來指向日志中對應(yīng)數(shù)據(jù)的映射。整個過程通過修改兩個映射指針,避免數(shù)據(jù)寫兩次問題。同時,為保證虛擬機(jī)塊地址到物理塊地址映射表修改的原子性,將對映射表的修改先預(yù)先寫入同一個磁盤塊中,利用磁盤提供的塊修改操作的原子性,保證映射表修改的原子性。使用本發(fā)明后,文件系統(tǒng)數(shù)據(jù)在虛擬機(jī)鏡像中的映射如附圖3所示。[0035]綜上所述,本發(fā)明提出的通過修改虛擬機(jī)鏡像虛擬塊地址到物理地址映射關(guān)系的方式,在保證虛擬機(jī)內(nèi)部文件系統(tǒng)一致性且不修改客戶虛擬機(jī)的前提下,避免了數(shù)據(jù)寫兩次的問題,提高了虛擬化I/o的性能。[0036]以上對本發(fā)明的具體實施例進(jìn)行了描述。需要理解的是,本發(fā)明并不局限于上述特定實施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變化或修改,這并不影響本發(fā)明的實質(zhì)內(nèi)容。在不沖突的情況下,本申請的實施例和實施例中的特征可以任意相互組合。【主權(quán)項】1.一種在虛擬機(jī)鏡像中實現(xiàn)文件系統(tǒng)單寫日志的方法,其特征在于,包括如下步驟:步驟I:當(dāng)虛擬機(jī)內(nèi)部文件系統(tǒng)做檢查點(diǎn),即checkpoint時,攔截checkpoint對應(yīng)的I/O操作,并對攔截的I/O操作進(jìn)行語義分析,將攔截的塊粒度I/O操作逆向成文件粒度語義;步驟2:判斷I/O操作是否為針對虛擬機(jī)內(nèi)部日志的拷貝操作,若是,則修改虛擬機(jī)鏡像虛擬塊地址到物理地址映射關(guān)系,將該I/O操作指向的虛擬機(jī)鏡像虛擬塊地址,并刪除原來指向虛擬機(jī)內(nèi)部日志中對應(yīng)數(shù)據(jù)的映射;若否,則允許執(zhí)行該I/O操作;步驟3:將虛擬塊地址到物理地址映射表的修改記錄到同一個物理塊上;當(dāng)物理地址映射表的修改全部保存到同一個物理塊上后,將物理塊上的修改作用到實際映射表上。2.根據(jù)權(quán)利要求1所述的在虛擬機(jī)鏡像中實現(xiàn)文件系統(tǒng)單寫日志的方法,其特征在于,所述步驟I中的在虛擬機(jī)外對攔截的I/O操作進(jìn)行語義分析,將虛擬機(jī)外部攔截的塊粒度的I/O操作,轉(zhuǎn)化為虛擬機(jī)內(nèi)部文件粒度操作。3.根據(jù)權(quán)利要求1所述的在虛擬機(jī)鏡像中實現(xiàn)文件系統(tǒng)單寫日志的方法,其特征在于,所述步驟2中的刪除原來指向虛擬機(jī)內(nèi)部日志中對應(yīng)數(shù)據(jù)的映射,即去除了拷貝寫機(jī)制,實現(xiàn)了虛擬機(jī)內(nèi)部文件系統(tǒng)單寫日志機(jī)制,通過修改虛擬塊地址到物理地址的映射關(guān)系,避免虛擬機(jī)內(nèi)部文件系統(tǒng)數(shù)據(jù)寫兩次問題。4.根據(jù)權(quán)利要求1所述的在虛擬機(jī)鏡像中實現(xiàn)文件系統(tǒng)單寫日志的方法,其特征在于,步驟3中為保證修改虛擬機(jī)鏡像虛擬塊地址到物理地址映射關(guān)系操作和刪除原來指向虛擬機(jī)內(nèi)部日志中對應(yīng)數(shù)據(jù)的映射關(guān)系操作的這兩種操作的原子性,將虛擬塊地址到物理地址映射表的修改記錄到同一個物理塊上;其中,利用磁盤提供的單一數(shù)據(jù)塊修改的原子性,將虛擬塊地址到物理塊地址映射關(guān)系的修改先寫入同一數(shù)據(jù)塊中,從而保證虛擬塊地址到物理塊地址映射表修改的原子性?!疚臋n編號】G06F3/06GK105912277SQ201610283714【公開日】2016年8月31日【申請日】2016年4月29日【發(fā)明人】夏虞斌,陳慶澍,梁涼,陳榕,陳海波【申請人】上海交通大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1