999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于Linux 標準分區的快照方法

2017-04-22 08:34:43張權胡曉勤
現代計算機 2017年7期
關鍵詞:標準設備方法

張權,胡曉勤

(四川大學計算機學院,成都 610065)

一種基于Linux 標準分區的快照方法

張權,胡曉勤

(四川大學計算機學院,成都 610065)

目前Linux已有的快照大部分都是對于邏輯卷(LVM)實現,而極少有對標準分區進行快照的實現,基于以上問題,提出一種基于虛擬重構的快照方法,可以實現對標準分區的快照。通過在通用塊層截獲Bio對源卷進行寫時拷貝COW(Copy-On-Write),以及構造虛擬塊設備實現I/O重定向機制,對數據卷的快照對外看作是一個只可讀的塊設備從而實現對標準分區快照。通過實驗表明所提出的快照方法有效實現對標準分區進行快照。

快照;寫時拷貝;虛擬塊設備;I/O重定向

0 引言

目前隨著互聯網的飛速發展,隨之而來的是數據的爆炸式增長以及數據重要性的不斷提升。不管是對于企業來說,還是個人來說,數據的保護是很重要的財富,而如果這些數據一旦丟失或遭受損壞,由此帶來的經濟損失是無法估計的。在操作系統中,快照(Snapshot)是整個系統在某個時間點上的狀態[1]。它存儲了系統映像,讓操作系統在出現故障時,可以快速恢復到未出問題前的狀況。不管是備份,還是持續數據保護(CDP),都是以快照為基礎實現的[2],所以快照技術對于數據保護領域至關重要。

Linux中常用的快照技術是基于邏輯卷管理器(LVM)基礎之上的,現階段的快照大多都只是針對邏輯卷來實現的。而如果我們希望對整個Linux系統進行保護,例如/boot目錄在安裝操作系統時就要求只能掛載于標準分區。同時一些用戶也會將其他的目錄,例如根目錄,/home目錄也可能會掛載于標準分區。那么針對于標準分區,Linux下幾乎沒有實現快照。當然,有一些軟件,例如TimeShift軟件,可以為各種目錄進行快照,但其創建的快照不可讀,而且是基于文件系統的快照,這與我們要求的基于塊設備的快照要求不相符。

針對于Linux下標準分區缺少基于塊層快照的問題,本文提出了一種基于虛擬重構的快照方法,可以對Linux下標準分區、邏輯分區都可以進行快照,并能實現掛載、讀取數據、查看快照數據的功能,為用戶解決了對于標準分區無法快照的問題。

1 基于標準分區的快照方法技術原理

根據存儲網絡工業協會(Storage Networking Industry Association)對快照的定義:關于指定數據集合的一個完全可用的拷貝,該拷貝包括相應數據在某個時間點的映像。快照可以說是數據的一個復制品,也可表示為數據的一個副本。

在進行快照的時候,對原數據集合的寫入操作只可以發生于快照的創建之前或創建之后,在快照創建的這段時間內,必須保證原數據集合是不會被更新,從而可以保證快照數據的一致性。

在快照的發展歷程中,出現了寫時拷貝(Copy-On-Write,COW)技術[3]、寫重定向(Redirect On Write,ROW)技術、鏡像分離技術。

本文基于寫時拷貝技術實現快照。如圖1所示,寫時拷貝是每次在監控到發現有新數據將要寫入時把將要被覆蓋的原數據拷貝出來之后再寫入,拷貝出的原數據放在劃分給快照使用的卷中,從而保證快照時間點之后對數據的更新不會影響到快照,也保證了快照的空間不會太大,也不用將分區中的所有數據都拷貝出來。在使用寫時拷貝的時候,需要先按照數據卷的大小來構造一個位圖bitmap,每一位對應數據卷上的一個數據塊,為1則表示已經寫時拷貝過,為0則表示該塊是沒有拷貝到快照卷中的。

在監控驅動截獲到寫操作的時候,判斷其寫入位置的數據塊對應bitmap的位是的值。如果該位為1,則直接寫入原數據卷。如果為0,則需要將原數據塊以及元數據寫入到快照卷后再完成對數據卷的寫入操作,并修改bitmap,置對應位為1。其中,元數據的內容包括原數據卷的設備號、拷貝的數據塊在數據卷和快照卷中的偏移量、數據塊大小等內容。

圖1 寫時拷貝快照示意圖

