BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

一文了解快照(Snapshot)技術的發展

星际视界IPFSNEWS
特邀专栏作者
2021-08-06 06:26
本文約6493字,閱讀全文需要約10分鐘
隨著計算機技術和網絡技術的不斷發展,信息技術水平不斷得到提高。
AI總結
展開
隨著計算機技術和網絡技術的不斷發展,信息技術水平不斷得到提高。


隨著計算機技術和網絡技術的不斷發展,信息技術水平不斷得到提高。人類進入稱為信息社會的二十一世紀後,諸如數字通信、數字多媒體、電子商務、搜索引擎、數字圖書館、天氣預報、地質勘探、科學研究等海量數據型應用的湧現,各種信息呈現爆炸式的增長趨勢,存儲成為信息計算技術的中心。應用對存儲系統的要求不斷提高,存儲容量不斷升級,從GB到TB、 PB、EB,愈顯巨大。

圖靈獎獲得者JimGray提出一個新的經驗定律:網絡環境下每18個月生產的數據量等於有史以來的數據量之和。與此同時,現代企業對計算機的依賴性嚴重增強,信息數據逐漸成為企業賴以生存的基礎,數據損壞或丟失將給企業帶來巨大的損失。由於黑客、病毒、硬件設備的失效以及火災、地震等自然災害的原因,使系統和數據信息遭到破壞甚至毀滅,如果不及時地進行恢復,將對企業造成巨大的損失,所以備份容災技術顯得尤為重要。尤其,9.11等事件造成的災難性後果使人們更加深刻地認識到數據信息的價值和意義,日益重視數據的保護。

在過去的20多年中,雖然計算機技術取得了巨大的發展,但是數據備份技術卻沒有長足進步。數據備份操作代價和成本仍然比較高,並且消耗大量時間和系統資源,數據備份的恢復時間目標和恢復點目標比較長。傳統地,人們一直採用數據複製、備份、恢復等技術來保護重要的數據信息,定期對數據進行備份或複制。由於數據備份過程會影響應用性能,並且非常耗時,因此數據備份通常被安排在系統負載較輕時進行(如夜間)。另外,為了節省存儲空間,通常結合全量和增量備份技術。

顯然,這種數據備份方式存在一個顯著的不足,即備份窗口問題。在數據備份期間,企業業務需要暫時停止對外提供服務。隨著企業數據量和數據增長速度的加快,這個窗口可能會要求越來越長,這對於關鍵性業務系統來說是無法接受的。諸如銀行、電信等機構,信息系統要求24x7不間斷運行,短時的停機或者少量數據的丟失都會導致巨大的損失。因此,就需要將數據備份窗口盡可能地縮小,甚至縮小為零,數據快照(Snapshot)、持續數據保護(CDP,Continuous Data Protection)等技術,就是為了滿足這樣的需求而出現的數據保護技術。

什麼是快照(Snapshot)

快照(Snapshot)是某個數據集在某一特定時刻的鏡像,也稱為即時拷貝,它是這個數據集的一個完整可用的副本。存儲網絡行業協會SNIA對快照的定義是:關於指定數據集合的一個完全可用拷貝,該拷貝包括相應數據在某個時間點(拷貝開始的時間點)的映像。快照可以是其所表示的數據的一個副本(duplicate),也可以是數據的一個複製品(replicate)。

快照具有很廣泛的應用,例如作為備份的源、作為數據挖掘的源、作為保存應用程序狀態的檢查點,甚至就是作為單純的數據複製的一種手段等。創建快照的方法也有很多種,按照SNIA的定義,快照技術主要分為鏡像分離(splitmirror) 、改變塊(changedblock)、 並發(concurrent) 三大類。後兩種在實現時通常使用指針重映射(pointerremapping)和寫時拷貝(copyon write)技術。 changedblock 方式的靈活性及使用存儲空間的高效性,使得它成為快照技術的主流。

第一種快照是鏡像分離。在即時拷貝之前構建數據鏡像,當出現一個完整的可供複製的鏡像時,就可以通過瞬間“分離”鏡像來產生即時拷貝。這種技術的優點是速度快,創建快照無須額外工作。但缺點也很明顯,首先它不靈活,不能在任意時刻進行快照;其次,它需要一個與數據卷容量相同的鏡像卷;再者,連續鏡像數據變化影響存儲系統的整體性能。

第二種快照是改變塊。快照創建成功後,源和目標共享同一份物理數據拷貝,直到數據發生寫操作,此時源或目標將被寫向新的存儲空間。共享的數據單元可是塊、扇區、扇道或其他的粒度級別。為了記錄和追踪塊的變化和復制信息,需要一個位圖(bitmap),它用於確定實際拷貝數據的位置,以及確定從源還是目標來獲取數據。

