

# Solução de problemas em drivers PV em instâncias do Windows
<a name="pvdrivers-troubleshooting"></a>

Veja a seguir soluções para problemas que podem ser encontrados com imagens do Amazon EC2 e drivers de PV mais antigos.

**Topics**
+ [O Windows Server 2012 R2 perde a conectividade de rede e armazenamento após a reinicialização de uma instância](#server2012R2-instance-unavailable)
+ [Descarregamento de TCP](#citrix-tcp-offloading)
+ [Sincronização de horário](#citrix-time-sync)
+ [Workloads que usam mais de 20.000 IOPS de disco apresentam degradação devido a gargalos da CPU](#pvdriver-troubleshooting-cpu-bottlenecks)

## O Windows Server 2012 R2 perde a conectividade de rede e armazenamento após a reinicialização de uma instância
<a name="server2012R2-instance-unavailable"></a>

**Importante**  
Esse problema ocorre somente com AMIs disponibilizadas antes de setembro de 2014.

As Imagens de máquina da Amazon (AMIs) do Windows Server 2012 R2 disponibilizadas antes de 10 de setembro de 2014 podem perder conectividade de rede e armazenamento após a reinicialização da instância. O erro no log do sistema do Console de gerenciamento da AWS indica: "Dificuldade em detectar detalhes do driver PV para a saída do console". A perda de conectividade é causada pelo recurso Limpeza de plug and play. Esse recurso verifica e desabilita dispositivos inativos do sistema a cada 30 dias. O recurso identifica incorretamente o dispositivo de rede EC2 como inativo e o remove do sistema. Quando isso ocorre, a instância perde a conectividade de rede após uma reinicialização.

Para sistemas que você suspeita estar sendo afetados por esse problema, é possível fazer download e executar uma atualização de driver no local. Caso não seja possível executar a atualização de driver no local, é possível executar um script auxiliar. O script determina se sua instância foi afetada. Se ela tiver sido afetada, e o dispositivo de rede do Amazon EC2 não tiver sido removido, o script desabilitará a verificação da Limpeza de plug and play. Se o dispositivo de rede tiver sido removido, o script reparará o dispositivo, desabilitará a verificação do recurso Limpeza de plug and play e permitirá que sua instância seja reinicializada com a conectividade de rede habilitada.

**Topics**
+ [Escolher como corrigir problemas](#choose-fix)
+ [Método 1 – Redes aprimoradas](#plug-n-play-fix-method1)
+ [Método 2 – Configuração do Registro](#plug-n-play-fix-method2)
+ [Executar o script de correção](#plug-n-play-script)

### Escolher como corrigir problemas
<a name="choose-fix"></a>

Há dois métodos para restaurar a conectividade de rede e de armazenamento em uma instância afetada por esse problema. Escolha um dos seguintes métodos:


| Método | Pré-requisitos | Visão geral do procedimento | 
| --- | --- | --- | 
| Método 1 – Redes aprimoradas | As redes aprimoradas só estão disponíveis em uma nuvem privada virtual (VPC) que exija um tipo de instância C3. Se o servidor não usar atualmente o tipo de instância C3, altere-o temporariamente. | Você altera o tipo de instância do servidor em uma instância C3. Em seguida, as redes aprimoradas permitem a você se conectar à instância afetada e corrigir o problema. Depois de corrigir o problema, você altera a instância de volta para o tipo original. Esse método é geralmente mais rápido do que o método 2 e tem menos probabilidade de resultar em erro do usuário. Haverá cobranças adicionais pelo período de execução da instância C3. | 
| Método 2 – Configuração do Registro | Capacidade de criar ou acessar um segundo servidor. Capacidade de alterar as configurações do Registro. | Você desanexa o volume raiz da instância afetada, anexa-o a outra instância, conecta-se e faz alterações no Registro. Haverá cobranças adicionais pelo período de execução do servidor adicional. Esse método é mais lento do que o método 1, mas ele funcionou em situações nas quais o método 1 não resolveu o problema. | 

### Método 1 – Redes aprimoradas
<a name="plug-n-play-fix-method1"></a>

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instances (Instâncias)**.

1. Localize a instância afetada. Selecione a instância e escolha **Instance state** (Estado da instância) e, em seguida, escolha **Stop instance** (Interromper instância).
**Atenção**  
Quando você interrompe uma instância, os dados nos volumes de armazenamento de instância são perdidos. Para preservar esses dados, faça backup no armazenamento persistente.

1. Depois de interromper a instância, crie um backup. Selecione a instância e escolha **Actions** (Ações), **Image and templates** (Imagem e modelos) e escolha **Create image** (Criar imagem).

1. [Altere](ec2-instance-resize.md) o tipo de instância para qualquer tipo de instância C3.

1. [Inicie](Stop_Start.md) a instância.

1. Conecte-se à instância usando o Desktop Remoto e [faça download](https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/Latest/AWSPVDriver.zip) do pacote de atualização de drivers AWS PV na instância.

1. Extraia o conteúdo da pasta e execute `AWSPVDriverSetup.msi`.

   Depois de executar o MSI, a instância é reinicializada automaticamente e, em seguida, atualiza os drivers. A instância não estará disponível por até 15 minutos. 

1. Após o término da atualização e a instância passar nas duas verificações de integridade no console do Amazon EC2, conecte-se à instância usando o Remote Desktop e verifique se os novos drivers foram instalados. Em Device Manager (Gerenciador de dispositivos), em **Storage Controllers** (Controladores de armazenamento), localize **AWS PV Storage Host Adapter** (Adaptador host de armazenamento do PV). Verifique se a versão do driver é a mesma que a versão mais recente listada na tabela Histórico de versões do driver. Para obter mais informações, consulte [AWSHistórico do pacote de drivers PV](xen-drivers-overview.md#pv-driver-history).

1. Interrompa a instância e altere-a de volta para seu tipo original.

1. Inicie a instância e retome o uso normal.

### Método 2 – Configuração do Registro
<a name="plug-n-play-fix-method2"></a>

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instances (Instâncias)**.

1. Localize a instância afetada. Selecione a instância, escolha **Instance state** (Estado da instância) e, em seguida, escolha **Stop instance** (Interromper instância).
**Atenção**  
Quando você interrompe uma instância, os dados nos volumes de armazenamento de instância são perdidos. Para preservar esses dados, faça backup no armazenamento persistente.

1. Escolha **Launch instance** (Executar instâncias) e crie uma instância temporária Windows Server 2008 ou Windows Server 2012 na mesma zona de disponibilidade que a instância afetada. Não crie uma instância do Windows Server 2012 R2.
**Importante**  
Se você não criar a instância na mesma zona de disponibilidade que a instância afetada, não conseguirá associar o volume do dispositivo raiz da instância afetada à nova instância.

1. No painel de navegação, escolha **Volumes**.

1. Localize o volume do dispositivo raiz da instância afetada. Desanexe o volume e anexe o volume à instância temporária criada anteriormente. Associe-a com o nome do padrão do dispositivo (xvdf).

1. Use o Desktop Remoto para se conectar à instância temporária e use em utilitário Gerenciamento de Disco para disponibilizar o volume para uso.

1. Na instância temporária, abra a caixa de diálogo **Run (Executar)**, digite **regedit** e pressione Enter.

1. No painel de navegação do Editor de Registro, escolha **HKEY\$1Local\$1Machine** e no menu **Arquivo** escolha **Carregar Hive**.

1. Na caixa de diálogo **Carregar Hive**, navegue até *Volume afetado*\$1Windows\$1System32\$1config\$1System e digite um nome temporário na caixa de diálogo **Nome da chave**. Por exemplo, digite OldSys.

1. No painel de navegação do Editor de Registro, localize as seguintes chaves:

    **HKEY\$1LOCAL\$1MACHINE\$1*your\$1temporary\$1key\$1name*\$1ControlSet001\$1Control\$1Class\$14d36e97d-e325-11ce-bfc1-08002be10318** 

    **HKEY\$1LOCAL\$1MACHINE\$1*your\$1temporary\$1key\$1name*\$1ControlSet001\$1Control\$1Class\$14d36e96a-e325-11ce-bfc1-08002be10318** 

1. Para cada chave, clique duas vezes em **UpperFilters**, digite um valor de XENFILT e, em seguida, selecione **OK**.  
![\[Chave de Registro do volume afetado.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/troubleshooting-server2012R2-regedit.png)

1. Localize a seguinte chave:

    **HKEY\$1LOCAL\$1MACHINE\$1*your\$1temporary\$1key\$1name*\$1ControlSet001\$1Services\$1XENBUS\$1Parameters** 

1. Crie uma nova string (REG\$1SZ) com o nome ActiveDevice e o seguinte valor:

    **PCI\$1VEN\$15853&DEV\$10001&SUBSYS\$100015853&REV\$101** 

1. Localize a seguinte chave:

    **HKEY\$1LOCAL\$1MACHINE\$1*your\$1temporary\$1key\$1name*\$1ControlSet001\$1Services\$1XENBUS** 

1. Altere a **contagem** de 0 para 1.

1. Localize e exclua as seguintes chaves:

    **HKEY\$1LOCAL\$1MACHINE\$1*your\$1temporary\$1key\$1name*\$1ControlSet001\$1Services\$1xenvbd\$1StartOverride** 

    **HKEY\$1LOCAL\$1MACHINE \$1*your\$1temporary\$1key\$1name*\$1ControlSet001\$1Services\$1xenfilt\$1StartOverride** 

1. No painel de navegação do Editor de Registro, escolha a chave temporária que você criou quando abriu pela primeira vez o Editor de Registro.

1. No menu **Arquivo**, escolha **Descarregar Hive**.

1. No utilitário de Gerenciamento de Disco, escolha a unidade que você associou anteriormente, abra o menu contextual (botão direito do mouse) e escolha **Offline**.

1. No console do Amazon EC2, desanexe o volume afetado de instância temporária e reanexe-o à sua instância do Windows Server 2012 R2 com o nome de dispositivo /dev/sda1. Especifique o nome desse dispositivo para designar o volume como volume do dispositivo raiz.

1. [Inicie](Stop_Start.md) a instância.

1. Conecte-se à instância usando o Desktop Remoto e [faça download](https://s3.amazonaws.com/ec2-windows-drivers-downloads/AWSPV/Latest/AWSPVDriver.zip) do pacote de atualização de drivers AWS PV na instância.

1. Extraia o conteúdo da pasta e execute `AWSPVDriverSetup.msi`.

   Depois de executar o MSI, a instância é reinicializada automaticamente e, em seguida, atualiza os drivers. A instância não estará disponível por até 15 minutos. 

1. Após o término da atualização e a instância passar nas duas verificações de integridade no console do Amazon EC2, conecte-se à instância usando o Remote Desktop e verifique se os novos drivers foram instalados. Em Device Manager (Gerenciador de dispositivos), em **Storage Controllers** (Controladores de armazenamento), localize **AWS PV Storage Host Adapter** (Adaptador host de armazenamento do PV). Verifique se a versão do driver é a mesma que a versão mais recente listada na tabela Histórico de versões do driver. Para obter mais informações, consulte [AWSHistórico do pacote de drivers PV](xen-drivers-overview.md#pv-driver-history).

1. Exclua ou interrompa a instância temporária que você criou nesse procedimento.

### Executar o script de correção
<a name="plug-n-play-script"></a>

Caso não seja possível executar uma atualização de driver no local nem migrar para uma instância mais nova, é possível executar o script de correção para corrigir os problemas causados pela tarefa da Limpeza de plug and play.

**Para executar o script de correção**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instances (Instâncias)**.

1. Escolha a instância para a qual você deseja executar o script de correção. Escolha **Instance State** (Estado da instância) e, em seguida, escolha **Stop Instance** (Interromper instância).
**Atenção**  
Quando você interrompe uma instância, os dados nos volumes de armazenamento de instância são perdidos. Para preservar esses dados, faça backup no armazenamento persistente.

1. Depois de interromper a instância, crie um backup. Selecione a instância, escolha **Actions** (Ações), **Image and templates** (Imagem e modelos) e, em seguida, escolha **Create image** (Criar imagem).

1. Escolha **Instance state** (Estado da instância) e, em seguida, escolha **Start Instance** (Iniciar instância).

1. Conecte-se à instância usando o Desktop Remoto e, em seguida, [faça download](https://s3.amazonaws.com/ec2-downloads-windows/Scripts/RemediateDriverIssue.zip) da pasta RemediateDriverIssue.zip na instância.

1. Extraia o conteúdo da pasta.

1. Execute o script de correção de acordo com as instruções no arquivo Readme.txt. O arquivo está localizado na pasta onde você extraiu o RemediateDriverIssue.zip.

## Descarregamento de TCP
<a name="citrix-tcp-offloading"></a>

**Importante**  
Esse problema não se aplica a instâncias que executam drivers de rede AWS PV ou Intel.

Por padrão, o descarregamento TCP é habilitado para os drivers Citrix PV em AMIs do Windows. Se você encontrar erros no nível do transporte ou na transmissão de pacotes (conforme esteja visível no monitor de performance do Windows)—por exemplo, quando você estiver executando determinadas workloads do SQL—talvez seja necessário desabilitar esse recurso.

**Atenção**  
Desabilitar o descarregamento TCP pode reduzir a performance de rede de sua instância.

**Para desabilitar o descarregamento TCP para Windows Server 2012 e 2008**

1. Conecte-se à instância e faça login como administrador local.

1. Se você estiver usando o Windows Server 2012, pressione **Ctrl\$1Esc** para acessar a tela **Iniciar** e, em seguida, selecione **Painel de controle**. Se você estiver usando o Windows Server 2008, escolha **Iniciar** e selecione **Painel de controle**.

1. Escolha **Rede e Internet** e, em seguida, **Central de Rede e Compartilhamento**.

1. Selecione **Alterar configurações de adaptador**.

1. Clique com o botão direito do mouse em **Adaptador de rede Citrix PV Ethernet nº 0** e selecione **Propriedades**.  
![\[Propriedades de conexão de área local.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/citrix-local-area-conn.png)

1. Na caixa de diálogo **Propriedades de conexão de área local**, selecione **Configurar** para abrir a caixa de diálogo **Propriedades do adaptador Citrix PV Ethernet nº 0**.

1. Na guia **Avançado**, desabilite cada uma das propriedades, exceto **Valor correto da soma de verificação TCP/UDP**. Para desabilitar uma propriedade, seleciona-a em **Propriedade** e escolha **Desabilitado** em **Valor**.

1. Escolha **OK**.

1. Execute os comandos a seguir em uma janela do prompt de comando.

   ```
   netsh int ip set global taskoffload=disabled
   netsh int tcp set global chimney=disabled
   netsh int tcp set global rss=disabled
   netsh int tcp set global netdma=disabled
   ```

1. Reinicialize a instância.

## Sincronização de horário
<a name="citrix-time-sync"></a>

Antes da versão de 13/02/2013, a AMI do Windows, o agente convidado do Citrix Xen poderiam definir a hora do sistema incorretamente. Isso pode fazer com que seu locação de DHCP expire. Se você tiver problemas para se conectar à sua instância, talvez precise atualizar o agente.

Para determinar se você tem o agente convidado do Citrix Xen atualizado, verifique se a data do arquivo `C:\Program Files\Citrix\XenGuestAgent.exe` é a partir de março de 2013. Se a data nesse arquivo for anterior, atualize o serviço do agente convidado do Citrix Xen. Para obter mais informações, consulte [Atualizar o serviço de agente convidado do Citrix Xen](Upgrading_PV_drivers.md#citrix-pv-guest-agent-upgrade).

## Workloads que usam mais de 20.000 IOPS de disco apresentam degradação devido a gargalos da CPU
<a name="pvdriver-troubleshooting-cpu-bottlenecks"></a>

É possível ser afetado por esse problema se estiver usando instâncias do Windows que executam os drivers AWS PV que usam mais de 20.000 IOPS, e se você encontrar o código `0x9E: USER_MODE_HEALTH_MONITOR` de verificação de bugs.

As leituras e gravações de disco (E/S) nos drivers AWS PV ocorrem em duas fases: **Preparação de E/S** e **Conclusão de E/S**. Por padrão, a fase de preparação é executada em um único núcleo arbitrário. A fase de conclusão é executada no núcleo `0`. A quantidade de computação necessária para processar uma E/S varia de acordo com o tamanho e outras propriedades. Algumas E/S usam mais computação na fase de preparação, e outras na fase de conclusão. Quando uma instância gera mais de 20.000 IOPS, a fase de preparação ou conclusão pode resultar em um gargalo, em que a CPU na qual ela é executada está com 100% de capacidade. Se a fase de preparação ou conclusão se torna ou não um gargalo depende das propriedades de E/S usadas pela aplicação.

Começando nos drivers AWS PV 8.4.0, a carga da fase de preparação e de conclusão podem ser distribuídas por vários núcleos, eliminando gargalos. Cada aplicação usa diferentes propriedades de E/S. Portanto, a adoção de uma das configurações a seguir pode aumentar, reduzir ou não afetar a performance da aplicação. Depois de aplicar qualquer uma dessas configurações, monitore a aplicação para verificar se ela está proporcionando a performance desejada.

1. 

**Pré-requisitos**

   Antes de iniciar este procedimento de solução de problemas, verifique os seguintes pré-requisitos:
   + A instância usa drivers AWS PV versão 8.4.0 ou posterior. Para atualizar, consulte [Atualizar drivers PV em instâncias do Windows do EC2](Upgrading_PV_drivers.md).
   + Você tem acesso RDP à instância. Para conhecer as etapas para se conectar à instância baseada no Windows usando RDP, consulte [Conexão com a instância do Windows usando um cliente RDP](connect-rdp.md).
   + Você tem acesso de administrador na instância.

1. 

**Observe a carga da CPU na instância**

   É possível usar o Gerenciador de Tarefas do Windows para visualizar a carga em cada CPU, a fim de determinar possíveis gargalos na E/S do disco.

   1. Verifique se a aplicação está executando e lidando com o tráfego semelhante à workload de produção.

   1. Conecte-se à sua instância usando RDP.

   1. Clique no menu **Start** (Iniciar) na sua instância.

   1. Insira `Task Manager` no menu ** Iniciar ** para abrir o Gerenciador de Tarefas.

   1. Se o Gerenciador de tarefas mostrar a exibição Summary (Resumo), clique em **More details (Mais detalhes)** para expandir a exibição detalhada.

   1. Escolha a guia **Performance**.

   1. Selecione a ** CPU ** no painel esquerdo.

   1. Clique com o botão direito do mouse no gráfico do painel principal e selecione **Change graph to (Alterar gráfico para) ** > **Logical processors (Processadores lógicos) ** para exibir cada núcleo individual.

   1. Dependendo de quantos núcleos estiverem na instância, com o passar do tempo será possível ver linhas exibindo a carga da CPU, ou poderá ver somente um número.
      + Se forem exibidos gráficos da carga ao longo do tempo, procure CPUs onde a caixa esteja quase totalmente sombreada.
      + Se um número for exibido em cada núcleo, procure por núcleos que consistentemente mostrem 95% ou mais.

   1. Observe se o núcleo `0` ou um núcleo diferente está experimentando uma carga pesada.

1. 

**Escolha qual configuração aplicar**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/pvdrivers-troubleshooting.html)
**nota**  
Recomendamos que você não distribua a preparação de E/S sem também distribuir a conclusão de E/S (configuração `DpcRedirection` sem configuração `NotifierDistributed`) porque a fase de conclusão é sensível à sobrecarga na fase de preparação, quando a fase de preparação estiver ocorrendo em paralelo.

**Valores de chave do Registro**
   + *NotifierDistributed*

     Valor `0` ou não presente — A fase de conclusão será executada no núcleo `0`.

     Valor `1` — O driver escolhe executar a fase de conclusão, o núcleo `0` ou um núcleo adicional por disco conectado.

     Valor `2` — O driver executa a fase de conclusão em um núcleo adicional por disco conectado.
   + *DpcRedirection*

     Valor `0` ou não presente — A fase de preparação será executada em um único núcleo arbitrário.

     Valor `1` — A fase de preparação é distribuída entre vários núcleos.

   

   

**Configuração padrão**

   Aplique a configuração padrão com as versões de driver AWS PV anteriores à 8.4.0 ou se a degradação da performance ou da estabilidade for observada após a aplicação de uma das outras configurações nesta seção.

   1. Conecte-se à sua instância usando RDP.

   1. Abra um novo prompt de comando do PowerShell como um administrador.

   1. Execute os seguintes comandos para remover as chaves de registro `NotifierDistributed` e `DpcRedirection`.

      ```
      Remove-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Name NotifierDistributed
      ```

      ```
      Remove-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Name DpcRedirection
      ```

   1. Reinicie a instância.

   

   

**Permitir que o driver escolha se deseja distribuir a conclusão**

   Defina a chave de registro `NotiferDistributed` para permitir que o driver de armazenamento PV escolha se deve ou não distribuir a conclusão de E/S.

   1. Conecte-se à sua instância usando RDP.

   1. Abra um novo prompt de comando do PowerShell como um administrador.

   1. Use o comando a seguir para adicionar a chave de registro `NotiferDistributed`.

      ```
      Set-ItemProperty -Type DWORD -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Value 0x00000001 -Name NotifierDistributed
      ```

   1. Reinicie a instância.

   

   

**Distribuir a preparação e a conclusão**

   Defina as chaves de registro `NotifierDistributed` e `DpcRedirection` para sempre distribuir as fases de preparação e conclusão.

   1. Conecte-se à sua instância usando RDP.

   1. Abra um novo prompt de comando do PowerShell como um administrador.

   1. Execute os seguintes comandos para definir as chaves de registro `NotifierDistributed` e `DpcRedirection`.

      ```
      Set-ItemProperty -Type DWORD -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Value 0x00000002 -Name NotifierDistributed
      ```

      ```
      Set-ItemProperty -Type DWORD -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Value 0x00000001 -Name DpcRedirection
      ```

   1. Reinicie a instância.