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