第三種快照是並發。它與改變塊非常相似,但它總是物理地拷貝數據。當即時拷貝執行時,沒有數據被複製。取而代之,它創建一個位圖來記錄數據的複制情況,並在後台進行真正的數據物理複製。

圖片描述

圖片描述

圖1 存儲系統棧與快照實現

存儲棧由一組硬件和軟件組件組成,為運行在主機操作系統上的應用系統提供物理存儲介質,如圖1所示。快照可以採用很多不同實現方式,也可以在存儲棧中的不同層次來實現,大致分為軟件層和硬件層兩類,也可分為基於控制器的快照和基於主機的快照兩類。

基於控制器的快照,在存儲設備層或硬件層中實現,由存儲系統硬件提供商管理並集成於磁盤陣列中。這種快照在LUN級(塊級)完成,獨立與操作系統和文件系統。基於主機的快照,在設備驅動和文件系統級之間實現,通常由文件系統、捲管理器或第三方軟件來執行。這種快照不依賴存儲硬件,但卻依賴於文件系統和捲管理軟件。該快照作用於邏輯數據視圖,這與基於控制器的快照的不同,它作用於物理數據。

在以上各個存儲層次中,物理存儲層和捲管理器是最適合實現快照的兩個組件,它們可以方便地利用物理存儲,是當前主流的實現層次。文件系統層實現快照是一個可行的選擇,然而諸如數據庫等應用會直接選擇使用邏輯卷來實現快照,因為在文件系統層它們不能被快照技術所管理。一般來說,沒有必要在應用層實現快照,對於備份機制,可以利用下層的文件系統或捲管理器接口來實現,但需要應用暫時停頓以保證快照數據一致性。總的來說,基於軟件層的快照易於操作,且提供比較好的恢復力度,而基於硬件層的快照往往更高的性能和容錯性。

快照實現方式及技術

快照技術能夠實現數據的即時影像,快照影像可以支持在線備份。全量快照是實現所有數據的一個完整的只讀副本,為了降低快照所佔用的存儲空間,人們提出了寫時復制(COW ,Copy-On-Write)和寫重定向(ROW,Redirecton Write)快照技術。另外,還出現了其他一些快照技術的實現方式,如日誌、持續數據保護等,可以提升快照的相關性能。

1、鏡像分離(SplitMirror)

鏡像分裂快照技術在快照時間點到來之前,首先要為源數據卷創建並維護一個完整的物理鏡像卷:同一數據的兩個副本分別保存在由源數據捲和鏡像卷組成的鏡像對上。在快照時間點到來時,鏡像操作被停止,鏡像卷轉化為快照卷,獲得一份數據快照。快照卷在完成數據備份等應用後,將與源數據卷重新同步,重新成為鏡像卷。

圖片描述

圖片描述

圖2 寫時復制快照

寫時復制快照使用預先分配的快照空間進行快照創建,在快照時間點之後,沒有物理數據複製發生,僅僅複製了原始數據物理位置的元數據。因此,快照創建非常快,可以瞬間完成。然後,快照副本跟踪原始卷的數據變化(即原始卷寫操作),一旦原始卷數據塊發生首次更新,則先將原始卷數據塊讀出並寫入快照卷,然後用新數據塊覆蓋原始卷(如圖2)。寫時復制,因此而得名。

這種快照技術在創建快照時才建立快照卷,但只需分配相對少量的存儲空間,用於保存快照時間點之後源數據卷中被更新的數據。每個源數據卷都具有一個數據指針表,每條記錄保存著指向對應數據塊的指針。在創建快照時,存儲子系統為源數據卷的指針表建立一個副本,作為快照卷的數據指針表。當快照時間點結束時,快照建立了一個可供上層應用訪問的邏輯副本,快照卷與源數據卷通過各自的指針表共享同一份物理數據。快照創建之後,當源數據卷中某數據將要被更新時,為了保證快照操作的完整性,使用寫時復制技術。對快照卷中數據的訪問,通過查詢數據指針表,根據對應數據塊的指針確定所訪問數據的物理存儲位置。

圖片描述

圖片描述

圖3 指針重映射快照

這種實現方式與寫時復制非常相似,區別在於對於原始數據卷的首次寫操作將被重定向到預留的快照空間。該快照維持的是指向所有源數據的指針和拷貝數據。當數據被重寫時,將會給更新過的數據選擇一個新的位置,同時指向該數據的指針也被重新映射,指向更新後的數據。如果拷貝是只讀的,那麼指向該數據的指針就根本不會被修改。重定向寫操作提升了快照I/O性能,只需一次寫操作,直接將新數據寫入快照卷,同時更新位圖映射指針;而寫時拷貝需要一次讀和兩次寫操作,即將原始卷數據塊讀入並寫入快照卷,然後將更新數據寫入原始卷。

