剖析Vista的存儲技術—VSS

剖析Vista的存儲技術—VSS

Fisher ([email protected])

VSS (Volume Shadow copy Service, 卷映射拷貝服務),最初是在是在Windows Server 2003 SP1中引入的存儲技術。它通過在卷管理模塊上加入快照功能,在此基礎上就可以創建基於時間點(Point-In-Time)的映像(Image),從而實現數據的快速備份和恢復,用戶再也不用害怕因無意刪除數據而造成的困擾,這就是VSS的關鍵所在。由於VSS所表現的優良特性,因此在Microsfot最新的Vista操作系統中,也加入了該功能。

一、 VSS概述

VSS能夠提供存儲基礎設備(比如磁盤、陣列)創建高保真的時間點映像,就是映射拷貝(Shadow Copy)。VSS可以在多個卷、或者單個捲上創建映射拷貝,而且並不影響系統性能。VSS通過協調業務應用軟件、備份程序,以及存儲硬件,從而達到創建高保真的映射拷貝的能力。它可以應用到一下一些領域:

A、快速數據備份和恢復;

B、針對制定文件的恢復;

C、磁帶備份、測試,以及數據挖掘方面;

由於Microsoft在OS中集成了VSS技術,它將各個處理功能模塊化,並針對存儲軟硬件廠商提供相應的開發接口;開發商只需要關注自己的模塊,根據需求設計相關的應用,從而減少了整體設計的難度。就筆者瞭解,不少軟硬件存儲公司就採用VSS技術來設計NAS,並在此基礎上構建數據保護服務器。

二、 VSS技術原理

VSS整體框架包含了VSS核心模塊、請求者(Requestor)、寫入者(Writer),以及提供者(Provider)。各個模塊之間的關係如下圖所示:

clip_image002

圖-1 VSS原理圖

接下來,對各個模塊的功能做一個簡單的介紹:

A) 請求者(Requestor),其主要任務是初始化映射拷貝的創建;根據需要解決的不同問題,使用不同的請求者應用。例如,備份應用處理VSS的備份功能,管理應用處理映射拷貝的創建及使用(像WS2003和Vista本身提供的VSS管理軟件就是此類應用),而其他功能應用來處理專門的業務。對於請求者的應用,主要有Windows NT備份模塊、各家備份的獨立軟件提供商,以及各家軟硬件提供商的管理應用。

B) 寫入者(Writer),其主要任務是保證數據的一致性;如果在創建映射拷貝的過程中,有應用軟件往磁盤寫入數據,將會出現數據非一致性問題,從而導致該時間點映像的完整性。通過在應用寫入者模塊進行控制處理,來保證數據的一致性,進而提高創建映射拷貝的高效性。通常,寫入者可能是Windows OS裏面的各種服務模塊,像COM+、DHCP服務、Active Directory服務等,除此之外,數據庫也是常見的寫入者應用。

C) 提供者(Provider),其主要任務是創建映射拷貝;提供者是創建時間點影響的接口,它可以是基於存儲陣列(硬件模式),或者操作系統(軟件模式)。VSS有不同的提供者,其層次關係爲:最底層是硬件提供者,中間是軟件提供者,最上面是系統軟件提供者。其中前面兩個提供者,是爲第三方硬件或者軟件廠商提供地。

D) 卷映射拷貝服務(VSS)核心模塊,其主要任務是協調各個模塊的協作運行,並提供創建卷映射拷貝的方法;VSS提供了兩種創建映射拷貝的方法:一種是完全拷貝(Clone/Full Copy/Split Mirror),它會創建當前原始數據(Original Data)的全部拷貝;而另外一種就是寫拷貝(Copy on Write/Differential Copy),它只創建將要被更新的原始數據的拷貝。因此寫拷貝創建映射拷貝速度快,但是恢復數據時需要使用原始數據。

三、 VSS處理流程

VSS處理映射拷貝,需要協調各個模塊來完成,從而保證創建出高保真的拷貝,進而實現數據的一致性,其具體步驟如下圖所示:

clip_image004

圖-2 VSS處理流程圖

A) 第一步,請求者讓VSS枚舉所在捲上的寫入者應用,並收集他們的元數據(Metadata)。

B) 第二步,寫入者通過XML文件來描述其組件(Components),並定義其恢復(Restore)方法;其中,考慮到數據一致性,寫入者需要做一些處理,比如對於數據庫應用來說,關閉所有打開的事務、回滾事務日誌、以及將緩衝區中的數據寫入等操作,直到所有數據準備好之後,通知VSS可以創建映射拷貝了。

C) 第三步,VSS對於請求的卷,查詢是否支持映射拷貝,並由那個提供者提供;因爲需要在請求者管理應用中,設置卷的映射拷貝屬性以及策略等,所以需要進行查詢和判斷。

D) 第四步,請求者通知VSS,要求在該捲上創建映射拷貝。

E) 第五步,VSS鎖住寫入者應用,暫時不讓寫入新數據(在某些應用情況下,讀操作請求是可以允許的)。

