Opções de solução de problemas e rastreamento do VSS
Resumo: Este artigo descreve como é possível implementar algumas opções de rastreamento para o Microsoft Volume Shadow Copy Service VSS. Às vezes, é necessário coletar informações de depuração na camada do VSS para solucionar problemas envolvendo a criação de snapshots. ...
Instruções
A tecnologia VSS é um componente fundamental em várias soluções de proteção de dados e facilita os recursos de backup dos sistemas Microsoft Windows. No entanto, muitos elementos podem fazer com que um snapshot do VSS falhe e pode ser útil estender a solução de problemas no componente VSS e em seus módulos.
Este artigo é baseado no VSSTrace.exe ferramenta binária que oferece várias opções para rastrear o serviço VSS no momento em que o snapshot é tentado e pode fornecer informações significativas para fins de solução de problemas.VSSTrace.exe está incluído no Microsoft Windows Software Development Kit (SDK), que pode ser baixado do Centro de Download da Microsoft: Downloads do SDK do Windows - aplicativos do Windows | Microsoft Learn
Para obter mais informações sobre VSSTrace.exeVer: Usando ferramentas de rastreamento com VSS - Win32 apps | Aprendizado da Microsoft
Depois que o SDK do Windows estiver instalado, vsstrace.exe pode ser encontrada no seguinte local.
C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64\vsstrace.exe
A sintaxe do comando a seguir é usada para redirecionar o VSSTrace Saída para um arquivo:vsstrace -o c:\Temp\VSSTrace\myTrace1.txt
No momento em que os snapshots VSS são tentados, os módulos VSS rastreados são gravados no arquivo de log para que uma análise adicional possa ser feita.
Considerações sobre o módulo VSS:
O rastreamento seletivo para módulos VSS que são considerados relevantes para solução de problemas adicionais pode ajudar a reduzir o tamanho dos dados coletados e do arquivo de rastreamento. VSSTrace permite o rastreamento de módulos específicos e nomeados, por exemplo: o próprio serviço VSS é conhecido como o coordenador, o solicitante, os gravadores VSS, etc. Se houver a dúvida de que um erro é gerado pelo solicitante ou por gravadores, restrinja o rastreamento a um módulo ou módulos específicos.
Cada módulo tem uma máscara que pode ser usada como um sinalizador na instrução para VSSTrace. A instrução a seguir, por exemplo, desativará o rastreamento para todos os módulos (-f 0) e habilitará o rastreamento para gravadores VSS:vsstrace -f 0 +WRITER -o C:\Temp\VSSTrace\myTraceWriters.txt
Quando o rastreamento é iniciado, a máscara 0x00000010 é relatado e corresponde ao indicador do módulo gravador.
Em seguida, é possível acrescentar todos os módulos seguindo a sintaxe: -f 0 +<MODULE> +<MODULE> +<MODULE> ...
Uma lista de módulos disponíveis pode ser obtida usando o seguinte comando:
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
Considerações de nível:
Há 21 níveis diferentes , com o padrão definido em 170 , o que significa que os valores de retorno de função de até módulos são registrados. O nível 255 é o máximo, mas muitos dados serão incluídos no arquivo de rastreamento se esse nível for selecionado.
O exemplo a seguir habilita o nível de rastreamento 190: Parâmetros de função Detalhado somente para o serviço 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 é então relatado como o nível de rastreamento atual para o módulo cuja máscara é 0x00000002 correspondente ao coordenador do VSS.
A descrição dos níveis disponíveis está abaixo para referência:
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
Solução manual de problemas de snapshot:
A melhor maneira seria replicar o caso de uso que aciona a situação de erro, mas, como isso nem sempre é possível, a abordagem mais simples para verificar a funcionalidade do serviço VSS e testar se a VSSTrace binário foi configurado corretamente com os parâmetros desejados é gerar um ponto de restauração sob demanda.
Aqui, um ponto de restauração é criado sob demanda, o que, por sua vez, resulta em uma criação de cópia de sombra:
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 retorna a lista das sombras disponíveis atuais e, por data e hora de criação, os pontos de restauração criados manualmente são identificados.
Agora, ativar o VSSTrace e gerar um ponto de restauração inicia um rastreamento de VSS que já pode incluir alguns dados interessantes para solução de problemas adicionais.
Na figura acima, um ponto de restauração foi criado enquanto o VSSTrace foi habilitado somente para o módulo WRITER:vsstrace -f 0 +WRITER -o C:\Temp\VSSTrace\myTraceWriters.txt
Quando o ponto de restauração era criado e o serviço VSS era invocado, as atividades relevantes do módulo WRITER eram coletadas e rastreadas conforme esperado.
Manter pontos de restauração criados manualmente não faz sentido; portanto, depois que o rastreamento é coletado, é necessário removê-los.vssadmin permite a remoção seletiva de imagens shadow copy por seus IDs:
use o seguinte comando para listar snapshots do VSS:
vssadmin list shadows
Exclua os snapshots:
vssadmin delete shadows /shadow=SNAPSHOT_GUID
Use o Visualizador de Eventos para obter códigos de erro e mensagens.
No host onde os problemas do VSS estão acontecendo, o visualizador de eventos pode ser executado por: eventvwr.msc /s
Limite a pesquisa nos Logs do Windows --> Logs do aplicativo e logs do Windows --> Sistema.
Filtrar por: VSS e VolSnap
Mensagens relacionadas ao VSS são eventualmente exibidas lá.