Cómo solucionar problemas de controladores PV en instancias de Windows - Amazon Elastic Compute Cloud

Cómo solucionar problemas de controladores PV en instancias de Windows

A continuación, se describen las soluciones a los problemas que puedan surgir con las imágenes de Amazon EC2 y los controladores de PV anteriores.

Windows Server 2012 R2 pierde la conexión de red y almacenamiento después de volver a arrancar la instancia

importante

Este problema solo se produce con las AMI disponibles antes de septiembre de 2014.

Las imágenes de máquina de Amazon (AMI) para Windows Server 2012 R2 que se pusieron a disposición de los usuarios antes del 10 de septiembre de 2014 pueden perder la conexión de red y de almacenamiento tras reiniciar la instancia. El error del registro del sistema de la AWS Management Console indica: “Difficulty detecting PV driver details for Console Output”. La pérdida de conexión se debe a la característica Plug and Play Cleanup. Esta característica busca y deshabilita los dispositivos inactivos del sistema cada 30 días. La característica identifica incorrectamente el dispositivo de red de EC2 en estado inactivo y lo elimina del sistema. Cuando ocurre, la instancia pierde la conexión de red después de arranque.

En los sistemas que sospeche que pueden verse afectados por este problema, puede descargar y ejecutar una actualización in situ del controlador. Si no consigue llevar a cabo la actualización in situ, puede ejecutar un script ayudante. El script determina si la instancia está afectada. Si lo está, y el dispositivo de red de Amazon EC2 no se ha eliminado, el script deshabilita el análisis de Plug and Play Cleanup. Si el dispositivo de red se ha eliminado, el script repara el dispositivo, deshabilita el análisis de Plug and Play Cleanup y permite que la instancia arranque con la conexión de red habilitada.

Elegir cómo solucionar problemas

Existen dos métodos para restaurar la conexión de red y almacenamiento en una instancia que se ha visto afectada por este problema. Elija uno de los siguientes métodos:

Método Requisitos previos Información general del procedimiento
Método 1: Redes mejoradas Las redes mejoradas solo están disponibles en una nube privada virtual (VPC) que requiere un tipo de instancia C3. Si el servidor no utiliza el tipo de instancia C3, debe cambiarla temporalmente. Puede cambiar el tipo de instancia de servidor a C3. Las redes mejoradas le permiten conectarse a la instancia afectada y corregir el problema. Después de corregir el problema, cambie la instancia al tipo de instancia original de nuevo. Este método es generalmente más rápido que el método 2 y es menos probable que dé un error del usuario. Incurrirá en gastos adicionales mientras que ejecute la instancia C3.
Método 2: Configuración del Registro Capacidad para crear u obtener acceso a un servidor secundario. Capacidad para cambiar la configuración del Registro. Separe el volumen raíz de la instancia afectada, adjúntelo a una instancia diferente, conéctese y haga los cambios en el Registro. Incurrirá en gastos adicionales mientras que ejecute el servidor adicional. Este método es más lento que el 1, pero ha dado resultado en situaciones en las que el método 1 no sirvió para resolver el problema.

Método 1: Redes mejoradas

  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Instances (Instancias).

  3. Localice la instancia afectada. Selecciona la instancia, selecciona Estado de instanciay a continuación selecciona Detener instancia.

    aviso

    Cuando detiene una instancia, se borran los datos contenidos en todos los volúmenes de almacén de instancias. Para conservar los datos de los volúmenes del almacén de instancias, asegúrese de realizar una copia de seguridad de ellos en un almacenamiento persistente.

  4. Una vez que la instancia se haya detenido, cree una copia de seguridad. Selecciona la instancia, selecciona Acciones, luego selecciona Imagen y plantillas y a continuación selecciona Crear imagen.

  5. Cambie el tipo de instancia por un tipo de instancia C3.

  6. Inicie la instancia.

  7. Conéctese a la instancia mediante el Escritorio remoto y descargue el paquete de actualización de los controladores AWS PV en la instancia.

  8. Extraiga el contenido de la carpeta y ejecute AWSPVDriverSetup.msi.

    Después de ejecutar MSI, la instancia vuelve a arrancar automáticamente y actualiza los controladores. La instancia no estará disponible durante unos 15 minutos como máximo.

  9. Una vez finalizada la actualización y de que la instancia pase ambas comprobaciones de estado en la consola de Amazon EC2, conéctese a la instancia mediante el Escritorio remoto y compruebe que los nuevos controladores se han instalado. En Device Manager (Administrador de dispositivos), en Storage Controllers (Controladores de almacenamiento), localice PV Storage Host Adapter (Adaptador de host de almacenamiento de AWS). Verifique que la versión del controlador es la misma versión que la última enumerada en la tabla del historial de versiones del controlador. Para obtener más información, consulte Historial de paquetes de controladores AWS PV.

  10. Detenga la instancia y devuélvala a su tipo de instancia original.

  11. Inicie la instancia y continúe con el uso normal.

