快照技術
快照技術
快照技術是一種攝影技術,隨著存儲應用需求的提高,用戶需要在線方式進行數據保護,快照就是在線存儲設備防範數據丟失的有效方法之一,在過去十年時間中,快照已經成為磁碟陣列、卷管理器、文件系統甚至PCI RAID(獨立磁碟冗餘陣列)控制器的標準配置功能。越來越多的設備都開始支持這項功能。越來越多的存儲設備支持快照功能,在這些產品的資料中宣傳了各自快照技術的優勢,有的是快照數量多,有的是佔用空間小。
SNIA(存儲網路行業協會)對快照(Snapshot)的定義是:關於指定數據集合的一個完全可用拷貝,該拷貝包括相應數據在某個時間點(拷貝開始的時間點)的映像。快照可以是其所表示的數據的一個副本,也可以是數據的一個複製品。
而從具體的技術細節來講,快照是指向保存在存儲設備中的數據的引用標記或指針。我們可以這樣理解,快照有點像是詳細的目錄表,但它被計算機作為完整的數據備份來對待。
快照有三種基本形式:基於文件系統式的、基於子系統式的和基於卷管理器/虛擬化式的,而且這三種形式差別很大。市場上已經出現了能夠自動生成這些快照的實用工具,比如有代表性的有NetApp的存儲設備基於文件系統實現,高中低端設備使用共同的操作系統,都能夠實現快照應用;HP的EVA、HDS通用存儲平台以及EMC的高端陣列則實現了子系統式快照;而Veritas則通過卷管理器實現快照。
快照技術的作用:主要是能夠進行在線數據恢復,當存儲設備發生應用故障或者文件損壞時可以進行及時數據恢復,將數據恢復成快照產生時間點的狀態。快照的另一個作用是為存儲用戶提供了另外一個數據訪問通道,當原數據進行在線應用處理時,用戶可以訪問快照數據,還可以利用快照進行測試等工作。
因此,所有存儲系統,不論高中低端,只要應用於在線系統,那麼快照就成為一個不可或缺的功能。
快照在備份、數據保護過程中發揮著越來越大的作用。
有兩大類存儲快照,一種叫做即寫即拷(copy-on-write)快照,另一種叫做分割鏡像快照。
即寫即拷快照可以在每次輸入新數據或已有數據被更新時生成對存儲數據改動的快照。這樣做可以在發生硬碟寫錯誤、文件損壞或程序故障時迅速地恢複數據。但是,如果需要對網路或存儲媒介上的所有數據進行完全的存檔或恢復時,所有以前的快照都必須可供使用。
即寫即拷快照原理圖
分割鏡像快照引用鏡像硬碟組上所有數據。每次應用運行時,都生成整個卷的快照,而不只是新數據或更新的數據。這種使離線訪問數據成為可能,並且簡化了恢復、複製或存檔一塊硬碟上的所有數據的過程。但是,這是個較慢的過程,而且每個快照需要佔用更多的存儲空間。
分割鏡像快照也叫作原樣複製,由於它是某一LUN或文件系統上的數據的物理拷貝,有的管理員稱之為克隆、映像等。原樣複製的過程可以由主機(Windows上的MirrorSet、Veritas的Mirror卷等)或在存儲級上用硬體完成(Clone、BCV、ShadowImage等)。
容災技術中的數據快照技術
遠程鏡像技術往往同快照技術結合起來實現遠程備份,即通過鏡像把數據備份到遠程存儲系統中,再用快照技術把遠程存儲系統中的信息備份到遠程的磁帶庫、光碟庫中。
快照技術空間型工作示意圖
另一類是空間型,也駐留在磁碟陣列系統中。它使主機系統和磁碟陣列設備管理者能夠在後台狀態下,為主機處理的數據在磁碟陣列內部實時創建可獨立定址多copy卷。這些copy卷是應用數據存放的現用生產卷的鏡象,可同時并行運行任務。一旦生產數據的copy卷建立后,通過命令可以與其生產卷分割開,應用系統資料庫可通過生產卷繼續做聯機應用,與此同時,備份系統可利用copy卷進行備份、報表生成和應用開發測試等工作。大大縮短了應用系統因備份等原因OFFLINE離線的時間,工作示意如圖所示。
無論是生產、測試、災難恢復,還是數據倉庫應用,該系統件套件都能提供業務數據影像拷貝的生成和管理維護,使客戶以不同的方式更好、更充分的利用業務數據,獲得更大的增值效益。基於數據複製、保護和信息共享而設計的複製管理系統件,提供了非常強大的功能:既可以在一個數據中心內部或者不同數據中心之間實現數據複製,也可以在不同部門之間實現信息共享,快速、有效地適應業務的靈活擴展,在競爭中獲得領先優勢。它可使用戶在正常業務不受影響的情況下,實時提取當前在線業務數據。其“備份窗口”接近於零,可大大增加系統業務的連續性,為實現系統真正的7×24運轉提供了保證。
具體使用快照時,存儲管理員可以有三種形式,即冷快照拷貝、暖快照拷貝和熱快照拷貝。
冷快照拷貝:進行冷快照拷貝是保證系統可以被完全恢復的最安全的方式。在進行任何大的配置變化或維護過程之前和之後,一般都需要進行冷拷貝,以保證完全的恢復原狀(rollback)。冷拷貝還可以與克隆技術相結合複製整個伺服器系統,以實現各種目的,如擴展、製作生產系統的複本供測試/開發之用以及向二層存儲遷移。
暖快照拷貝:暖快照拷貝利用伺服器的掛起功能。當執行掛起行動時,程序計數器被停止,所有的活動內存都被保存在引導硬碟所在的文件系統中的一個臨時文件(.vmss文件)中,並且暫停伺服器應用。在這個時間點上,複製整個伺服器(包括內存內容文件和所有的LUN以及相關的活動文件系統)的快照拷貝。在這個拷貝中,機器和所有的數據將被凍結在完成掛起操作時的處理點上。
當快照操作完成時,伺服器可以被重新啟動,在掛起行動開始的點上恢復運行。應用程序和伺服器過程將從同一時間點上恢復運行。從表面上看,就好像在快照活動期間按下了一個暫停鍵一樣。對於伺服器的網路客戶機看來,就好像網路服務暫時中斷了一下一樣。對於適度載入的伺服器來說,這段時間通常在30到120秒。
熱快照拷貝:在這種狀態下,發生的所有的寫操作都立即應用在一個虛硬碟上,以保持文件系統的高度的一致性。伺服器提供讓持續的虛擬硬碟處於熱備份模式的工具,以通過添加REDO日誌文件在硬碟子系統層上複製快照拷貝。
一旦REDO日誌被激活,複製包含伺服器文件系統的LUN的快照是安全的。在快照操作完成後,可以發出另一個命令,這個命令將REDO日誌處理提交給下面的虛擬硬碟文件。當提交活動完成時,所有的日誌項都將被應用,REDO文件將被刪除。在執行這個操作過程中,會出現處理速度的略微下降,不過所有的操作將繼續執行。但是,在多數情況下,快照進程幾乎是瞬間完成的,REDO的創建和提交之間的時間非常短。
熱快照操作過程從表面上看基本上察覺不到伺服器速度下降。在最差情況下,它看起來就是網路擁塞或超載的CPU可能造成的一般伺服器速度下降。在最好情況下,不會出現可察覺到的影響。
在你考慮快照技術的時候,你可以向你的廠商詢問下面這幾個問題:
1. 你使用的是什麼技術?寫入複製、寫入重定向、黑魔法?
2. 如果一個卷有5個快照,我的性能會受到什麼影響?如果有20個呢?
3. 我是否需要提前將一些空間設置為快照專用?
4. 第一個快照需要多少空間?
5. 你的快照技術的塊粒度是多少?
最大的需要考慮的差異點就是底層技術。當一個應用程序使用最普通的快照技術,即寫入複製,向磁碟寫入數據的時候,快照提供商的產品將把正在被覆蓋寫入的塊的內容複製到快照文件中的一個新地方。寫入複製要求針對當前塊內容的一個寫入-到-讀取執行3個I/O(輸入/輸出),寫入新數據和將舊數據寫入快照。至於採用寫入重定向技術的產品,比如NetApp的任意位置寫入文件布局(WAFL)和ZFS,它們是將新數據寫入到磁碟上的自由空間,並更新文件系統或卷、元數據,使其包含當前數據集中的新塊和快照中的舊塊。
鏡像、快照和複製是三種不同的功能
鏡像是通過從一個I/O創建兩個I/O來複制數據。磁碟鏡像通過OS或卷管理軟體在主系統上創建。磁碟鏡像是依靠平台和本地連接特性的本地選件。鏡像可用於DAS和SAN並且大多數NAS支持它。存儲轉髮式鏡像磁碟子系統(例如,EMC SRDF, IBM PPRC, Hitachi TrueCopy)主要用於SAN產品。
複製是通過網路傳輸數據對象(文件、表格等)。傳輸是從系統到系統進行的,而不是在存儲設備之間或子系統之間進行。複製一般也針對具體平台,因此用於Windows 2000複製產品的運行方式與Unix平台存在很大不同。