而鏡像分離技術,一般是通過硬件實現的[4]。該技術需要在創建快照之前先為原始卷準備一個或多個物理鏡像,這些鏡像與原始卷完全同步,類似于RAID0的方式。當需要快照時,鏡像與原始卷分離,從而鏡像卷中的數據是當時原始卷的一個快照。顯然,與寫時拷貝技術相比,此方法占用存儲空間極大,依賴于硬件,并且刪除快照和恢復比較麻煩,同時也無法創建超過鏡像數目的快照。故而,本文不選該方法。

對于寫重定向方法(ROW),其實現方法類似于寫時拷貝技術,主要區別在于指針重映射技術對于原始數據的首次寫操作將被重新定向到預留的快照空間中。該快照維持的是指向所有源數據的指針以及數據拷貝。當重寫數據時,就會為更新過的數據選擇一個新的位置,并將指向該數據的指針也重新映射,使其指向更新后的數據。雖然寫重定向對于快照的I/O性能來說,只需要一次寫操作,直接將新數據寫入快照空間并更新位圖映射指針,但是對于原數據的讀取來說,會變得更復雜并且降低讀取效率。同時,最大的缺陷在于:當刪除快照時,我們需要將快照空間中的數據全部覆蓋寫入原數據卷中,這樣對于快照刪除的那一段時間內,原數據卷的I/O會變得效率底下,快照刪除困難。

綜上所述,選擇寫時拷貝技術作為本文的快照實現方法。

2 基于虛擬重構的快照方法

在創建對數據卷的快照后,監控驅動會在Linux I/O棧的通用塊層截獲對數據卷的讀寫請求,并對寫請求進行寫時拷貝操作。在創建快照的同時,在內核層創建一個虛擬塊設備,從而對應用層提供對快照的讀取等請求處理的操作。

通過創建虛擬重構的方法,使得應用層能夠將快照看作是一個可讀可掛載的塊設備來進行操作。如圖2,在內核層創建一個塊設備所必須的通用磁盤描述結構體gendisk,并初始化該結構體的各種屬性和函數,將該塊設備在內核中注冊(register_blkdev)后,再添加磁盤成功,從而對應用層可以映射出一個虛擬塊設備,在/dev目錄下可以找到該虛擬塊設備并可以對其進行讀取等操作。在構造虛擬塊設備的請求隊列的處理函數,使用了I/O重定向的方法實現對快照內容的讀取操作。

通過位圖bitmap和元數據來得到快照對應的數據塊具體位置。當應用層對虛擬卷進行讀取操作時根據其讀取數據塊的位置以及大小,再重定向I/O操作到對應的卷中即可實現了快照的讀取操作。如圖3所示,在虛擬塊設備的請求隊列處理函數中可以截獲bio。如果該bio為寫時則結束請求;如果該bio為讀時,通過bio得到讀請求的數據塊位置和大小,通過該讀取請求的位置查找對應的bitmap的位的值。當bitmap對應位為0時表示讀取快照的數據塊在原數據卷上,那么將bio中的設備號修改為原數據卷的設備號后下發到原數據卷的請求隊列中,從而實現重定向于原數據卷中完成讀取;當bitmap對應位為1時表示對應的數據塊已經經過寫時拷貝,將查找元數據結構體得到對應數據塊在快照卷中的具體位置,根據元數據內容修改bio將其下發到快照卷請求隊列后即可完成I/O重定向操作。

圖2 虛擬塊設備創建流程

圖3 I/O重定向示意圖

通過創建虛擬塊設備,我們可以對于快照來進行讀取、掛載等操作。這里我們將禁用對快照的寫入操作。從而將快照模擬成一個普通的塊設備對外提供服務。

3 基于Linux標準分區的快照方法的具體實現

3.1 結構定義

定義1數據塊(data block):對本地原數據卷按偏移量及大小分塊,以數據塊為單位記錄數據塊的寫時拷貝和I/O重定向。每一個數據塊用塊號block_num唯一標識,block_num=vol_off/block_sz,其中vol_off為數據卷的位置偏移,block_sz為數據塊大小。

定義2元數據結構體(sp_metadata):表示監控驅動snapshot_bd在截獲寫入操作時,該寫入操作的數據塊的偏移量、大小、截獲時間戳以及保存到快照數據卷中的位置。

定義3位圖(bitmap):存儲原數據卷在創建快照之后,每個數據塊是否發生變化的標志位。Bitmap的大小為vol_block_num/8字節,其中vol_block_num為整個數據卷的數據塊的個數。每個字節的8個bit存儲8個塊的變化狀態,數據塊在快照創建之后被寫入置該位為1,未被寫入該位為0。

3.2 快照的創建以及寫時拷貝過程