Método 2: Configuración del Registro

  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Instances (Instancias).

  3. Localice la instancia afectada. Selecciona la instancia, selecciona Estado de instancia y a continuación selecciona Detener instancia.

    aviso

    Cuando detiene una instancia, se borran los datos contenidos en todos los volúmenes de almacén de instancias. Para conservar los datos de los volúmenes del almacén de instancias, asegúrese de realizar una copia de seguridad de ellos en un almacenamiento persistente.

  4. Selecciona iniciar instancias y crea una instancia temporal de Windows Server 2008 o Windows Server 2012 en la misma zona de disponibilidad que la instancia afectada. No cree una instancia de Windows Server 2012 R2.

    importante

    Si no crea la instancia en la misma zona de disponibilidad que la instancia afectada, no podrá adjuntar el volumen raíz de la instancia afectada a la nueva instancia.

  5. En el panel de navegación, elija Volumes (Volúmenes).

  6. Localice el volumen raíz de la instancia afectada. Desasocie el volumen y asócielo a la instancia temporal que ha creado antes. Adjúntelo con el nombre de dispositivo predeterminado (xvdf).

  7. Utilice el Escritorio remoto para conectarse a la instancia temporal y, a continuación, utilice la utilidad de Administración de discos para hacer que el volumen esté disponible para su uso.

  8. En la instancia temporal, abra el cuadro de diálogo Ejecutar, escriba regedit y pulse Intro.

  9. En el panel de navegación de Registry Editor (Editor del registro), elija HKEY_LOCAL_MACHINE y en el menú File (Archivo), elija Load Hive (Cargar Hive).

  10. En el cuadro de diálogo Load Hive (Cargar Hive), desplácese a Affected Volume (Volumen afectado) \Windows\System32\config\System y escriba un nombre temporal en el cuadro de diálogo Key Name (Nombre de clave). Por ejemplo, escriba OldSys.

  11. En el panel de navegación del Editor del Registro, localice las claves siguientes:

    HKEY_LOCAL_MACHINE\su_nombre_de_clave_temporal\ControlSet001\Control\Class\4d36e97d-e325-11ce-bfc1-08002be10318

    HKEY_LOCAL_MACHINE\su_nombre_de_clave_temporal\ControlSet001\Control\Class\4d36e96a-e325-11ce-bfc1-08002be10318

  12. Para cada clave, haga doble clic en UpperFilters, escriba un valor para XENFILT y elija Aceptar.

    Clave del Registro del volumen afectado.
  13. Localice la siguiente clave:

    HKEY_LOCAL_MACHINE\su_nombre_de_clave_temporal\ControlSet001\Services\XENBUS\Parameters

  14. Cree una nueva cadena (REG_SZ) con el nombre ActiveDevice y el valor siguiente:

    PCI\VEN_5853&DEV_0001&SUBSYS_00015853&REV_01

  15. Localice la siguiente clave:

    HKEY_LOCAL_MACHINE\su_nombre_de_clave_temporal\ControlSet001\Services\XENBUS

  16. Cambie Count de 0 a 1.

  17. Localice y elimine las siguientes claves:

    HKEY_LOCAL_MACHINE\su_nombre_de_clave_temporal\ControlSet001\Services\xenvbd\StartOverride

    HKEY_LOCAL_MACHINE \su_nombre_de_clave_temporal\ControlSet001\Services\xenfilt\StartOverride

  18. En el panel de navegación del Editor del Registro, elija la clave temporal que creó cuando abrió el Editor del Registro por primera vez.

  19. En el menú Archivo, elija Descargar Hive.

  20. En la utilidad de Administración de discos, elija la unidad que adjuntó anteriormente, abra el menú contextual (clic con el botón derecho) y elija Sin conexión.

  21. En la consola de Amazon EC2, separe el volumen afectado de la instancia temporal y vuelva a adjuntarlo a la instancia de Windows Server 2012 R2 con el nombre de dispositivo /dev/sda1. Debe especificar este nombre de dispositivo para designar el volumen como volumen raíz.

  22. Inicie la instancia.

  23. Conéctese a la instancia mediante el Escritorio remoto y descargue el paquete de actualización de los controladores AWS PV en la instancia.

  24. Extraiga el contenido de la carpeta y ejecute AWSPVDriverSetup.msi.

    Después de ejecutar MSI, la instancia vuelve a arrancar automáticamente y actualiza los controladores. La instancia no estará disponible durante unos 15 minutos como máximo.

  25. Una vez finalizada la actualización y de que la instancia pase ambas comprobaciones de estado en la consola de Amazon EC2, conéctese a la instancia mediante el Escritorio remoto y compruebe que los nuevos controladores se han instalado. En Device Manager (Administrador de dispositivos), en Storage Controllers (Controladores de almacenamiento), localice PV Storage Host Adapter (Adaptador de host de almacenamiento de AWS). Verifique que la versión del controlador es la misma versión que la última enumerada en la tabla del historial de versiones del controlador. Para obtener más información, consulte Historial de paquetes de controladores AWS PV.

  26. Elimine o detenga la instancia temporal que creó en este procedimiento.

