Опції трасування та усунення несправностей VSS
Summary: У цій статті описано, як можливо реалізувати кілька варіантів трасування для Microsoft Volume Shadow Copy Service VSS. Іноді необхідно збирати інформацію про налагодження на рівні VSS для усунення несправностей, пов'язаних із створенням знімків. ...
Instructions
Технологія VSS є фундаментальним компонентом у багатьох рішеннях із захисту даних і полегшує резервне копіювання систем Microsoft Windows. Втім, багато елементів можуть призвести до невдачі VSS-знімка, і може бути корисно розширити усунення несправностей у компоненті VSS та його модулях.
Ця стаття базується на VSSTrace.exe Бінарний інструмент, який пропонує кілька варіантів відстеження VSS-сервісу на момент спроби знімка і може надати корисну інформацію для мети усунення несправностей.VSSTrace.exe включений до комплекту Microsoft Windows Software Development Kit (SDK), який можна завантажити з Microsoft Download Center: Завантаження Windows SDK - Додатки для Windows | Microsoft Дізнатися
більше про VSSTrace.exe, див. Використання інструментів відстеження з VSS - додатки для Win32 | Microsoft Learn
Після встановлення 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 Writers:vsstrace -f 0 +WRITER -o C:\Temp\VSSTrace\myTraceWriters.txt
Коли починається відстеження, маска 0x00000010 повідомляється і відповідає прапорцю модуля Writer.
Тоді можна додати всі модулі за синтаксисом: -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 був увімкнений лише для модуля WRITER: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 Logs —> Application and Windows Logs —> System.
Фільтруйте за: VSS і VolSnap
Повідомлення, пов'язані з VSS, зрештою відображаються там.