2. 快照一旦生成,一定是記錄了某一個時間點的系統(tǒng)的完全狀態(tài)。
為什么要使用快照技術
瞬時備份:在不產(chǎn)生備份窗口的情況下,可以幫助客戶創(chuàng)建一致性的磁盤快照,每個磁盤快照都可以認為是一次對數(shù)據(jù)的全備份。從而實現(xiàn)常規(guī)備份軟件無法實現(xiàn)的分鐘級別的 RPO。
快速恢復:用戶可以依據(jù)存儲管理員的定制,定時自動創(chuàng)建快照,通過磁盤差異回退,快速回滾到指定的時間點上來。通過這種回滾在很短的時間內(nèi)可以完成。大大的提高了業(yè)務系統(tǒng)RTO的水平。
應用測試:用戶可以使用快照產(chǎn)生的虛擬硬盤的數(shù)據(jù)對新的應用或者新的操作系統(tǒng)版本進行測試,這樣可以避免對生產(chǎn)數(shù)據(jù)造成損害,也不會影響到目前正在運行的應用。
報表打印等資源消耗較大的業(yè)務的分離:用戶可以將指定時間點的快照虛擬硬盤分配給一個新的服務器,從而實現(xiàn)將報表打印等對于服務器核心業(yè)務會產(chǎn)生較大影響的剝離。使核心業(yè)務服務器運行更加平穩(wěn)有效快速的運行。
降低數(shù)據(jù)備份對于系統(tǒng)性能的影響: 通常數(shù)據(jù)備份是在業(yè)務服務器上完成的。每次發(fā)起數(shù)據(jù)備份必然對當前業(yè)務系統(tǒng)運行性能造成影響。通過快照虛擬硬盤的提取后,備份工作可以轉(zhuǎn)移到其他服務器上。從而實現(xiàn)了零備份窗口(針對應用主機),零影響的理想數(shù)據(jù)備份。
傳統(tǒng)的存儲快照技術(copy-on-write)
傳統(tǒng)的存儲快照技術以IBM Flashcopy/HDS Shadowimage等為代表,這類技術由于自動生成的能力不足,防御意外的能力比較弱,一般不用于自動備份,而是用于系統(tǒng)更新之前的一種計劃內(nèi)數(shù)據(jù)保存方式。
傳統(tǒng)存儲快照技術是基于時間點的復制,能夠在一個存儲單元中建立數(shù)據(jù)的完全卷拷貝。如果生產(chǎn)系統(tǒng)此時對某一個數(shù)據(jù)集合進行頻繁的修改,在這種情況下產(chǎn)生一個時間點一致拷貝是比較困難的。當進行快照時,快照的源卷將會被凍結(jié)幾秒鐘;當快照拷貝的位圖建立之后,源卷才可以繼續(xù)進行 I/O操作。當位圖建立后,后臺拷貝需要進行一段時間,但是在目標卷上看來,拷貝已經(jīng)完成了。
基于寫重定向的存儲快照技術 (Redirect Write)
通過寫重定向來實現(xiàn)數(shù)據(jù)快照技術主要在NETAPP公司的存儲和NAS中使用,NETAPP 稱為Snapshot,由于Snapshot只能提供只讀的卷,如果需要對快照虛擬磁盤進行寫操作,還需要配合Flexclone技術實現(xiàn)。
SnapShot是WAFL文件系統(tǒng)"任意位置寫入"功能帶來的一項突出優(yōu)勢。 一份SnapShot是文件系統(tǒng)的在線只讀拷貝。創(chuàng)建文件系統(tǒng)的一份SnapShot僅僅需要幾秒種的時間,并且除非原始文件被刪除或者更改,數(shù)據(jù)快照并不占用額外的磁盤空間。只有修改活動文件系統(tǒng)中的數(shù)據(jù)塊并寫入磁盤中新的位置時,SnapShot才會占用額外的磁盤空間。
基于首次寫入變更的存儲快照技術(Copy-On-First Write)
基于首次寫入變更的存儲快照技術是由傳統(tǒng)的Copy on write發(fā)展而來的,通過整合不同時間的不同快照,使他們之間建立關聯(lián)性,從而回避了傳統(tǒng)快照技術的在多個快照時對于性能和個數(shù)的影響。
這類技術主要是以美國飛康公司為代表的。飛康公司稱之為Timemark。飛康Timemark 是一種基于時間點的和可定制策略的存儲數(shù)據(jù)快照保護技術。Timemark可以按照客戶要求定時的周期產(chǎn)生或者按照策略進行生成,每個數(shù)據(jù)卷可達到255 個快照。由于Delta增量空間只有在數(shù)據(jù)變更的時候才會被占用,255個快照(相當于255份數(shù)據(jù)版本)只需要非常有限的空間就可以實現(xiàn)。另外,飛康近來發(fā)明了"錄像"(Journal) 技術,任何一秒鐘的數(shù)據(jù)可以迅速變成一個新的快照,使快照技術登上了一個新的高度。
快照技術的比較與選擇
傳統(tǒng)的快照技術主要是針對每個存儲資源時間點狀態(tài)的單一保護。雖然同一存儲資源也可以實現(xiàn)幾份乃至十幾份的快照,但是快照之間彼此是沒有關聯(lián)性的。正是由于這個缺陷,是當存儲管理員對同一存儲資源需要多個時間點的多份快照時,傳統(tǒng)的存儲快照技術遇到以下問題:
存儲容量問題:傳統(tǒng)快照技術通常是一份快照就需要一份磁盤空間,當客戶需要的快照數(shù)量上百個之后,產(chǎn)生數(shù)百倍的空間占用,顯然單一存儲的空間局限性問題將暴露的非常突出。同時,其價格也將變得非常昂貴。因而,一般并不用于多份數(shù)據(jù)快照。實際上,這類快照技術的快照數(shù)量本身就十分少(如8 個),也不會用于多個時間點的自動快照機制。
存儲性能問題:由于不同時間產(chǎn)生的傳統(tǒng)存儲快照之間沒有關聯(lián)性,假如需要生成多個快照,一個磁盤塊的寫入很可能向多個快照空間發(fā)出保存當前時間點原始數(shù)據(jù)的指令,例如產(chǎn)生10個快照的話,就要將一份原始數(shù)據(jù)同樣寫入10個快照區(qū)域,這樣產(chǎn)生的寫懲罰十分驚人,而且數(shù)據(jù)庫還需要產(chǎn)生短時凍結(jié),大大降低系統(tǒng)性能。舉例:一個系統(tǒng)中有12份快照,當一個數(shù)據(jù)需要寫入時,在存儲中將產(chǎn)生 13個寫操作和1個讀操作。其對存儲性能的影響根本無法被接受。
Redirect Write技術和Copy-On-First Write技術都可以在少量的空間內(nèi)實現(xiàn)高達255份快照。但是由于實現(xiàn)機理不同,所以呈現(xiàn)出不同的性能特性,有著不同的使用領域。
Redirect write的Snapshot技術在數(shù)據(jù)寫入是沒有任何性能影響,但是由于破壞了原有數(shù)據(jù)在磁盤上的連續(xù)分配,如果應用程序在數(shù)據(jù)寫入后存在大量連續(xù)讀操作(如報表業(yè)務等),則會降低讀性能,導致業(yè)務相應時間變長。此外,快照數(shù)據(jù)只能提供讀操作,不能寫入數(shù)據(jù)。對于大量業(yè)務環(huán)境并不符合要求。為了實現(xiàn)對虛擬快照磁盤的可讀寫訪問,必然要使用Flexclone技術,因此每次寫都會變成兩次寫,產(chǎn)生對寫性能的影響,并且破壞了數(shù)據(jù)在磁盤上的連續(xù)分布。因此,我們認為Redirect Write技術比較適合寫入數(shù)據(jù)量遠遠大于讀數(shù)據(jù)量的應用系統(tǒng),或者向NAS這種用來做歸檔和備份存儲產(chǎn)品。但是對于當前絕大多數(shù)讀寫比3:1到10:1 的數(shù)據(jù)中心級別的系統(tǒng)來講,可能對業(yè)務系統(tǒng)產(chǎn)生性能影響。
Copy-On-First Write對于讀操作和以前是一樣的,沒有任何影響。對于寫操作,至多可能產(chǎn)生2次寫和一次讀操作。對于讀寫比3:1到10:1的數(shù)據(jù)中心級別的系統(tǒng),通常至多產(chǎn)生5%的影響??蛻艨梢酝ㄟ^犧牲很小的性能實現(xiàn)數(shù)據(jù)安全性的極大提高。因此,Copy-On-First Write快照技術更適合在數(shù)據(jù)中心等高端系統(tǒng)中幫助客戶實現(xiàn)數(shù)據(jù)保護功能,