本文將在以下步驟講解創建快照,以及監控驅動截獲對數據卷的寫操作并進行寫時拷貝的過程,快照創建流程圖如圖4所示。具體步驟如下:

第1步創建快照服務驅動snapshot_server_bd,對外提供ioctl接口,通過對/dev/snapshot_server_bd進行ioctl控制,可以實現創建對標準分區、邏輯卷等塊設備的快照服務,以及刪除快照服務。

第2步創建快照,通過對/dev/snapshot_server_bd進行ioctl接口的訪問,創建對指定分區的快照,snapshot_server_bd會生成對快照的數據卷進行監控I/O的虛擬塊設備驅動snapshot_bd。每針對一個數據卷創建快照都會生成一個監控的虛擬塊設備驅動,其命名為snapshot_sdaN_XXX,其中sdaN表示的是進行快照的數據卷設備名,XXX則表示為生成快照的時間戳。

第3步創建元數據鏈表,位圖bitmap,由于此時快照正處于創建期間元數據鏈表只有一個表頭,位圖bitmap每一位都置為0。

第4步修改數據卷的請求隊列(request queue)的處理函數make_request_fn,修改該函數從而實現截獲bio結構體。如果該bio為讀取則按原I/O路徑下發。如果該bio為寫入操作,則找到該寫入位置對應的bitmap的位是否為1,如果為1則直接寫入,如果為0則將進行寫時拷貝操作。即,讀取該bio對應的數據塊,并創建并填充元數據結構體,將原數據塊和元數據結構體均寫入快照數據卷后,再將新的數據寫入下去,同時修改bitmap置對應的位為1。

圖4 快照創建流程圖

3.3 快照的讀取流程

對于應用層,可以對/dev目錄下的快照進行讀取操作,快照讀取流程圖如圖5所示。

對于快照的讀操作,本文在生成的監控驅動的請求隊列的處理函數make_request_fn是這樣做的:當有bio下發到隊列時,判斷其是否為讀,不是則直接結束操作。如果是讀的bio,則根據bio的偏移量來判斷bitmap對應位置的值。如果為0,則讀取原數據卷的對應數據塊;如果為1,則讀取快照存儲卷中的數據塊。本文以bitmap和元數據鏈表來將對生存的快照的虛擬塊設備的I/O重定向,從而實現快照的可讀可掛載等功能。

4 實驗結果

4.1 實驗環境

測試環境一臺服務器組成,具體配置如下表1所示。

測試工具:iozone3,一個文件系統的基準工具,可以測試不同文件系統的讀寫性能,如可以連續讀寫、隨即讀寫,測試讀寫速度。

圖5 虛擬卷讀取流程圖

4.2 實驗結果

首先對標準分區進行快照,在快照之前將分區數據進行計算MD5的哈希值,然后在快照之后對標準分區數據進行大量修改后,再對快照卷進行讀取并計算MD5的哈希值。本實驗將以上步驟實驗了多次,其快照前的MD5值和快照的MD5值均相同。從而證明,本文的快照方法是有效的、可行的、無數據失效的。

表2 快照數據正確性測試結果

然后接下利用iozone3對于同樣大小的數據卷在進行本文的快照方法snapshot_bd執行快照后和LVM2的快照方法做了快照后測試原數據卷和快照卷的隨即讀寫速率。測試速度如表2和表3所示。

表3 LVM2快照和snapshot_bd快照的讀寫原數據卷速度對比表

表4 LVM2快照和snapshot_bd快照的讀快照卷速度對比表

對與本文提出的基于Linux標準分區的快照實現方法,經過測試可以看出是可以實現存儲網絡工業協會對與快照的各項要求的,同時經過測試其快照導致的磁盤速度也是和LVM2的速度快上一點,但在速度上差距不大。但本方法在保證邏輯卷可以快照的前提下,也可以對Linux下的標準分區進行快照,對于企業和用戶來說都是急需的功能。

5 結語

本文針對于Linux下缺乏對標準分區進行快照的方法,或者對標準分區都只是基于文件系統層面且不可掛載和讀取的缺陷,設計了可以對標準分區、邏輯卷的基于塊設備層的可讀可掛載的快照方法。通過實驗驗證了本文提出的快照方法能夠實現快照的數據一致性、可讀可掛載,從而解決了Linux下缺乏對標準分區進行快照的問題。

[1]M.Rock,P.Poresky.Shorten Your Backup Window[J].Storage,Special Issue on Managing the Information that Drivers the Enterprise, 2005,6(9).

[2]LI,Xiao,Tan,Yu-An,LI,Yuan-Zhang,Snapshot Method for Continuous Data Protection Systems:Snapshot Method for Continuous Data Protection Systems[J].Journal of Software,10/20/2011,Vol.22(10):2523-2537.

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

