?

基于卷影拷貝服務技術的海洋實時觀測數據備份

2023-08-16 06:28吳永芳王曉瑞張學靈司佳陳剛
海洋信息技術與應用 2023年3期
關鍵詞:數據備份快照副本

吳永芳,王曉瑞,張學靈,司佳,陳剛

(國家海洋信息中心,天津 300171)

隨著科學技術的進步,人們獲取海洋數據的手段越來越多,已經可以通過陸地、海面、海底、水下、航空航天等多種監控和監測設備獲取到大量不同時間段、不同尺度、不同地區的數據,其中非結構化數據已占到總數據量的60%~70%[1]。按照數據獲取到發布的時間長短,海洋數據可以分為海洋實時觀測數據和海洋延時觀測數據[2]。海洋實時觀測數據的獲取方式主要包括浮標、雷達、志愿船和全球導航衛星系統(Global Navigation Satellite System,GNSS)等。接收服務器接收到海量的觀測數據后,需要進行質控和備份[3]。

1 海洋實時觀測數據備份的意義

數據備份是指為防止操作失誤等人為因素或系統故障等自然因素導致數據丟失,而將數據通過一定的方法復制到其他存儲介質進行保存的過程[4],目的是在需要時能迅速、準確地找到目標數據進行恢復[5]。

海洋實時觀測數據的獲取大多是經過艱苦的海上作業,借助昂貴的數據采集和分析設備獲取得來的,海洋項目的完成需要耗費大量的人力、物力和財力,海洋數據獲取的成本非常高,許多數據一旦丟失難以重新采集。與陸地數據采集相比,海洋調查具有高風險、高投入的特點。因此需要重視海洋數據的安全存儲,其中就涉及對接收服務器中的海洋數據進行備份[6]。

2 NTFS 文件系統中海洋實時數據的備份現狀

目前Windows 服務器中廣泛使用的文件系統類型為NTFS(New Technology File System)。NTFS相對FAT 文件系統更加復雜,但也具有非常明顯的優勢:安全性更高、不易產生碎片并能夠獲取到更大的存儲[7]。NTFS 文件系統中采用的引導記錄、主文件表MFT 的數據格式以及B+樹數據結構,可以為操作系統和數據庫提供非常詳細的索引,這為文件查找帶來了很大的便利,但在同一個分區具有很多小文件時,系統空間分配、讀寫磁盤時會頻繁地訪問MFT,因此MFT 對NTFS 文件系統的性能有著至關重要的影響。海量小文件則意味著將有大量索引查詢、元數據讀取、數據讀取的請求操作[8],因此查找的速度受到了很大的限制[9]。

海洋實時觀測數據中絕大部分都是KB級別的小文件[10],如果利用如基于小文件合并和分層索引的傳統備份方式[11],在備份前仍然需要先對NTFS 文件系統磁盤中的大量小文件進行掃描,以獲取元數據信息,掃描操作需要消耗大量時間。例如在對擁有超過2 254萬個小文件的磁盤進行備份時,掃描時間接近3 h,而備份時由于受到元數據管理、緩存機制以及數據布局等因素的限制[8],備份時間超過63 h。因此在采用傳統備份方式對海洋實時觀測數據進行備份時,不但備份性能非常低,而且長時間備份也影響了接收服務器本身的CPU、內存以及磁盤的性能,使得系統的整體讀寫性能受到嚴重影響。

因此,本文嘗試基于卷影拷貝服務(Volume Shadow Copy Service,VSS)技術對實時觀測數據進行備份,以期提高對海洋實時觀測數據的備份性能,降低對觀測數據的傳輸和質控的影響。

3 卷影拷貝服務

卷影拷貝服務(VSS)是Microsoft Corporation在服務器操作平臺上提供的一種服務,是Windows下的指針型快照技術,具體來說它通過在卷管理模塊上加入快照功能,創建時間點映像,即卷影副本(只讀副本),從而實現數據的快速備份和恢復,同時不會影響到系統性能?;谶@一點,卷影拷貝服務非常適合用于海量數據的備份[12]。

基于卷影拷貝服務的備份方式,是基于快照的塊級數據備份方式,即把快照技術和備份技術相結合,可以保證數據備份時的一致性[13],與傳統備份方式相比,可以避免因備份數據量較大造成備份耗時太長,無法為用戶提供服務的問題[14]。因此塊級備份是目前備份性能最高的備份方式之一[15]。

