VSS 追蹤與疑難解答選項
摘要: 本文介紹如何為卷影複製服務 VSS 實現一些Microsoft跟蹤選項。有時需要在 VSS 層收集調試資訊,以解決涉及創建快照的問題。
說明
VSS 技術是許多資料保護解決方案的基本元件,可促進 Microsoft Windows 系統的備份功能。但是,許多元素可能會使 VSS 快照失敗,擴展 VSS 元件及其模組的故障排除可能會很有用。
本文根據 VSSTrace.exe 二進位工具,提供多個選項,可用於在嘗試快照時跟蹤 VSS 服務,並可能為故障診斷目的提供有意義的資訊。VSSTrace.exe 包含在 Microsoft Windows 軟體開發工具包 (SDK) 中,可從 Microsoft下載中心下載:Windows SDK 下載 - Windows 應用程式 |Microsoft Learn
如需以下項目的詳細資訊: VSSTrace.exe,請參閱:將跟蹤工具與 VSS 配合使用 - Win32 應用 |Microsoft學習
安裝 Windows SDK 後, vsstrace.exe 可以在以下位置找到。
C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64\vsstrace.exe
以下命令語法用於重定向 VSSTrace 輸出到檔案:vsstrace -o c:\Temp\VSSTrace\myTrace1.txt
在嘗試 VSS 快照時,跟蹤的 VSS 模組將寫入日誌檔,以便進行進一步分析。
VSS 模組考量:
對被認為與進一步疑難解答相關的 VSS 模組進行選擇性跟蹤有助於減小收集的數據和跟蹤檔的大小。 VSSTrace 允許跟蹤特定模組和命名模組,例如:VSS 服務本身稱為協調器、請求者、VSS 編寫器等。如果懷疑錯誤是由請求者或編寫器生成的,請將跟蹤限制為一個或多個特定模組。
每個模組都有一個掩碼,可用作 VSSTrace 語句中的標誌。例如,以下語句將禁用對所有模組 (-f 0) 的跟蹤,並啟用對 VSS 編寫器的跟蹤:vsstrace -f 0 +WRITER -o C:\Temp\VSSTrace\myTraceWriters.txt
當跟蹤開始時,遮罩 0x00000010 的報告並對應於編寫器模組標誌。
然後可以按照語法附加所有模組: -f 0 +<MODULE> +<MODULE> +<MODULE> ...
可以使用以下命令取得可用模組的清單:
vsstrace -help modules Available modules: Module : Flag : Default : Description ------------:--------------:---------:---------------------------------------------- EXCEPT : 0x00000001 : ON : C++ exception handling COORD : 0x00000002 : ON : VSS Coordinator service SWPRV : 0x00000004 : ON : System Provider service BUCOMP : 0x00000008 : ON : Requester and backup metadata processing WRITER : 0x00000010 : ON : Writer infrastructure and VSS hosted writers VSSAPI : 0x00000020 : ON : Miscellaneous VSSAPI exported routines HWDIAG : 0x00000040 : ON : Hardware Provider diagnostics ADMIN : 0x00000080 : ON : Command line utilities VSSUI : 0x00000100 : ON : Shadow Copies for Shared Folders UI TEST : 0x00000200 : ON : Internal test infrastructure (unused) IOCTL : 0x00000400 : ON : IOCTL and FSCTL operations GEN : 0x00000800 : ON : General purpose utilities (noisy) WRXML : 0x00001000 : OFF : Writer metadata processing (noisy) VSSXML : 0x00002000 : OFF : Metadata processing base classes (noisy) FSSPROV : 0x00004000 : OFF : File Server Shadow Copy Provider FSSAGENT : 0x00008000 : OFF : File Server Shadow Copy Agent FSSMD : 0x00010000 : OFF : File Server Shadow Copy Metadata
等級考量:
有 21 個不同的級別 ,預設設置為 170 ,這意味著最多記錄模組函數返回值。級別 255 是最大值,但如果選擇此級別,則跟蹤檔中包含大量數據。
以下範例啟用追蹤等級 190: 僅 VSS 服務的功能參數詳細資料:
vsstrace -f 0 +COORD -l 190 -o C:\Temp\VSSTrace\myTraceVSSService190.txt
C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64>vsstrace -f 0 +COORD -l 190 -o C:\Temp\VSSTrace\myTraceVSSService190.txt
Session started. Enabling provider...
Enabling provider {9138500e-3648-4edb-aa4c-859e9f7b7c38}on level 190 and flags 0x00000002 ...
Real-time tracing now in progress. Press Ctrl-C to stop tracing...
Tracing stopped.
Total Events Processed 0
Start Time 0 (0x0000000000000000)
End Time 0 (0x0000000000000000)
Elapsed Time 0 sec
+-------------------------------------------------------------------------------------+
|EventCount EventName EventType Guid |
+-------------------------------------------------------------------------------------+
+-------------------------------------------------------------------------------------+
然後將 190 報告為掩碼為 0x00000002 對應於 VSS 協調器。
可用等級的說明如下,可供參考:
Available levels: 000 : None 020 : Fatal Errors 030 : Unhandled Exception 040 : Error 050 : Assertion 060 : Warning 080 : Exception Handling 100 : Event Log Activity 120 : General Information 140 : Code flow 160 : Function enter/exit 170 : Function return values (Default level) 180 : Function Parameters 190 : Function Parameters Verbose 200 : Verbose Info Level 1 210 : Verbose Info Level 2 220 : Verbose Info Level 3 230 : Fast Code Level 1 240 : Fast Code Level 2 250 : Fast Code Level 3 255 : All
手動快照故障診斷:
最好的方法是複製觸發錯誤情況的用例,但由於這可能並不總是可行的,因此使用最簡單的方法來檢查 VSS 服務功能並測試 VSSTrace 二進位檔已正確設定,且需要的參數是按需產生還原點。
此處會依需求建立還原點,進而建立陰影複製:
C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64>vssadmin list shadows
Contents of shadow copy set ID: {41167b4f-2da1-47cf-a9d6-235adf1e29df}
Contained 1 shadow copies at creation time: 08/05/2019 18:12:12
Shadow Copy ID: {09144331-79a6-4f34-9994-7ea22a72fbbd}
Original Volume: (C:)\\?\Volume{49ec4df8-2a9b-4f9a-8fa8-c9fe8e10943b}\
Shadow Copy Volume: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy9
Originating Machine: XXXXXXXXXXXXXX.corp.emc.com
Service Machine: XXXXXXXXXXXXXX.corp.emc.com
Provider: 'Microsoft Software Shadow Copy provider 1.0'
Type: ClientAccessibleWriters
Attributes: Persistent, Client-accessible, No auto release, Differential, Auto recovered
vssadmin 返回當前可用陰影的清單,並按創建日期和時間標識手動創建的還原點。
現在,啟用 VSSTrace 並生成還原點啟動 VSS 跟蹤,該跟蹤可能已包含一些感興趣的數據,以便進一步進行故障排除。
在上圖中,在 VSSTrace 僅針對寫入器模組啟用:vsstrace -f 0 +WRITER -o C:\Temp\VSSTrace\myTraceWriters.txt
創建還原點並調用 VSS 服務時,將按預期收集和跟蹤相關的 WRITER 模組活動。
保留手動創建的還原點沒有任何意義,因此在收集跟蹤后,必須刪除它們。vssadmin 允許依 ID 選擇性地移除捲影複本:
使用下列命令列出 VSS 快照:
vssadmin list shadows
刪除快照:
vssadmin delete shadows /shadow=SNAPSHOT_GUID
使用事件查看器獲取錯誤代碼和消息。
在發生 VSS 問題的主機中,事件檢視器可由下列人員執行: eventvwr.msc /s
將搜尋限制在 Windows 記錄 (> 應用程式) 和 Windows 記錄 (> 系統) 內。
篩選依據:VSS 和 VolSnap
與 VSS 相關的訊息最終會顯示於此處。