歡迎您光臨本站 登入註冊首頁

剖析Windows系統中的VSS存儲技術

admin @ 2014-03-14 , reply:0

概述

析Windows系統中的VSS存儲技術  VSS(VolumeShadowcopyService,卷映射拷貝服務),最初是在WindowsServer2003SP1中引入的存儲技術。它通過在卷管理模塊……

剖析Windows系統中的VSS存儲技術

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

  一、 VSS概述

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

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

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

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

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

  二、 VSS技術原理

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

  其中,各個模塊的具體功能如下:

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

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

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

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

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

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

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

  G) 第七步,創建映射拷貝完畢,VSS解鎖寫入者應用;然後寫入者就可以處理隊列中的寫請求,接著VSS會查詢是否這些寫請求在創建映射拷貝期間被保證在隊列中,如果是,則說明數據是一致的,否則說明可能數據一致性有問題,並做相應處理。
四、 VSS使用實例

  4、1伺服器端設置

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


  然後選擇卷(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頁,就可以查看和管理映射拷貝了,其顯示效果如下圖所示:


  圖中的紅框部分,就是在伺服器端創建的三個映射拷貝。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中,並且部分廠商OEM帶VSS的操作系統來設計特定應用的NAS伺服器,並有不錯的市場效果。儘管如此,和開源的Linux和Solaris 10 (它們也都支持和VSS類似的「卷」快照技術)相比,那就是「仁者見仁,智者見智」了。

[admin via 研發互助社區 ] 剖析Windows系統中的VSS存儲技術已經有5309次圍觀

http://cocdig.com/docs/show-post-132.html