F) 第六步,VSS讓提供者在磁盤上創建當前狀態的映射拷貝(創建映射拷貝的速度,和創建的方法以及提供者的實現相關,通常最多10s)。

G) 第七步,創建映射拷貝完畢,VSS解鎖寫入者應用;然後寫入者就可以處理隊列中的寫請求,接着VSS會查詢是否這些寫請求在創建映射拷貝期間被保證在隊列中,並做相應處理。

四、 VSS使用實例

4、1服務器端設置

目前,在WS 2003 SP1或者某些測試版Vista上,直接有VSS模塊。以下是筆者在一臺名爲VSS-SERVER的服務器(裝WS2003)上,配置G盤的VSS。先在“我的電腦”->“G盤”->“屬性”,選擇“Shadow Copies” Tab頁,將彈出下圖所示的對話框:

clip_image006

圖-3 VSS服務器端設置

然後選擇卷(G盤),按“Enable按鈕”,完畢後顯示顯示效果爲圖中“1,使能VSS” 註釋部分。此時可以按“Disable按鈕”禁止某個卷的VSS功能,也可以按“Settings”設置VSS的策略(Schedule)。

接着按下面的“Create Now按鈕”,就可以生成各個時間點的映射拷貝,本實例創建了三個映射拷貝,顯示結果如圖中“2,創建映射拷貝”註釋部分。當然,也可以選擇“Delete Now按鈕”刪除所選擇的映射拷貝。

創建映射拷貝完畢,在“我的電腦”->“G盤”->“共享”,將整個G盤進行共享,並保證客戶端能夠訪問服務器。

4、2客戶端配置

爲了讓客戶端能夠訪問服務器端的VSS功能,也就是Shadow Copies of Shared Folders功能,需要下載ShadowCopyClient.msi安裝包。通過該安裝包提供的服務,客戶端就可以通過共享,來訪問VSS服務器上的映射拷貝,並實現一部分管理操作。

安裝完畢後,在客戶端訪問\\VSS-SERVER服務器,就可以看到設置了VSS的共享G盤,然後選擇“G盤”->“屬性”,選擇“Previous Versions”TAB頁,就可以查看和管理映射拷貝了,其顯示效果如下圖所示:

clip_image008

圖-4 VSS客戶端配置

圖中的紅框部分,就是在服務器端創建的三個映射拷貝。Microsoft提供的Shadow Copies of Shared Folders應用,目前包含下面三個功能。選擇“View按鈕”,可以查看選定映射拷貝的詳細信息;選擇“Copy按鈕”,則會拷貝選中的映射拷貝;而選擇“Restore按鈕”,將會用圖中紅框中選中映射拷貝,在VSS服務器上恢復到當前狀態。

五、 VSS分析和結論

5、1 VSS分析

1) 優點

A) 加快了備份和恢復的速度。現在的高性能要求,其備份窗口越來越小,更多的是期待7*24全天候服務。因此比起傳統的磁帶備份,以及D2D備份,VSS的快照技術在備份和恢復的速度上都有明顯的優勢;同時減少了管理配置的複雜性,從而爲企業客戶降低了TCO。

B) 提供了個別文件的備份和恢復。用戶再也不用害怕因爲SHIFT + DEL這樣的無意刪除而導致的痛苦,無需因爲文件的更新而採用的“另存爲”操作,只需簡單地要找到該文件的各個前期版本,並進行恢復就OK。

C) 易於實施到各種應用中。比如,對於不可避免的備份操作,完全可以只將映射拷貝的數據備份到磁帶介質中,從而減少備份的數據量;而對於開發設計人員來說,同一產品在設計階段會有不同的版本,因此完全可以採用製作不同版本的映射拷貝來完成。

D) 容易快速開發特定存儲產品。由於在OS中集成的VSS,同時功能模塊化;對於開發商來說,就可以根據行業需求,專注於該模塊的開發,只要該模塊通過了測試和認證,很快就可以和其他模塊整合起來,將產品推向市場。

2) 缺點

A) 設置VSS容量和配置VSS策略,考慮到具體的環境和應用,需要一定的經驗才能達到較好的效果。

B) 目前Microsoft提供的缺省的管理應用,在創建映射拷貝時,只有時間點信息,卻不能對映射拷貝加入足夠的註釋信息,不易於區分各個映射拷貝之間的差別。

C) VSS其本質是基於捲開發的快照技術,如果將其應用到數據保護領域,和CDP (Continuous Data Protection,連續數據保護)所推薦的基於文件的保護相比,其粒度大,因爲卷是基於塊的,而文件可以基於字節的。

5、2 結論

筆者有幸在Microsoft最新發布的試用版Vista上測試了VSS功能,其工作一切正常,並且和WSS 2003沒有差別。據瞭解,由於Microsoft提供了一整套的解決方案,因此很多軟硬件存儲廠商都在加入到Microsfot設計的VSS中,並且部分廠商用帶VSS的OS來做特定應用的NAS服務器,並有不錯的市場效果。儘管如此,比起用開源的Linux和Solaris 10來說(它們也都只持卷級的快照),那就是“”仁者見仁,智者見智” 了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章