不難發現,快照卷保存的是原始副本,而原始卷保存的則是快照副本。這導致刪除快照前需要將快照卷中的數據同步至原始卷,而且當創建多個快照後,原始數據的訪問、快照捲和原始卷數據的追踪以及快照的刪除將變得異常複雜。此外,快照副本依賴於原始副本,原始副本數據集很快變得分散。

4、日誌文件架構(Log-structuredfile architecture)

5、克隆快照(Copyon write with background copy)

5、克隆快照(Copyon write with background copy)

前面提到的快照,基本上都不會生成完整的快照副本,無法滿足完整物理數據副本的業務需求。克隆快照可生成與源數據卷一致的鏡像快照,它充分利用了寫時拷貝和鏡像分離兩種快照技術的優點。快照時間點時,它先使用寫時拷貝方式快速產生快照副本,然後在後台啟動一個拷貝進程來執行源數據卷至快照卷的塊級數據拷貝任務。一旦複製完成,就可以通過鏡像分離技術獲得一個克隆快照。克隆快照同樣繼承了鏡像分離快照的缺點,除了需要一個與源數據卷容量相等的快照卷外,還會一定程度上影響存儲系統的整體性能。

6、持續數據保護(Continuousdata protection)

以上幾種快照技術均存在共同的不足之處,即不能在任意點創建任意多的快照。日誌型快照雖然沒有上述不足,但卻依賴於具體的文件系統,無法直接應用到使用不同文件系統的應用,對於非基於文件系統的數據應用無能為力。

持續數據保護,也稱連續備份,它自動持續捕捉源數據卷數據塊的變化,並連續完整地記錄這些數據塊版本。每一次數據塊變化都會被記錄,生成瞬間快照,這與其他快照技術在快照時間點上創建快照是不同的。因為寫操作都被記錄保存下來,因此能夠動態地訪問任意一個時間點的數據狀態,提供了細粒度的數據恢復,可以實現瞬間和即時的恢復,有效拉近恢復點目標。數據塊級的持續數據保護技術的優點是與應用的藕合比較鬆,性能和效率比較高,系統連續不間斷運行,不存在快照窗口問題。它的缺點是對存儲空間的要求比較高,這也是限制數據塊級持續數據保護技術廣泛應用的根本原因。

下表從不同角度對以上幾種快照技術進行了分析對比。

結論與展

快照技術是對傳統數據備份與復制技術的重大革新,解決了備份窗口問題,有效拉近了恢復時間目標和恢復時間點目標,成為了事實上的存儲行業標準。

快照技術發明以來,人們進行了大量意義重大的改進。快照窗口不斷縮小,從幾秒到瞬間完成;幾乎可以在任意時刻創建快照,粒度越來越細,數量不斷增大;快照性能大幅提升,對主機、應用的影響降低至微;快照靈活性、可擴展性、可管理性不斷增強。然而,人們對技術的進步要求從來都是沒有止境的。針對當前的各種解決方案,在綜合性能、靈活性、管理性方面,快照技術仍然存在很大的改進空間。存儲廠商不斷推出新的快照存儲產品或新的版本,是最有力的證明。

【參考資料】

【參考資料】

【1】Snapshot.

http://www.snia.org/education/dictionary/s/#snapshot

【2】Point in time copy. 

http://www.snia.org.cn/dic.php?word=p

【3】Alain AzagIIry, Michael E Factor, Julian Satran. Point-in-time copy,Yesterday, Today and Tomorrow[C]. College Park, USA: the 19th IEEESymposium on Mass Storage Systems. 2002:259-270.

【4】Snapshot.  

http://www.ibm.com/developerworks/tivoli/library/t-snaptsm1/index.html

【5】袁曉銘, 林安. 幾種主流快照技術的分析比較. 微處理機,2008年第1期.

【6】王樹鵬, 雲曉春, 郭莉. 持續數據保護(CDP)技術的發展綜述. 信息技術快報,2008年第6卷第6期.

【7】EMCTimeFinder. 

http://china.emc.com/products/detail/software/timefinder.htm

【8】EMCTimeFinder.

http://china.emc.com/collateral/software/data-sheet/1700-timefinder.pdf

【9】HDSShadowImage. 

http://www.hds.com/cn/products/storage-software/shadowimage-in-system-replication.html

【10】NetAppSnapshot. 

http://www.netapp.com/us/products/platform-os/snapshot.html

【11】VeritasSnapshot. 

http://eval.symantec.com/mktginfo/enterprise/yellowbooks/using_local_copy_services_03_2006.en-us.pdf 

——End——

Filecoin
歡迎加入Odaily官方社群