3.1 卷影拷貝服務的原理

一個完整的VSS 解決方案由以下四個基本部分組成:

(1)VSS 請求程序:請求創建卷影副本的應用程序,本文中指的是數據備份系統。

(2)VSS 服務:可確保其他組件相互通信并協同工作,是Windows操作系統的一部分。

(3)VSS 寫入程序:保證備份數據一致性的組件。在創建卷影副本的過程中,如果有如SQL Server或者Windows系統中的注冊表等應用程序繼續寫入數據會造成卷影副本中數據的不一致,從而影響該時間點卷影副本的完整性。

(4)VSS 提供程序:創建給定時間點卷影副本的組件。程序基于存儲陣列(硬件模式)或操作系統(軟件模式),本文采用的是后者。

卷影副本的創建包括以下兩種方法:克?。–lone)和寫入時復制(Copy on Write)??寺?,是在給定時間點對源卷進行完整復制,在此過程中源卷和鏡像卷的數據始終保持同步,此鏡像卷為只讀副本。而寫入時復制,不復制源卷,只拷貝數據所在位置的指針,以生成一個快照位圖,當有寫操作時,需要先把源地址的數據拷貝到一個新位置,再對源地址進行寫操作。當需要引用原始數據時,需要將指針映射到新位置(圖1)。因此寫入時復制是創建卷影副本的快速方法[14]。

圖1 卷影拷貝服務的快照示意圖

卷影拷貝服務與請求程序、寫入程序和提供程序進行協調以創建卷影副本的流程圖(圖2)。

圖2 使用卷影拷貝服務進行備份的流程圖

具體流程說明如下:

(1)備份系統對卷影拷貝服務發出請求,卷影拷貝服務會通過vssadmin list writers 列舉出該時間點所有的寫入程序,并收集這些寫入程序的元數據信息;

(2)每個寫入程序都會通過XML(Extensible Markup Language)文件描述其組件,并把信息返回給卷影拷貝服務;

XML格式如下:

(3)卷影拷貝服務通知寫入程序準備數據以進行卷影拷貝,每個寫入程序都會根據需要準備數據,包括完成所有未結束的事務、滾動事務日志和刷新緩存等。隨后寫入程序會將寫入的IO 請求暫時凍結幾秒鐘(可以進行讀取IO 請求),刷新文件系統緩沖區并凍結文件系統,以確保卷影副本中數據的一致性。

(4)卷影拷貝服務通知操作系統創建卷影副本。首先通過vssadmin 啟用卷影副本,例如“vssadmin add shadowstorage/for=E/on=/F”表示對E 盤啟用卷影副本,F 盤作為卷影副本的保存卷。然后通過“vssadmin create shadow/for=/E”對E 盤創建卷影副本,創建周期很短,在此期間文件系統的所有寫入IO請求都將保持凍結狀態。

(5)卷影拷貝服務通知寫入程序解除對IO 請求的凍結。

(6)成功創建卷影副本后,VSS 將卷影副本通過ntdsutil snapshot"mount GUID"掛載到服務器中,并把掛載的位置信息返回給備份系統,備份系統把卷影副本復制到備份存儲中。

(7)卷影拷貝服務通過vssadmin delete shadows刪除快照,并通過ntdsutil snapshot“delete GUID”卸載掛載信息。

可以看出,基于卷影拷貝服務的備份方式,可以創建高可靠的即時性(Point in time)鏡像,不會影響到服務器的整體性能,可以實現數據的快速備份[11]。

3.2 備份功能集成到海洋數據備份平臺

本文在海洋數據備份平臺中添加了基于卷影拷貝服務進行備份的模塊,備份系統作為請求程序發起創建卷影副本的請求,創建成功后把該快照拷貝到備份存儲中,實現了基于卷影拷貝服務對Windows操作系統中海洋實時數據的快速備份。

本文對兩個海洋實時觀測數據服務器A 和B中的數據集做了實驗,并對基于文件復制的傳統備份方式和基于VSS的備份方式進行了對比分析。服務器A和B中數據集的屬性如表1所示。

表1 服務器A和服務器B的數據集屬性

可以計算得出,服務器A 和B 的數據集中文件平均大小分別為5.17 KB 和2.06 KB。因為兩個服務器中的文件數量比較多,尤其是服務器B 中數據量更大,單個文件更小。如果采用傳統方式,對服務器A 中的文件集備份的時間長達59 h。對服務器B中的文件集備份93 h后,進度僅為25%。

