

# Solucionar problemas de snapshots do EBS baseados no Windows VSS
<a name="application-consistent-snapshots-troubleshooting"></a>

Antes de tentar qualquer outra etapa de solução de problemas, recomendamos verificar os detalhes a seguir.
+ Certifique-se de que você atendeu a todos os [Pré-requisitos para criar snapshots do EBS baseados no VSS do Windows](application-consistent-snapshots-prereqs.md).
+ Verifique se está usando o [Suporte para a versão do SO Windows](vss-comps-history.md#windows-version-support) mais recente do pacote `AwsVssComponents` para o sistema operacional. O problema observado pode ter sido resolvido em versões mais recentes.

**Topics**
+ [Verificar arquivos de log](#general-log-files)
+ [Coletar logs de diagnóstico adicionais](#vss-ts-collect-diagnostic-logs)
+ [Usar o VSS em instâncias com proxy configurado](#general-using-vss-with-proxy)
+ [Erro: A conexão do tubo de descongelamento expirou, erro no descongelamento, tempo limite aguardando o VSS Freeze, ou outros erros de tempo limite](#error-thaw)
+ [Erro: não é possível invocar o método. A invocação de métodos é compatível somente em tipos principais nesse modo de linguagem.](#error-invoke)

## Verificar arquivos de log
<a name="general-log-files"></a>

Caso tenha problemas ou receba mensagens de erro ao criar snapshots do EBS baseados no VSS, será possível visualizar a saída do comando no console do Systems Manager.

Para documentos do Systems Manager que criam snapshots do VSS, você pode definir o parâmetro `CollectDiagnosticLogs` como "`True`" no runtime. Quando o parâmetro `CollectDiagnosticLogs` é definido como "`True`", o VSS coleta logs adicionais para ajudar na depuração. Para obter mais informações, consulte [Coletar logs de diagnóstico adicionais](#vss-ts-collect-diagnostic-logs).

Se você coletar logs de diagnóstico, o documento do Systems Manager os armazena em sua instância no seguinte local: `C:\ProgramData\Amazon\AwsVss\Logs\timestamp.zip`. O padrão do parâmetro `CollectDiagnosticLogs` é "`False`".

**nota**  
Para obter ajuda adicional com a depuração, você pode enviar o arquivo `.zip` para o Suporte.

Os seguintes logs adicionais estarão disponíveis, se você coletar ou não logs de diagnóstico:
+ `%ProgramData%\Amazon\SSM\InstanceData\InstanceID\document\orchestration\SSMCommandID\awsrunPowerShellScript\runPowerShellScript\stdout`
+ `%ProgramData%\Amazon\SSM\InstanceData\InstanceID\document\orchestration\SSMCommandID\awsrunPowerShellScript\runPowerShellScript\stderr`

Também é possível abrir a aplicação do Windows Event Viewer (Visualizador de Eventos) e escolher **Windows Logs** (Logs do Windows), **Application** (Aplicação) para visualizar registros adicionais. Para ver eventos especificamente do provedor VSS do EC2 do Windows e do Volume Shadow Copy Service (Serviço de Cópia de Sombra de Volume), filtre por **Source** (Origem) nos termos **Ec2VssSoftwareProvider** **VSS**e.

Se estiver usando o Systems Manager com endpoints da VPC e houver falha na ação da API [send-command](https://docs.aws.amazon.com/cli/latest/reference/ssm/send-command.html) do Systems Manager (**Run Command** no console), verifique se configurou corretamente o endpoint a seguir: **com.amazonaws.*region*.ec2**. 

Sem o endpoint do Amazon EC2 definido, ocorre falha na chamada para enumerar os volumes anexados do EBS, o que causa a falha do comando do Systems Manager. Para obter mais informações sobre como configurar endpoints da VPC com o Systems Manager, consulte [Criar um endpoint da nuvem privada virtual](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-create-vpc.html) no *Manual do usuário do AWS Systems Manager*.

## Coletar logs de diagnóstico adicionais
<a name="vss-ts-collect-diagnostic-logs"></a>

Para coletar logs de diagnóstico adicionais ao usar o comando send do Systems Manager para executar o documento de snapshot do VSS, defina o parâmetro de entrada `CollectDiagnosticLogs` como "`True`" no runtime. Recomendamos que você defina esse parâmetro como "`True`" ao solucionar problemas.

Para ver um exemplo da linha de comando, selecione uma das guias a seguir.

------
#### [ AWS CLI ]

O exemplo a seguir executa o documento `AWSEC2-CreateVssSnapshot` do Systems Manager na AWS CLI:

```
aws ssm send-command \ 
    --document-name "AWSEC2-CreateVssSnapshot" \
    --instance-ids "i-1234567890abcdef0" \
    --parameters '{"description":["Example - create diagnostic logs at runtime."],"tags":["Key=tag_name,Value=tag_value"],"CollectDiagnosticLogs":["True"]}'
```

------
#### [ PowerShell ]

O exemplo a seguir executa o documento `AWSEC2-CreateVssSnapshot` do Systems Manager no PowerShell:

```
Send-SSMCommand `
    -DocumentName "AWSEC2-CreateVssSnapshot" `
    -InstanceId "i-1234567890abcdef0" `
    -Parameter @{'description'='Example - create diagnostic logs at runtime.';'tags'='Key=tag_name,Value=tag_value';'CollectDiagnosticLogs'='True'}
```

------

## Usar o VSS em instâncias com proxy configurado
<a name="general-using-vss-with-proxy"></a>

Caso tenha problemas ao criar snapshots do EBS baseados no VSS em instâncias que usam um proxy para alcançar endpoints do EC2, verifique as seguintes configurações na instância:
+ Certifique-se de que o proxy esteja configurado de modo que os endpoints de serviço do EC2 na região e no IMDS da instância possam ser alcançados pelo AWS Tools for Windows PowerShell em execução como SYSTEM.
+ Para oferecer suporte ao uso do proxy WinHTTP configurado pelo sistema, certifique se de ter instalado a versão mais recente de `AwsVssComponents` na instância. Para obter mais informações sobre a configuração do proxy WinHTTP, consulte [Netsh Commands for Windows Hypertext Transfer Protocol (WINHTTP](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-r2-and-2008/cc731131(v=ws.10))) no site da Microsoft.

## Erro: A conexão do tubo de descongelamento expirou, erro no descongelamento, tempo limite aguardando o VSS Freeze, ou outros erros de tempo limite
<a name="error-thaw"></a>

O provedor VSS da EC2 Windows pode atingir o tempo limite devido a atividades ou serviços na instância impedindo que snapshots baseados no VSS prossigam em tempo hábil. O Windows VSS Framework fornece uma janela de 10 segundos não configurável durante a qual a comunicação com o sistema de arquivos é pausada. Durante esse tempo, o `AWSEC2-CreateVssSnapshot` captura seus volumes.

Os seguintes problemas podem fazer com que o provedor VSS do EC2 para Windows seja executado em limites de tempo durante um snapshot:
+ E/S excessiva para um volume
+ Capacidade de resposta lenta da API do EC2 na instância
+ Volumes fragmentados
+ Incompatibilidade com algum software antivírus
+ Problemas com um gravador de aplicação de VSS
+ Quando o Registro de Módulos estiver habilitado para um grande número de módulos do PowerShell, os scripts do PowerShell poderão ser executados com lentidão

A maioria dos problemas de tempo limite que ocorrem ao executar o documento de comando `AWSEC2-CreateVssSnapshot` está relacionada à workload na instância ser muito alta no momento do backup. As ações a seguir podem ajudá-lo a obter um snapshot bem-sucedido:
+ Tente novamente o comando `AWSEC2-CreateVssSnapshot` para ver se a tentativa do snapshot é bem-sucedida. Se a nova tentativa for bem-sucedida em alguns casos, reduzir a carga da instância poderá tornar os snapshots mais bem-sucedidos.
+ Aguarde um pouco até que a workload na instância diminua e tente novamente o comando `AWSEC2-CreateVssSnapshot`. Como alternativa, é possível tentar capturar snapshots quando a instância é conhecida por estar sob baixa tensão.
+ Tente snapshots do VSS quando o software antivírus no sistema estiver desativado. Se isso resolver o problema, consulte as instruções do software antivírus e configure-o para permitir snapshots do VSS.
+ Se houver um grande volume de chamadas de API do Amazon EC2 na sua conta na mesma região em que estiver executando um snapshot, o controle de utilização da API pode atrasar as operações de snapshot. Para reduzir o impacto do controle de utilização, use o pacote `AwsVssComponents` mais recente. Esse pacote utiliza a ação da API `CreateSnapshots` do EC2 para reduzir o número de ações mutantes, como a criação e a marcação de snapshots por volume.
+ Se você tiver vários scripts de comando `AWSEC2-CreateVssSnapshot` em execução ao mesmo tempo, siga as etapas a seguir para reduzir os problemas de simultaneidade.
  + Considere agendar snapshots durante períodos de menor atividade da API.
  + Se você usar o **Run Command** no console do Systems Manager (ou o **SendCommand** na API) para executar o script de comando, poderá usar os controles de taxa do Systems Manager para reduzir a simultaneidade.

    Você também pode usar os controles de taxa do Systems Manager para reduzir a simultaneidade em serviços como o AWS Backup, que usam o Systems Manager para executar o script de comando.
+ Execute o comando `vssadmin list writers` em um shell e veja se ele relata quaisquer erros no campo **Last error** (Último erro) para qualquer gravador no sistema. Se algum gravador relatar um erro de **tempo esgotado**, tente novamente capturar snapshots quando a instância estiver com menos carga.
+ Ao usar tipos de instância menores, como *t2 \$1 t3 \$1 t3a*.nano ou *t2 \$1 t3 \$1 t3a*.micro, podem ocorrer tempos limite devido a restrições de memória e CPU. As ações a seguir podem ajudar a reduzir os problemas de tempo limite.
  + Tente fechar aplicações que consomem muita memória ou CPU antes de tirar snapshots.
  + Tente tirar snapshots durante períodos de menor atividade das instâncias.

## Erro: não é possível invocar o método. A invocação de métodos é compatível somente em tipos principais nesse modo de linguagem.
<a name="error-invoke"></a>

Você receberá esse erro quando o modo de idioma da PowerShell não estiver definido como `FullLanguage`. O documento do SSM `AWSEC2-CreateVssSnapshot` exige que o PowerShell seja configurado no modo `FullLanguage`.

Para verificar o modo de idioma, execute o comando a seguir na instância em um console da PowerShell:

```
$ExecutionContext.SessionState.LanguageMode
```

Para obter mais informações sobre os modos de idioma, consulte [about\$1Language\$1Modes](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_language_modes) na documentação da Microsoft.