No se puede utilizar kdump o kexec para las máquinas virtuales de Linux en Hyper-V

Seleccione idioma Seleccione idioma
Id. de artículo: 2858695 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Síntomas

Tenga en cuenta la situación siguiente:
  • Tener un equipo basado en Windows que tenga instalada la función Hyper-V.
  • Instalar Linux en una máquina virtual de Hyper-V en el equipo.
  • Configurar kdump en la VM de Linux. Linux VM ya tiene los controladores de servicios de integración de Linux, precompilados o instalados manualmente.
Si se bloquea el equipo virtual Linux en esta situación, no se genera el archivo de volcado de memoria del núcleo de Linux como se esperaba.

Causa

Este problema se produce debido a Hyper-V no puede alojar dos conexiones simultáneas desde el mismo controlador sintética que se ejecuta dentro de una máquina virtual.

Cuando kdump está configurado en una máquina virtual de Linux que utiliza el controlador de almacenamiento de información sintéticos servicios de integración de Linux (también conocido como storvsc), el núcleo de kexec está configurado para utilizar el mismo controlador. Si se bloquea el equipo virtual Linux, el controlador de almacenamiento de información sintéticos que se hospeda en el núcleo de kexec intenta abrir una conexión con el proveedor de almacenamiento de información de Hyper-V. Sin embargo, Hyper-V no consigue establecer la nueva conexión debido a la conexión existente con el mismo controlador de almacenamiento de información en la máquina virtual de Linux se ha bloqueado. Por lo tanto, el núcleo de kexec no puede volcar la base de la máquina virtual de Linux se ha bloqueado.

Solución

Para resolver este problema, configure el kernel kexec utilizando el controlador de almacenamiento de información estándar de Linux. Esta configuración debe realizarse después de habilita la funcionalidad de kdump en una máquina virtual Linux. La idea básica es desactivar el controlador de almacenamiento de información de servicios de integración de Linux y, a continuación, habilitar al controlador de almacenamiento de información de Linux estándar dentro del núcleo de kexec mediante el parámetro prefer_ms_hyper_v en puntos estratégicos.

El parámetro prefer_ms_hyper_v se puede utilizar para controlar el comportamiento del controlador de almacenamiento de información estándar de Linux. Cuando este parámetro se establece en 1 y se ejecuta la máquina virtual de Linux en Hyper-V, el controlador de almacenamiento de información estándar de Linux se deshabilita y permite que el controlador de almacenamiento de información de servicios de integración de Linux controlar los dispositivos de almacenamiento de información. Estableciendo el parámetro prefer_ms_hyper_v en 0, el controlador de almacenamiento de información estándar de Linux puede funcionar. Dado que el controlador de almacenamiento de información estándar de Linux no requiere una conexión con Hyper-V, el núcleo de kexec puede volcar la base.

Diferentes distribuciones de Linux tienen ligeramente diferentes mecanismos para especificar el valor de prefer_ms_hyper_v. La siguiente sección describe cómo se puede establecer el parámetro para varias distribuciones más populares de Linux.

Red Hat Enterprise Linux (RHEL) 5.9

En 5.9 RHEL, tienes que pasar el parámetro prefer_ms_hyper_v a través de un argumento de línea de comandos del núcleo para el módulo de ide_core que se integra en el núcleo de RHEL 5.9. De forma predeterminada, este parámetro se inicializa a 1, y esto hace que la máquina virtual de Linux evitar el uso del módulo de ide_core si se está ejecutando en un entorno de Hyper-V. Los administradores tienen que establecer el valor del parámetro prefer_ms_hyper_v en 0 para que el controlador de ide_core esté operativo durante el proceso de inicio del núcleo de kexec. Para ello, puede cambiar el contenido de /etc/kdump.conf.

Para cambiar el contenido de /etc/kdump.conf, siga estos pasos:
  1. Ejecute el siguiente comando para configurar kdump para escribir en un directorio local:

    bloqueo/var/ruta de acceso
  2. Lista negra de los controladores de servicios de integración de Linux en /etc/kdump.conf. Esto evita que los controladores de carga en el núcleo de kexec. Para ello, ejecute el comando siguiente:

    lista negra hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
  3. Configurar el valor de tiempo de espera del disco ejecutando el comando siguiente:

    disk_timeout 100
  4. Después de las modificaciones necesarias, el archivo /etc/kdump.conf tiene el siguiente aspecto:
    bloqueo/var/ruta de acceso
    nivel de mensaje core_collector makedumpfile - c - 1 - d 31
    lista negra hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
    disk_timeout 100
  5. Modificar el contenido del archivo /etc/sysconfig/kdump como sigue:
    • Agregar o modificar la línea siguiente para incluir la prefer_ms_hyperv = 0 argumento:

      KDUMP_COMMANDLINE_APPEND = "irqpoll maxcpus = 1 ide_core.prefer_ms_hyperv=0 de reset_devices"
    • Después de las modificaciones necesarias, el archivo /etc/sysconfig/kdump tiene el siguiente aspecto:
      KDUMP_COMMANDLINE = ""

      # Esta variable nos permite anexar argumentos a la línea de comandos de kdump actual
      # Tal y como se toman de cualquier KDUMP_COMMANDLINE anterior, o desde la línea de comandos/proc /

      KDUMP_COMMANDLINE_APPEND = "irqpoll maxcpus = 1 ide_core.prefer_ms_hyperv=0 de reset_devices"