更換為基于VSS 的備份方式后,雖然因為網絡不穩定或服務器業務繁忙等原因,導致備份的時長不是非常穩定,但對服務器A 和B 中的文件集分別備份了10 次,平均時間分別為5.28 h 和10.81 h,遠遠低于傳統備份所需要的時間(圖3-圖5)。

圖3 服務器A的備份記錄

圖4 服務器B的備份記錄

圖5 兩種方式對服務器A和B的備份時間對比

為了進一步驗證基于VSS 的備份方式對海量小文件的備份性能,本文又選擇了兩個服務器分別對兩個數據集進行備份,并把該數據集分別放在磁盤容量不同的磁盤中進行對比。服務器C、D中數據集的屬性以及在磁盤容量分別為100 GB 和300 GB 時進行備份的結果如表2 所示,可以計算得出服務器C 和D 的數據集中文件的平均大小分別為16.4 KB 和0.11 KB。備份結果用柱狀圖表示如圖6、圖7所示。

表2 服務器C中數據集的大小

圖6 服務器C中數據集的備份結果

圖7 服務器D中數據集的備份結果

上述兩個實驗中服務器C 和服務器D 的配置完全一樣。OS 為Windows Server 2012R2 Standard 64位,CPU 為4核,內存為16 GB。從上面兩個實驗結果可以看出,在對服務器C 和服務器D 中的兩個數據集進行備份時,基于VSS 備份方式的備份時間大約是傳統方式的1/10 和1/20,該備份時間和磁盤容量沒有明顯關系,但文件越小基于VSS的備份方式的性能優勢越明顯。

由于VSS 采用的是寫入時復制的快照方式,可以通過跟蹤設備并創建更改的塊位圖,實現對基于VSS 備份方式的增量備份[12],但此時需要保證源卷數據的可用性,不然無法進行恢復。增量備份的位圖示意圖如表3所示。

表3 增量備份的快照示意圖

數據備份系統中對服務器A 和B 的增量備份如圖8和圖9,能更加快速地實現對數據的備份。

圖8 服務器A中數據集的增量備份

圖9 服務器B中數據集的增量備份

3.3 海洋數據備份平臺的恢復功能集成

海洋數據備份平臺中必須集成數據恢復模塊,在數據丟失時才能進行恢復?;謴偷牧鞒毯蛡浞莼鞠喾?,需要先根據恢復需求把快照數據從備份介質中拷貝出來,然后把快照掛載到恢復的目標服務器中,再從快照卷拷貝到指定磁盤中,最后卸載并刪除該快照卷。本文對基于VSS備份的備份集進行了恢復,以驗證備份數據的有效性,對服務器A 和B 恢復結果分別如圖10 和圖11所示。

圖10 服務器A中數據集的恢復

圖11 服務器B中數據集的恢復

可以看出恢復的時間在可以接受的時間范圍內,對恢復出來的數據集隨機抽取了10 個文件,通過certutil 工具計算MD5 進行了校對,驗證了備份數據的可用性。

3.4 基于VSS備份方式的不足

因為基于VSS 的備份方式是基于磁盤塊的備份,因此特別適合對海量小文件進行備份。但是這種方式的特點決定了只能對整個磁盤進行備份,而不能有針對性地選擇某個文件或文件夾,備份的靈活性不如傳統方式。

4 結語

本文實現了對Windows 中NTFS 文件系統基于卷影拷貝服務的備份,通過大量實驗證明該備份方式可以大大提高對海量小文件備份的性能,而且通過恢復演練驗證了備份數據的可用性。下一步會繼續在備份平臺中完善對Linux操作系統基于LVM (Logical Volume Manager) 的 快 照 方 式[16],以及對虛擬機整機基于qcow2 鏡像格式的快照方式[17]的研究,更好地為海洋數據的安全存儲提供服務。

猜你喜歡
數據備份快照副本
泉州高速公路收費系統遠程數據備份研究
EMC存儲快照功能分析
海洋數據備份平臺的設計和實現
程控交換機的數據備份與恢復技術分析
No.4 IDC:2019年上半年數據備份與恢復市場同比增長10.0%
面向流媒體基于蟻群的副本選擇算法①
創建磁盤組備份快照
副本放置中的更新策略及算法*
數據恢復的快照策略
一張“快照”搞定人體安檢
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合