一種基于qcow2格式增量快照的輕量化實現方法
【專利摘要】本發明公開了基于qcow2格式增量快照的輕量化實現方法,包括以下步驟S1、以鏡像模板為后備文件創建基礎卷并創建基礎快照;S2、以基礎卷為后備文件創建相互關聯的第0級子卷至第t+i級子卷;S3、對由第0級子卷所生成的多個相互關聯的第t級子卷與第t+i?1級子卷之間的所有子卷至少做一次逆向合并入所述第t級子卷所對應的父卷的合并操作,將第t+i級子卷的后備文件設置為第t級子卷所對應的父卷;S4、將第0級子卷的后備文件設置為所述基礎快照,將第t級子卷的后備文件作為第t?1級子卷所對應的第t?1級增量快照。通過本發明,可有效的解決因卷鏈過長所導致的云硬盤讀寫性能降低的問題,降低了計算開銷。
【專利說明】
一種基于qc〇w2格式増量快照的輕量化實現方法
技術領域
[0001]本發明涉及云計算存儲技術領域,尤其涉及一種基于qC0W2格式增量快照的輕量化實現方法。【背景技術】
[0002]KVM(Kernel_based Virtual Machine)內置于Linux內核,是一種基于硬件的完全虛擬化系統。KVM基本結構由KVM Driver和qemu組成。其中,KVM Driver已經成為了Linux內核的一個模塊,并負責創建虛擬機、虛擬內存的分配、虛擬CPU寄存器的讀/寫與運行等。 qemu是運行在HOST 0S(主機操作系統)中的一個應用程序,并以宿主機文件的形式存儲虛擬機硬盤數據,并提供raw和qcow2兩種常用的文件格式。qcow2提供寫時復制技術(copy-on_write,cow),數據塊僅在更新時被分配,并提供了snapshot(快照功能)c^qemu用于模擬 PC硬件的用戶空間組件,提供硬盤、網絡等設備模型以及訪問途徑。[00〇3]云計算平臺支持多種存儲方式的云硬盤,qcow2是qemu所支持的一種鏡像文件格式。qC0W2具有寫時復制、zlib壓縮,AES加密等特性,其中,基于寫時復制特性實現了在云硬盤中快速創建多個系統盤鏡像文件,進而開通虛擬機的流程,多個系統盤鏡像文件具有共同的后備文件(base文件)。在對qcow2格式的云硬盤做快照時,其本質上是以當前active盤為后備文件(backing file)創建一個新的qcow2格式的鏡像文件。
[0004]當用戶增加數據時,需要頻繁的將鏡像文件作創建操作、刪除操作。然而,鏡像快照的創建操作與刪除操作需要根據當前云硬盤是否處于掛載狀態以及所掛載的虛擬機狀態分為在線快照和離線快照。在線快照需要通過調用Libvirt的靜默文件系統和創建快照接口來實現;而離線快照不需要與qemu交互,而是通過qemu-1mg工具來實現。現有技術中的這種在線快照創建操作與刪除操作及增量快照功能,雖然一定程度上保證了用戶與云硬盤之間的數據訪問業務不中斷。但是,隨著快照數量的增加,多個快照之間所形成的快照鏈也會變長,進而使得總的卷鏈變長,因此會極大的影響到用戶執行各種讀寫操作時云硬盤的讀寫性能;此外,由于快照鏈在卷鏈上,因此當卷處于掛載狀態時,刪除快照時需要與qemu 交互,從而導致開銷較大,操作復雜。
[0005]參圖1所示,卷鏈30中包含多個相互關聯的子卷,被創建在后的子卷包含被創建在先的子卷中的增量數據。但是,如果要讀取被創建在先的某一時刻的子卷中的數據,必須根據卷鏈30中多個相互關聯的快照(即第i級子卷至第0級子卷)的方向進行逆向讀取。因此, 當卷鏈30變得非常長時,就會造成讀取被創建在先的某個子卷中的數據時的計算開銷較大。
【發明內容】
[0006]本發明的目的在于公開一種基于qC〇w2格式增量快照的輕量化實現方法,避免因卷鏈過長所導致的云硬盤讀寫性能降低的缺陷,并簡化在線增量快照的刪除操作流程,降低計算開銷。
[0007]為實現上述發明目的,本發明公開了一種基于qC〇w2格式增量快照的輕量化實現方法,包括以下步驟:
[0008]S1、以鏡像模板為后備文件創建基礎卷并創建基礎快照;
[0009]S2、以基礎卷為后備文件創建相互關聯的第0級子卷至第t+i級子卷;
[0010]S3、對由第〇級子卷所生成的多個相互關聯的第t級子卷與第t+1-1級子卷之間的所有子卷至少做一次逆向合并入所述第t級子卷所對應的父卷的合并操作,將第t+i級子卷的后備文件設置為第t級子卷所對應的父卷;
[0011]S4、將第0級子卷的后備文件設置為所述基礎快照,將第t級子卷的后備文件作為第t-1級子卷所對應的第t-1級增量快照;
[0012]其中,所述t取大于或者等于1的整數,i取大于或者等于1的整數。
[0013]在一些實施方式中,所述步驟S2中的多個相互關聯的子卷形成至少一條鏈路。 [〇〇14]在一些實施方式中,所述步驟S2中的多個相互關聯的子卷呈鏈狀架構。[〇〇15]在一些實施方式中,所述步驟S2中的多個相互關聯的子卷呈樹狀架構。[〇〇16]在一些實施方式中,所述步驟3還包括:對由第0級子卷所生成的多個相互關聯的第t級子卷與第t+1-1級子卷之間的所有子卷依次逆向合并入所述第t級子卷所對應的父卷的合并操作,將第t+i級子卷的后備文件設置為第t級子卷所對應的父卷。
[0017]在一些實施方式中,對由第0級子卷所生成的多個相互關聯的第t級子卷與第t+i_ 1級子卷之間的所有子卷跳躍逆向合并入所述第t級子卷所對應的父卷的合并操作,將第t+ i級子卷的后備文件設置為第t級子卷所對應的父卷。
[0018]在一些實施方式中,所述“創建基礎快照”具體為:以基礎卷為輸入,并利用qemu-1mg工具創建基礎快照。
[0019]與現有技術相比,本發明的有益效果是:通過本發明,有效的降低了因卷鏈過長所導致的云硬盤讀寫性能降低的問題,并簡化了在線增量快照的刪除操作流程,降低了計算開銷。【附圖說明】
[0020]圖1為現有技術中云硬盤經過多個快照獲取周期所形成的包含增量數據及其該增量數據所對應形成的多個快照的原理圖;[0021 ]圖2為本發明一種基于qc〇W2格式增量快照的輕量化實現方法的流程圖;[〇〇22]圖3為本發明一種基于qc〇W2格式增量快照的輕量化實現方法在t取1且i取1時進行一次依次逆向合并操作以合并入基礎卷中的原理圖;[〇〇23]圖4為圖3中所獲得增量快照的原理圖;[〇〇24]圖5為卷鏈中的多個子卷相互關聯并形成樹狀架構的原理圖;
[0025]圖6為本發明一種基于qc〇W2格式增量快照的輕量化實現方法在進行依次逆向合并操作以合并入基礎卷中的原理圖;[〇〇26]圖7為圖6中所獲得增量快照的原理圖。【具體實施方式】[〇〇27]下面結合附圖所示的各實施方式對本發明進行詳細說明,但應當說明的是,這些實施方式并非對本發明的限制,本領域普通技術人員根據這些實施方式所作的功能、方法、 或者結構上的等效變換或替代,均屬于本發明的保護范圍之內。
[0028]本發明一種基于qc〇w2格式增量快照的輕量化實現方法的應用場景為虛擬化云平臺中云硬盤做快照操作。云硬盤包括系統盤和數據盤,云硬盤采用qc〇w2鏡像文件格式。云平臺管理系統包括計算模塊、存儲模塊,其中計算模塊負責虛擬機的生命周期的管理,其底層采用QEMU-KVM Hypervisor,存儲模塊負責管理云硬盤及快照。云硬盤可掛載給虛擬機。
[0029]以下結合圖2至圖7,對qc〇W2鏡像文件格式的隨著后臺獲取快照的所設定的時間閾值T時,所獲取的多個快照在在線快照的創建、離線快照的創建的具體實現過程進行詳細描述,以實現對基于qc〇w2格式增量快照的輕量化實現方法。
[0030]實施例一:
[0031]如圖2及圖5所示,本實施方式所示出的一種基于qc〇W2格式增量快照的輕量化實現方法,包括以下步驟:步驟S1、以鏡像模板10為后備文件創建基礎卷20,并由基礎卷20創建基礎快照400;步驟S2、以基礎卷20為后備文件創建相互關聯的第0級子卷至第t+i級子卷 307,這些t+i+1個子卷形成了卷鏈30;步驟S3、對由第0級子卷311所生成的多個相互關聯的第t級子卷306與第t+1-1級子卷305之間的所有子卷至少做一次逆向合并入所述第t級子卷 306所對應的父卷(即第t+1-1級子卷305)的合并操作,將第t + i級子卷307的后備文件 (backing file)設置為第t級子卷306所對應的父卷(S卩第t+1-1級子卷305);步驟S4、將第0 級子卷311的后備文件設置為所述基礎快照400,將第t級子卷306的后備文件作為第t+1-1 級子卷305所對應的第t-1級增量快照;其中,所述t取大于或者等于1的整數,i取大于或者等于1的整數。
[0032]在本實施方式中,系統盤中存在有一個或者多個鏡像模板10。以鏡像模板10為后備文件(backing file)創建基礎卷20,然后再以基礎卷20為后備文件創建第0級子卷311。 以基礎卷20為輸入,利用qemu-1mg工具轉換一個基礎快照400。
[0033]云主機可在設定的時間閾值T為間隔對由第0級子卷311所創建的包含增量數據的多級子卷,多級子卷構成了如圖4至圖6中的卷鏈30。卷鏈30中的多個子卷形成至少一條鏈路。如圖5所示,該卷鏈30中的第0級子卷311至第1級子卷301至第t+i級子卷307所形成的t+ 2個子卷依次相互關聯,以形成鏈狀架構。圖5中的每一個子卷為云主機新增數據時由前一級子卷(即父卷)所創建的形成并包含增量數據的在后的子卷。例如,位于同一條卷鏈30上的第5級子卷與第6級子卷之間形成了該增量數據。[〇〇34]如圖5所示,由基礎卷20所創建并相互關聯的多個子卷之間呈樹狀架構。第2級子卷302a與第2級子卷302b關聯到第1級子卷301;第3級子卷303a與第3級子卷303b關聯到第2 級子卷302a,第3級子卷303c與第3級子卷303d關聯到第2級子卷302b,從而形成相互關聯的多個子卷之間呈樹狀架構。
[0035]具體的,第3級子卷303a可沿圖中虛線箭頭所指方向通過第一次逆向合并操作,將增量數據合并入第2級子卷302a中,然后第2級子卷302a通過第二次逆向合并操作,將包括第2級子卷302a與第3級子卷303a的增量數據之和合并入第1級子卷301中,依次類推并執行第三次逆向合并操作及第四次逆向合并操作。此時,完成全部逆向合并操作后的基礎卷20 中包含了第0級子卷311、第1級子卷301、第2級子卷302a及第3級子卷303a所形成的增量數據之和。
[0036]具體的,參圖3及圖4所示,圖3與圖4示范性的說明了執行一次逆向合并操作的完整過程,并可按圖3中的數字序號①②③④⑤⑥⑦順序執行。[〇〇37]需要說明的是,結合圖5所示,第3級子卷303a可也采用跳躍逆向合并的方式與第1 級子卷301進行第一次逆向合并操作,以將第1級子卷301至第三字卷303a之間所形成的增量數據合并入第1級子卷301中,然后再將合并后所形成的第1級子卷301采用跳躍逆向合并的方式與基礎卷20進行第二次逆向合并操作。此時,完成全部逆向合并操作后的基礎卷20 中也包含了第0級子卷311、第1級子卷301、第2級子卷302a及第3級子卷303a所形成的增量數據之和。[〇〇38]在本實施方式中,由第0級子卷311創建了一個相互關聯的第1級子卷301。以鏡像模板10為后備文件創建基礎卷20,以基礎卷20為輸入,利用qemu-1mg工具轉換一個基礎快照400。以基礎卷20為后備文件創建相互關聯的第0級子卷311,然后再以第0級子卷311為后備文件創建相互關聯的第1級子卷301。對由第0級子卷311所生成的多個相互關聯的第1級子卷301做一次逆向合并入所述第0級子卷311所對應的父卷(即基礎卷20)的合并操作,將第0級子卷311的后備文件設置為基礎快照400;最后,將第1級子卷301的后備文件作為基礎卷20。將第0級子卷311重命名為第0級增量快照401。通過上述一次逆向合并操作,以形成圖 4所示出的原理圖。
[0039]如圖4所示,在執行一次逆向合并操作后,該第0級子卷311從卷鏈30中消失,降低了對圖5或者圖6中卷鏈30的長度,因此可有效的降低因卷鏈30過長所導致的云硬盤讀寫性能降低的問題,并簡化了在線增量快照的刪除操作流程,降低了計算開銷。
[0040]實施例二:
[0041]參圖2、圖3、圖4及圖7所示出的本發明一種基于qc〇W2格式增量快照的輕量化實現方法的第二種【具體實施方式】。
[0042]本發明公開了一種基于qC〇W2格式增量快照的輕量化實現方法,包括以下步驟:步驟S1、以鏡像模板10為后備文件創建基礎卷20并創建基礎快照400;步驟S2、以基礎卷20為后備文件創建相互關聯的第0級子卷311至第t+i級子卷;步驟S3、對由第0級子卷311所生成的多個相互關聯的第t級子卷306與第t+1-1級子卷之間的所有子卷至少做一次逆向合并入所述第t級子卷306所對應的父卷的合并操作,將第t+i級子卷的后備文件設置為第t級子卷 306所對應的父卷;步驟S4、將第0級子卷311的后備文件設置為所述基礎快照400,將第t級子卷的后備文件作為第t-1級子卷所對應的第t-1級增量快照。接下來,將第t級子卷306的后備文件設置為第t_l級增量快照409;將第t級子卷306重命名為第t級增量快照410。該重命名的過程如特定子卷向下指向其對應的增量快照之間的虛線箭頭所示。[〇〇43]結合實施例一所述,在本實施方式中,可形成包含基礎快照400、第0級快照401、第 1級增量快照402(余略)、第t-1級增量快照409、第t級增量快照410及第t+1級增量快照411 所形成的一條與卷鏈30相互分離的快照鏈40。
[0044]在本實施方式中,所述t取大于或者等于1的整數,i取Ut可隨云主機取鏡像快照所設定的時間閾值T的選定,而在某個時間段內形成多個直接和/或間接的與基礎卷20相關聯的子卷,并與基礎卷20及鏡像模板10共同構成卷鏈30。[〇〇45]當i取1時,對由第0級子卷311所生成第1級子卷301以及多個相互關聯的第t-1級子卷305、第t級子卷306與第t+1級子卷307之間的所有子卷依次逆向合并入所述第t級子卷306所對應的父卷(即第t-1級子卷305)的合并操作,將第t+1級子卷307的后備文件設置為第t級子卷306所對應的父卷。具體技術方案請參實施例一所述。[〇〇46]在執行多個子卷做逆向合并操作之前,由基礎卷20所創建的多個相互關聯的子卷呈鏈狀結構,并且卷鏈30的長度非常長;通過該輕量化實現方法可對卷鏈30中的多個子卷做多次逆向合并操作。優選的,最終所形成的卷鏈30中僅僅包含鏡像模板10、基礎卷20及第 t+1級子卷307。
[0047]當i取大于1的整數時,具體的在本實施例中i取2。對由第0級子卷311所生成的多個相互關聯的第t級子卷306與第t+1級子卷307之間的所有子卷跳躍逆向合并入所述第t級子卷306所對應的父卷的合并操作,將第t+1級子卷307的后備文件設置為第t級子卷306所對應的父卷。
[0048]在圖7中,隨著第t級子卷306至第0級子卷311之間的一次或者多次的逆向合并操作,使得整個卷鏈30中的子卷數量被大大限縮,從而有效的縮短了卷鏈30的長度,因此可有效的降低因卷鏈30過長所導致的云硬盤讀寫性能降低的問題,并簡化了在線增量快照的刪除操作流程,降低了計算開銷。
[0049]上文所列出的一系列的詳細說明僅僅是針對本發明的可行性實施方式的具體說明,它們并非用以限制本發明的保護范圍,凡未脫離本發明技藝精神所作的等效實施方式或變更均應包含在本發明的保護范圍之內。
[0050]對于本領域技術人員而言,顯然本發明不限于上述示范性實施例的細節,而且在不背離本發明的精神或基本特征的情況下,能夠以其他的具體形式實現本發明。因此,無論從哪一點來看,均應將實施例看作是示范性的,而且是非限制性的,本發明的范圍由所附權利要求而不是上述說明限定,因此旨在將落在權利要求的等同要件的含義和范圍內的所有變化囊括在本發明內。不應將權利要求中的任何附圖標記視為限制所涉及的權利要求。
[0051]此外,應當理解,雖然本說明書按照實施方式加以描述,但并非每個實施方式僅包含一個獨立的技術方案,說明書的這種敘述方式僅僅是為清楚起見,本領域技術人員應當將說明書作為一個整體,各實施例中的技術方案也可以經適當組合,形成本領域技術人員可以理解的其他實施方式。
【主權項】
1.一種基于qc〇w2格式增量快照的輕量化實現方法,其特征在于,包括以下步驟:51、以鏡像模板為后備文件創建基礎卷并創建基礎快照;52、以基礎卷為后備文件創建相互關聯的第0級子卷至第t+i級子卷;53、對由第0級子卷所生成的多個相互關聯的第t級子卷與第t+1-1級子卷之間的所有 子卷至少做一次逆向合并入所述第t級子卷所對應的父卷的合并操作,將第t+i級子卷的后 備文件設置為第t級子卷所對應的父卷;54、將第0級子卷的后備文件設置為所述基礎快照,將第t級子卷的后備文件作為第t-1 級子卷所對應的第t_l級增量快照;其中,所述t取大于或者等于1的整數,i取大于或者等于1的整數。2.根據權利要求1所述的基于qc〇w2格式增量快照的輕量化實現方法,其特征在于,所 述步驟S2中的多個相互關聯的子卷形成至少一條鏈路。3.根據權利要求2所述的基于qc〇W2格式增量快照的輕量化實現方法,其特征在于,所 述步驟S2中的多個相互關聯的子卷呈鏈狀架構。4.根據權利要求2所述的基于qc〇W2格式增量快照的輕量化實現方法,其特征在于,所 述步驟S2中的多個相互關聯的子卷呈樹狀架構。5.根據權利要求3或者4所述的基于qc〇W2格式增量快照的輕量化實現方法,其特征在 于,所述步驟3還包括:對由第0級子卷所生成的多個相互關聯的第t級子卷與第t+1-1級子 卷之間的所有子卷依次逆向合并入所述第t級子卷所對應的父卷的合并操作,將第t+i級子 卷的后備文件設置為第t級子卷所對應的父卷。6.根據權利要求3或者4所述的基于qc〇W2格式增量快照的輕量化實現方法,所述步驟3 還包括:對由第0級子卷所生成的多個相互關聯的第t級子卷與第t+1-1級子卷之間的所有 子卷跳躍逆向合并入所述第t級子卷所對應的父卷的合并操作,將第t+i級子卷的后備文件 設置為第t級子卷所對應的父卷。7.根據權利要求1所述的基于qc〇w2格式增量快照的輕量化實現方法,所述“創建基礎 快照”具體為:以基礎卷為輸入,并利用qemu-1mg工具創建基礎快照。
【文檔編號】G06F3/06GK106055278SQ201610387923
【公開日】2016年10月26日
【申請日】2016年6月3日
【發明人】許廣彬, 鄭軍, 張銀濱, 劉曉欣, 劉志坤, 劉蘇
【申請人】無錫華云數據技術服務有限公司