VSS (Volume Shadow copy Service, 卷映射拷貝服務),最初是在Windows Server 2003 SP1中引入的存儲技術。它通過在卷管理模塊上加入快照功能,在此基礎上就可以創(chuàng)建基于時間點(Point-In-Time)的映像(Image),從而實現(xiàn)數據的快速備份和恢復,用戶也無需害怕因無意刪除數據而造成的困擾,這就是VSS的關鍵所在。由于VSS所表現(xiàn)的優(yōu)良特性,因此在Microsfot最新的Vista操作系統(tǒng)中,也加入了該功能。
一、 VSS概述
VSS能夠讓存儲基礎設備(比如磁盤、陣列)創(chuàng)建高保真的時間點映像,就是映射拷貝(Shadow Copy)。它可以在多卷、或者單個卷上創(chuàng)建映射拷貝,同時不會影響到系統(tǒng)性能。VSS通過協(xié)調業(yè)務應用軟件、備份程序,以及存儲硬件,從而達到創(chuàng)建高保真映射拷貝的能力。它可以應用到以下領域:
A、 快速數據備份和恢復;
B、 針對制定文件的恢復;
C、 磁帶備份、測試,以及數據挖掘方面;
由于Microsoft在OS中集成了VSS技術,它將各個處理功能模塊化,并針對存儲軟硬件廠商提供相應的開發(fā)接口;開發(fā)商只需要關注自己的模塊,根據需求設計相關的應用,從而減少了整體設計的難度。就筆者了解,不少軟硬件存儲公司就采用VSS技術來設計NAS,并以此為基礎構建數據保護服務器。
二、 VSS技術原理
VSS整體框架包含了VSS核心模塊、請求者(Requestor)、寫入者(Writer),以及提供者(Provider)。各個模塊之間的關系如下圖所示:
圖-1 VSS原理圖
其中,各個模塊的具體功能如下:
A) 請求者(Requestor),其主要任務是初始化映射拷貝的創(chuàng)建;由于需要不一樣,解決的問題各不相同不同,因此可能設計不同請求者應用。例如,備份應用處理VSS的備份功能,管理應用處理映射拷貝的創(chuàng)建及使用(像WS2003和Vista本身提供的VSS管理軟件就是此類),同時可以設計其他功能應用,來處理專門的業(yè)務。對于請求者的應用,包括Windows NT備份模塊、備份軟件提供商設計的備份應用,以及存儲軟硬件提供商設計的管理應用。
B) 寫入者(Writer),其主要任務是保證數據的一致性;因為,如果在創(chuàng)建映射拷貝的過程中,應用軟件繼續(xù)往磁盤寫入數據,那么將會出現(xiàn)數據非一致性問題,從而影響該時間點映像的完整性。通過在應用寫入者模塊進行控制處理,來保證數據的一致性,同時也可以達到創(chuàng)建映射拷貝的高效性。通常,寫入者可能是Windows OS里面的各種服務模塊,像COM+、DHCP服務、Active Directory服務等,除此之外,數據庫也是常見的寫入者應用。
C) 提供者(Provider),其主要任務是創(chuàng)建映射拷貝;提供者是創(chuàng)建時間點影響的接口,它可以是基于存儲陣列(硬件模式),或者操作系統(tǒng)(軟件模式)。VSS有不同的提供者,其層次關系為:最底層是硬件提供者,中間是軟件提供者,最上面是系統(tǒng)軟件提供者。其中前面兩個提供者,是為第三方硬件或者軟件廠商提供的。
D) 卷映射拷貝服務(VSS)核心模塊,其主要任務是協(xié)調各個模塊的協(xié)作運行,并提供創(chuàng)建卷映射拷貝的方法;VSS提供了兩種創(chuàng)建映射拷貝的方法:一種是完全拷貝(Clone/Full Copy/Split Mirror),它會創(chuàng)建當前原始數據(Original Data)的全部拷貝;而另外一種就是寫時才拷貝(Copy on Write/Differential Copy),它只創(chuàng)建將要被更新的原始數據的拷貝。因此寫拷貝創(chuàng)建映射拷貝速度快,但是恢復數據時需要使用原始數據。
三、 VSS處理流程
VSS處理映射拷貝,需要協(xié)調各個模塊來完成,從而保證創(chuàng)建出高保真的拷
貝,進而實現(xiàn)數據的一致性,其具體步驟如下圖所示:
圖-2 VSS處理流程圖
A) 第一步,請求者讓VSS枚舉所在卷上的寫入者應用,并收集元數據(Metadata)。
B) 第二步,寫入者可能通過XML文件來描述其組件(Components),并定義其恢復(Restore)方法;其中,考慮到數據一致性,寫入者需要一些相關處理,比如對于數據庫應用來說,關閉所有打開的事務、回滾事務日志、以及將緩沖區(qū)中的數據寫入等操作,直到所有數據準備好之后,通知VSS可以創(chuàng)建映射拷貝了。
C) 第三步,VSS對于請求的卷,查詢是否支持映射拷貝,并由那個提供者提供;因為在請求者管理應用中,會設置卷的映射拷貝屬性以及策略等,所以需要進行查詢和判斷。
D) 第四步,請求者通知VSS,要求在該卷上創(chuàng)建映射拷貝。
E) 第五步,VSS鎖住寫入者應用,暫時不讓寫入新數據(在某些應用情況下,讀操作請求是可以允許的)。
F) 第六步,VSS讓提供者在磁盤上創(chuàng)建當前狀態(tài)的映射拷貝(創(chuàng)建映射拷貝的速度,和創(chuàng)建的方法以及提供者的實現(xiàn)相關)。
G) 第七步,創(chuàng)建映射拷貝完畢,VSS解鎖寫入者應用;然后寫入者就可以處理隊列中的寫請求,接著VSS會查詢是否這些寫請求在創(chuàng)建映射拷貝期間被保證在隊列中,如果是,則說明數據是一致的,否則說明可能數據一致性有問題,并做相應處理。
四、 VSS使用實例
4、1服務器端設置
目前,在WS 2003 SP1或者某些測試版Vista上,直接有VSS模塊。以下是筆者在一臺名為VSS-SERVER的服務器(裝WS2003)上,配置G盤的VSS。先在“我的電腦”->“G盤”->“屬性”,選擇“Shadow Copies” Tab頁,將彈出下圖所示的對話框:
圖-3 VSS服務器端設置
然后選擇卷(G盤),按“Enable按鈕”,完畢后顯示顯示效果為圖中“1,使能VSS” 注釋部分。此時可以按“Disable按鈕”禁止某個卷的VSS功能,也可以按“Settings”設置VSS的策略(Schedule)。
接著按下面的“Create Now按鈕”,就可以生成各個時間點的映射拷貝,本實例創(chuàng)建了三個映射拷貝,顯示結果如圖中“2,創(chuàng)建映射拷貝”注釋部分。當然,也可以選擇“Delete Now按鈕”刪除所選擇的映射拷貝。[!--empirenews.page--]
創(chuàng)建映射拷貝完畢,在“我的電腦”->“G盤”->“共享”,將整個G盤進行共享,并保證客戶端能夠訪問服務器。
4、2客戶端配置
為了讓客戶端能夠訪問服務器端的VSS功能,也就是Shadow Copies of Shared Folders功能,需要下載ShadowCopyClient.msi安裝包。通過該安裝包提供的服務,客戶端就可以通過共享,來訪問VSS服務器上的映射拷貝,并實現(xiàn)一部分管理操作。
安裝完畢后,在客戶端訪問\VSS-SERVER服務器,就可以看到設置了VSS的共享G盤,然后選擇“G盤”->“屬性”,選擇“Previous Versions”TAB頁,就可以查看和管理映射拷貝了,其顯示效果如下圖所示:
圖-4 VSS客戶端配置
圖中的紅框部分,就是在服務器端創(chuàng)建的三個映射拷貝。Microsoft提供的Shadow Copies of Shared Folders應用,目前包含下面三個功能。選擇“View按鈕”,可以查看選定映射拷貝的詳細信息;選擇“Copy按鈕”,則會拷貝選中的映射拷貝;而選擇“Restore按鈕”,將會用圖中紅框中選中映射拷貝,在VSS服務器上恢復到當前狀態(tài)。
五、 VSS分析和結論
5、1 VSS分析
1) 優(yōu)點
A) 加快了備份和恢復的速度?,F(xiàn)在的高性能要求,其備份窗口越來越小,更多的是期待7*24全天候服務。因此比起傳統(tǒng)的磁帶備份,以及D2D備份,VSS的快照技術在備份和恢復的速度上都有明顯的優(yōu)勢;同時減少了管理配置的復雜性,從而為企業(yè)客戶降低了TCO。
B) 提供了個別文件的備份和恢復。用戶再也不用害怕因為SHIFT + DEL這樣的無意刪除而導致的痛苦,無需因為文件的更新而采用“另存為”操作,只需簡單地要找到該文件的各個前期版本,并進行恢復就OK。
C) 易于實施到各種應用中。比如,對于不可避免的備份操作,完全可以只將映射拷貝的數據備份到磁帶介質中,從而減少備份的數據量;而對于開發(fā)設計人員來說,同一產品在設計階段會有不同的版本,因此完全可以采用制作不同版本的映射拷貝來完成。
D) 容易快速開發(fā)特定存儲產品。由于在OS中集成的VSS,同時功能模塊化;對于開發(fā)商來說,就可以根據行業(yè)需求,專注于該模塊的開發(fā),只要該模塊通過了測試和認證,很快就可以和其他模塊整合起來,將產品推向市場。
2) 缺點
A) 設置VSS容量和配置VSS策略,考慮到具體的環(huán)境和應用,需要一定的經驗才能達到較好的效果。
B) 目前Microsoft提供的缺省的管理應用,在創(chuàng)建映射拷貝時,只有時間點信息,卻不能對映射拷貝加入足夠的注釋信息,不易于區(qū)分各個映射拷貝之間的差別。
C) VSS其本質是基于“卷”的快照技術,如果將其應用到數據保護領域,和CDP (Continuous Data Protection,連續(xù)數據保護)所描述的那種基于文件的保護相比,其粒度大,因為“卷”是基于“塊”,而“文件”可以基于“字節(jié)”。
5、2 結論
筆者有幸在Microsoft最新發(fā)布的試用版Vista上測試了VSS功能,其工作一切正常,并且和WSS 2003沒有差別。據了解,由于Microsoft提供了一整套的解決方案,因此很多軟硬件存儲廠商都在加入到Microsfot設計的VSS中,并且部分廠商OEM帶VSS的操作系統(tǒng)來設計特定應用的NAS服務器,并有不錯的市場效果。盡管如此,和開源的Linux和Solaris 10 (它們也都支持和VSS類似的“卷”快照技術)相比,那就是“仁者見仁,智者見智”了。