Ejecutar el script de corrección activa de errores

Si no consigue llevar a cabo la actualización in situ del controlador ni migrar a una nueva instancia, puede ejecutar el script de corrección para corregir los problemas que ha causado la tarea de Plug and Play Cleanup.

Para ejecutar el script de corrección activa de errores
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Instances (Instancias).

  3. Selecciona el nombre de la instancia para la que quieres ejecutar el script de corrección activa de errores. Selecciona Estado de instancia y a continuación selecciona Detener instancia.

    aviso

    Cuando detiene una instancia, se borran los datos contenidos en todos los volúmenes de almacén de instancias. Para conservar los datos de los volúmenes del almacén de instancias, asegúrese de realizar una copia de seguridad de ellos en un almacenamiento persistente.

  4. Una vez que la instancia se haya detenido, cree una copia de seguridad. Selecciona la instancia, selecciona Acciones, luego selecciona Imagen y plantillas y a continuación selecciona Crear imagen.

  5. Selecciona Estado de instancia y a continuación selecciona Iniciar instancia.

  6. Conéctese a la instancia mediante el Escritorio remoto y descargue la carpeta RemediateDriverIssue.zip en la instancia.

  7. Extraiga el contenido de la carpeta.

  8. Ejecute el script según las instrucciones del archivo Readme.txt. El archivo se encuentra en el carpeta en la que ha descomprimido RemediateDriverIssue.zip.

TCP Offloading

importante

Este problema no se aplica a las instancias que ejecutan los controladores de red AWS PV o Intel.

De manera predeterminada, TCP offloading está habilitado para los controladores Citrix PV en las AMI de Windows. Si encuentra algún error en el transporte o la transmisión de paquetes (visibles en el Monitor de rendimiento de Windows) —por ejemplo, cuando ejecuta determinadas cargas de SQL—, tal vez necesite deshabilitar esta característica.

aviso

Deshabilitar TCP offloading puede reducir el rendimiento de red de la instancia.