Red Hat Enterprise Linux (RHEL) 6.4

En RHEL 6.4, tienes que pasar el parámetro prefer_ms_hyper_v para el módulo del controlador ata_piix . Para ello, puede cambiar el contenido del archivo /etc/kdump.conf.

Para cambiar el contenido de /etc/kdump.conf, siga estos pasos:
  1. Configurar kdump para escribir en un directorio local:

    bloqueo/var/ruta de acceso
  2. Agregar módulos adicionales ata_piix, sr_mod, sd_mod:

    extra_modules ata_piix sr_mod sd_mod
  3. Lista negra de los controladores de servicios de integración de Linux en etc/kdump.conf. Esto impide que los controladores de carga en el núcleo de kexec:

    lista negra hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
  4. Agregue el parámetro options para pasar el parámetro para el módulo de ata_piix:

    opciones ata_piix prefer_ms_hyperv = 0
  5. Configurar el valor de tiempo de espera de disco para que no deja de responder (bloquearse):

    disk_timeout 100
  6. Después de las modificaciones necesarias, el archivo /etc/kdump.conf tiene el siguiente aspecto:
    bloqueo/var/ruta de acceso
    nivel de mensaje core_collector makedumpfile - c - 1 - d 31
    extra_modules ata_piix sr_mod sd_mod
    lista negra hv_vmbus hv_storvsc hv_utils hv_netvsc hid_hyperv
    opciones ata_piix prefer_ms_hyperv = 0
    disk_timeout 100

Ubuntu 12.04(.x)

Ubuntu 12.04 (.x), tiene que pasar el parámetro prefer_ms_hyper_v para el controlador de ata_piix . Para ello, puede cambiar el contenido del archivo /etc/init.d/kdump.

Para cambiar el contenido del archivo /etc/init.d/kdump, anexar ata_piix. prefer_ms_hyper_v = 0 a las opciones de línea de comandos de kdump:
do_start {} {
?.
?.
APPEND = "$APPEND kdump_needed maxcpus = 1 ata_piix.prefer_ms_hyperv=0 de reset_devices de irqpoll"
?
}

SUSE Linux Enterprise Server (SLES) 11 SP2(x)

En las distribuciones de SLES 11 SP2(x), tiene que pasar el parámetro prefer_ms_hyper_v para el controlador de ata_piix . Para ello, puede modificar el contenido del archivo /etc/sysconfig/kdump como sigue:

Agregar ata_piix.prefer_ms_hyper_v=0 a KDUMP_COMMANDLINE_APPEND:

KDUMP_COMMANDLINE_APPEND="ata_piix.prefer_ms_hyperv=0"

Después de las modificaciones necesarias, el archivo /etc/sysconfig/kdump tiene el siguiente aspecto:

KDUMP_COMMANDLINE_APPEND="ata_piix.prefer_ms_hyperv=0"

Más información

KDUMP debe configurarse de la manera estándar que se sugiere las distribuciones de Linux.

Los productos de otros fabricantes que analiza este artículo están fabricados por compañías independientes de Microsoft. Microsoft no otorga ninguna garantía, implícita o de otro tipo, respecto al rendimiento o confiabilidad de estos productos.

Propiedades

Id. de artículo: 2858695 - Última revisión: martes, 25 de junio de 2013 - Versión: 2.0
La información de este artículo se refiere a:
  • Microsoft Hyper-V Server 2008 R2
  • Microsoft Hyper-V Server 2008 R2 Service Pack 1
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 for Itanium-Based Systems
  • Windows Server 2008 R2 Service Pack 1
  • Windows Storage Server 2008 R2
  • Windows Storage Server 2008 R2 Essentials
  • Microsoft Hyper-V Server 2012
  • Windows Server 2012 Foundation
  • Windows Server 2012 Release Candidate
  • Windows Server 2012 Standard
  • Windows Storage Server 2012 Standard
  • Windows Storage Server 2012 Workgroup
Palabras clave: 
kbmt KB2858695 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 2858695

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com