[4]G.Duzy.Match Snaps to Apps[J].Storage,Special Issue on Managing the Information that Drives the Enterprise,2005,7(5).

A Method of Snapshot Based on Linux Disk Partition

ZHANG Quan ,HU Xiao-qin
(College of Computer Science,Sichuan University,Chengdu 610065)

Current snapshot based on Linux are mostly achieved by Logical Volume(LVM),and there is few implementations of snapshot regarding the disk partitions.Based on all above problems,proposes a method of snapshot based on virtual reconstruction,which can get the snapshots of disk partitions.Copy-On-Write is performed by intercepting Bio at the generic block layer to write the disk volume,and creating virtual block device to implement the redirection mechanism.In this process,the snapshots for the data volume can be seen as a readonly block device,thereby achieve the snapshots for the disk partitions.Verified by the experiments,this implementation of snapshot can guarantee the effectiveness of snapshot for disk partitions.

Snapshot;COW;Virtual Block Device;I/O Redirection

1007-1423(2017)07-0029-05

10.3969/j.issn.1007-1423.2017.07.008

張權(1991-),男,湖北棗陽人,碩士研究生,研究方向為網絡與信息安全

胡曉勤(1977-),男,四川內江人,博士,講師,研究方向為網絡與信息安全

2016-12-22

2017-02-10

國家重點研發計劃(No.2016yfb00604、No.2016yfb00605)、國家自然科學基金項目(No.61572334)

猜你喜歡
標準設備方法
諧響應分析在設備減振中的應用
2022 年3 月實施的工程建設標準
忠誠的標準
當代陜西(2019年8期)2019-05-09 02:22:48
美還是丑?
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
一家之言:新標準將解決快遞業“成長中的煩惱”
專用汽車(2016年4期)2016-03-01 04:13:43
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 成人中文字幕在线| 无码一区二区波多野结衣播放搜索| 亚洲系列中文字幕一区二区| 亚洲国内精品自在自线官| 国产全黄a一级毛片| 97亚洲色综久久精品| 精品少妇人妻一区二区| 视频国产精品丝袜第一页| 国产精品9| 国产一区在线观看无码| 国产 日韩 欧美 第二页| 国产精品19p| 这里只有精品免费视频| 欧美日韩综合网| 日本国产一区在线观看| 欧美福利在线播放| 日韩福利在线观看| 色哟哟国产精品| 国产精品高清国产三级囯产AV| 国产噜噜噜视频在线观看 | 人与鲁专区| 香蕉eeww99国产在线观看| 草草影院国产第一页| 久久免费精品琪琪| 1024你懂的国产精品| 亚洲av中文无码乱人伦在线r| 黄色国产在线| 国产成a人片在线播放| 97久久免费视频| 久草国产在线观看| 欧美人与性动交a欧美精品| 91娇喘视频| 亚洲va在线观看| 日韩二区三区无| a毛片免费观看| 国产无人区一区二区三区| 97久久超碰极品视觉盛宴| 国产在线专区| 中文字幕2区| 啪啪永久免费av| 午夜毛片免费观看视频 | 思思热在线视频精品| 米奇精品一区二区三区| 亚洲一区色| 丝袜久久剧情精品国产| 丁香亚洲综合五月天婷婷| 久久久久人妻一区精品色奶水| 色九九视频| 国产精品尤物铁牛tv| 亚洲第一福利视频导航| 国产激情国语对白普通话| 免费毛片全部不收费的| 国产91精品久久| 欧美成人亚洲综合精品欧美激情| 亚洲一区免费看| 狠狠v日韩v欧美v| 人妻出轨无码中文一区二区| 少妇极品熟妇人妻专区视频| 日本欧美成人免费| 国产靠逼视频| 4虎影视国产在线观看精品| 成人午夜网址| 欧美精品亚洲精品日韩专| 福利国产微拍广场一区视频在线| 欧美精品在线免费| 日本国产精品一区久久久| 亚洲精品久综合蜜| 亚洲成人在线免费观看| 拍国产真实乱人偷精品| 国产a在视频线精品视频下载| 91精品福利自产拍在线观看| 国产精品无码AV中文| 喷潮白浆直流在线播放| 大香伊人久久| 国产欧美自拍视频| 她的性爱视频| 亚洲综合亚洲国产尤物| 日韩一区二区三免费高清| 四虎精品免费久久| 欧美福利在线观看| 国产成人AV男人的天堂| 五月婷婷亚洲综合|