Solucionar problemas de snapshots do EBS baseados no Windows VSS - Amazon Elastic Compute Cloud

Solucionar problemas de snapshots do EBS baseados no Windows VSS

Antes de tentar qualquer outra etapa de solução de problemas, recomendamos verificar os detalhes a seguir.

Verificar arquivos de log

Caso tenha problemas ou receba mensagens de erro ao criar snapshots do EBS baseados no VSS, você poderá 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 ter mais informações, consulte Coletar logs de diagnóstico adicionais.

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 AWS Support.

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 VSSe.

Se estiver usando o Systems Manager com endpoints da VPC e houver falha na ação da API SendCommand do Systems Manager (Run Command no console), verifique se configurou corretamente o seguinte endpoint: 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 no Manual do usuário do AWS Systems Manager.

Coletar logs de diagnóstico adicionais

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

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) 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

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 | t3 | t3a.nano ou t2 | t3 | 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.

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_Language_Modes na documentação da Microsoft.