Para deshabilitar TCP offloading para Windows Server 2012 y 2008
  1. Conéctese a la instancia e inicie sesión como administrador local.

  2. Si utiliza Windows Server 2012, presione Ctrl+Esc para obtener acceso a la pantalla Inicio y, a continuación, elija Panel de control. Si utiliza Windows Server 2008, elija Inicio y seleccione Panel de control.

  3. Elija Red e Internet y, a continuación, Centro de redes y recursos compartidos.

  4. Elija Cambiar configuración del adaptador.

  5. Haga clic con el botón derecho en Citrix PV Ethernet Adapter #0 y seleccione Propiedades.

    Propiedades de conexión del área local.
  6. En el cuadro de diálogo Propiedades de conexión de área local, elija Configurar para abrir el cuadro de diálogo Propiedades de Citrix PV Ethernet Adapter #0.

  7. En la pestaña Opciones avanzadas, deshabilite todas las propiedades excepto Corregir valor de suma de comprobación de TCP/UDP. Para deshabilitar una propiedad, selecciónela en Propiedad y elija Desactivado en Valor.

  8. Seleccione OK.

  9. En la ventana del símbolo del sistema, ejecute el siguiente 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
  10. Reinicie la instancia.

Sincronización horaria

Antes de la versión 2013.02.13 Windows AMI, Citrix Xen Guest Agent podía establecer la hora del sistema incorrectamente. Esto puede hacer que caduque la concesión de DHCP. Si tiene problemas de conexión con la instancia, es posible que tenga que actualizar el agente.

Para determinar si tiene Citrix Xen guest agent actualizado, compruebe si el archivo C:\Program Files\Citrix\XenGuestAgent.exe es de marzo de 2013. Si la fecha de este archivo es anterior, actualice el servicio Citrix Xen Guest Agent. Para obtener más información, consulte Actualizar el servicio Guest Agent de Citrix Xen.

Las cargas de trabajo que aprovechan más de 20 000 IOPS de disco se degradan debido a cuellos de botella de CPU

Puede verse afectado por este problema si utiliza instancias de Windows que ejecutan controladores PV de AWS que aprovechan más de 20 000 IOPS y se presenta un código de comprobación de errores 0x9E: USER_MODE_HEALTH_MONITOR.

Las lecturas y las escrituras de disco (E/S) en los controladores de AWS PV se realizan en dos fases: Preparación de E/S y Finalización de E/S. De forma predeterminada, la fase de preparación se ejecuta en un único core arbitrario. La fase de finalización se ejecuta en el core 0. La cantidad de cálculo necesaria para procesar una E/S varía según su tamaño y otras propiedades. Algunas E/S usan más cálculo en la fase de preparación y otros en la fase de finalización. Cuando una instancia impulsa más de 20 000 IOPS, la fase de preparación o finalización puede dar lugar a un cuello de botella, en el que la CPU en la que se ejecuta tiene una capacidad del 100 %. El hecho de que la fase de preparación o finalización se convierta o no en un cuello de botella depende de las propiedades de las E/S utilizada por la aplicación.

A partir de los controladores AWS PV 8.4.0, la carga de la fase de preparación y la fase de finalización se pueden distribuir entre varios núcleos, lo que elimina los cuellos de botella. Cada aplicación utiliza diferentes propiedades de E/S. Por lo tanto, la aplicación de una de las siguientes configuraciones puede aumentar, disminuir o no afectar el rendimiento de la aplicación. Después de aplicar cualquiera de estas configuraciones, monitoree la aplicación para comprobar que cumple con el rendimiento que usted desea.

  1. Requisitos previos

    Antes de comenzar este procedimiento de solución de problemas, compruebe los siguientes requisitos previos:

  2. Observar la carga de CPU en la instancia

    Puede usar el Administrador de tareas de Windows para ver la carga en cada CPU y determinar posibles cuellos de botella en E/S del disco.

    1. Compruebe que la aplicación se está ejecutando y maneja tráfico similar a la carga de trabajo de producción.

    2. Conectarse a la instancia mediante RDP

    3. Elija el menú Start (Iniciar) en la instancia.

    4. Introduzca Task Manager en el menú Start (Iniciar) para abrir el Administrador de tareas.

    5. Si el Administrador de tareas muestra la vista de resumen, elija More details (Más detalles) para expandir la vista detallada.

    6. Seleccione la pestaña Performance (Desempeño).

    7. Seleccione CPU en el panel izquierdo.

    8. Haga clic con el botón derecho en el gráfico del panel principal y seleccione Change graph to (Cambiar gráfico a)>Logical processors (Procesadores lógicos) para mostrar cada core individual.

    9. Dependiendo de cuántos cores haya en la instancia, puede ver líneas que muestran la carga de CPU a lo largo del tiempo o que simplemente vea un número.

      • Si ve gráficos que muestran la carga a lo largo del tiempo, busque CPU donde la caja esté casi completamente sombreada.

      • Si ve un número en cada core, busque cores que muestren constantemente un 95 % o más.

    10. Tenga en cuenta si el core 0 o un core diferente presentan una carga pesada.

  3. Elegir la configuración a aplicar
    Nombre de la configuración Cuándo aplicar esta configuración Notas
    Default configuration La carga de trabajo está impulsando menos de 20 000 IOPS, u otras configuraciones no mejoraron el rendimiento ni la estabilidad.

    Para esta configuración, la E/S se produce en algunos cores, lo que puede beneficiar cargas de trabajo más pequeñas al aumentar la ubicación de la caché y reducir la conmutación de contexto.

    Allow driver to choose whether to distribute completion La carga de trabajo impulsa más de 20 000 IOPS y se observa una carga moderada o alta en el core 0. Esta configuración se recomienda para todas las instancias de Xen que utilicen PV 8.4.0 o posterior y aprovechen más de 20 000 IOPS, independientemente de que se detecten problemas o no.
    Distribute both preparation and completion La carga de trabajo está impulsando más de 20 000 IOPS, y permitir que el controlador elija la distribución no mejoró el rendimiento o un core distinto de 0 presenta una carga alta. Esta configuración permite distribuir tanto la preparación de E/S como su finalización.
    nota

    Recomendamos que no distribuya la preparación de E/S sin distribuir también la finalización de E/S (configuración DpcRedirection sin configuración NotifierDistributed) porque la fase de finalización es sensible a la sobrecarga por parte de la fase de preparación cuando la fase de preparación se está ejecutando en paralelo.

    Valores de clave del registro
    • NotifierDistributed

      Valor 0 o no presente —. La fase de finalización se ejecutará en 0.

      Valor 1 —. El controlador elige ejecutar la fase de finalización o el core 0 o un core adicional por disco conectado.

      Valor 2 —. El controlador ejecuta la fase de finalización en un core adicional por disco conectado.

    • DpcRedirection

      Valor 0 o no presente —. La fase de preparación se ejecutará en un único core arbitrario.

      Valor 1 —. La fase de preparación se distribuye entre varios cores.

    Configuración predeterminada

    Aplique la configuración predeterminada con las versiones del controlador AWS PV anteriores a la versión 8.4.0, o si se observa una degradación del rendimiento o de la estabilidad después de aplicar una de las otras configuraciones que se detallan en esta sección.

    1. Conectarse a la instancia mediante RDP

    2. Abra un nuevo símbolo del sistema de PowerShell como administrador.

    3. Ejecute los siguientes comandos para quitar las claves de registro NotifierDistributed y DpcRedirection.

      Remove-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Name NotifierDistributed
      Remove-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Name DpcRedirection
    4. Reinicie su instancia.

    Permitir al controlador elegir si desea distribuir la finalización

    Establezca la clave de registro NotiferDistributed para permitir que el controlador de almacenamiento PV elija si desea distribuir o no la finalización de E/S.

    1. Conectarse a la instancia mediante RDP

    2. Abra un nuevo símbolo del sistema de PowerShell como administrador.

    3. Ejecute el siguiente comando para establecer la clave de registro NotiferDistributed:

      Set-ItemProperty -Type DWORD -Path HKLM:\System\CurrentControlSet\Services\xenvbd\Parameters -Value 0x00000001 -Name NotifierDistributed
    4. Reinicie su instancia.

    Distribuir tanto la preparación como la finalización

    Establecer las claves de registro NotifierDistributed y DpcRedirection para distribuir siempre las fases de preparación y finalización.

    1. Conectarse a la instancia mediante RDP

    2. Abra un nuevo símbolo del sistema de PowerShell como administrador.

    3. Ejecute los siguientes comandos para establecer las claves de registro NotifierDistributed y 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
    4. Reinicie su instancia.