Compartir a través de


Procedimientos recomendados para ejecutar Linux en Hyper-V

En este artículo se incluye una lista de recomendaciones para ejecutar máquinas virtuales Linux en Hyper-V.

Ajuste de sistemas de archivos Linux en archivos VHDX dinámicos

Algunos sistemas de archivos Linux pueden consumir gran cantidad de espacio en disco real, incluso cuando el sistema de archivos está prácticamente vacío. Para reducir la cantidad de uso real de espacio en disco de los archivos VHDX dinámicos, tenga en cuenta las siguientes recomendaciones:

  • Al crear el VHDX, utilice un tamaño de bloque de 1 MB (en lugar del valor predeterminado de 32 MB) en PowerShell, por ejemplo:
PS > New-VHD -Path C:\MyVHDs\test.vhdx -SizeBytes 127GB -Dynamic -BlockSizeBytes 1MB
  • El formato ext4 se prefiere a ext3 porque es más eficiente cuando se usa con archivos VHDX dinámicos.

  • Al crear el sistema de archivos, especifique que el número de grupos es 4096, por ejemplo:

# mkfs.ext4 -G 4096 /dev/sdX1

Tiempo de espera del menú Grub en máquinas virtuales de segunda generación

Dado que el hardware antiguo fue eliminado de la emulación en las máquinas virtuales de generación 2, el tiempo de espera del menú grub es demasiado corto para que se pueda mostrar, cargando inmediatamente la entrada predeterminada. Hasta que grub se fija para usar el temporizador compatible con EFI, modifique /boot/grub/grub.conf, /etc/default/grub, o equivalente a tener "timeout=100000" en lugar del valor predeterminado "timeout=5".

Arranque PXE en las máquinas virtuales de segunda generación

Dado que el temporizador PIT no está presente en las máquinas virtuales de generación 2, las conexiones de red al servidor TFTP PXE se terminan e impiden que el cargador de arranque lea la configuración de Grub y cargue un núcleo desde el servidor.

En RHEL 6.x, se puede usar el cargador de arranque EFI de Grub v0.97 heredado, en lugar de grub2 como se describe aquí: https://access.redhat.com/documentation/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/s1-netboot-pxe-config-efi.html

En las distribuciones de Linux distintas de RHEL 6.x, se pueden seguir pasos similares para configurar Grub v0.97 para cargar kernels de Linux desde un servidor PXE.

Además, en RHEL/CentOS 6.6, la entrada de teclado y ratón no funciona con el kernel preinstalado, lo que impide especificar opciones de instalación en el menú. Para poder elegir las opciones de instalación se debe configurar una consola serie.

  • En el archivo efidefault del servidor PXE, agregue el siguiente parámetro del kernel "console=ttyS1"

  • En la máquina virtual de Hyper-V, configure un puerto COM mediante este cmdlet de PowerShell:

Set-VMComPort -VMName <Name> -Number 2 -Path \\.\pipe\dbg1

Especificar un archivo kickstart en el kernel también evitaría la necesidad de la entrada del teclado y el mouse durante la instalación.

Uso de direcciones MAC estáticas con clústeres de conmutación por error

Las máquinas virtuales Linux implementadas mediante clústeres de conmutación por error deben configurarse con una dirección de control de acceso a medios estáticos (MAC) para cada adaptador de red virtual. En algunas versiones de Linux, la configuración de red se puede perder después de la conmutación por error, ya que se asigna una nueva dirección MAC al adaptador de red virtual. Para evitar perder la configuración de red, asegúrese de que cada adaptador de red virtual tenga una dirección MAC estática. Para configurar la dirección MAC, edite la configuración de la máquina virtual en el Administrador de Hyper-V o en el complemento Administrador de clústeres de conmutación por error.

Usar adaptadores de red específicos de Hyper-V, no el heredado

Configure y use el adaptador Ethernet virtual, que es una tarjeta de red específica de Hyper-V con un rendimiento mejorado. Si tanto el adaptador de red heredado como el específico de Hyper-V están conectados a una máquina virtual, los nombres de red de la salida de ifconfig -a pueden mostrar valores aleatorios como _tmp12000801310. Para evitar este problema, si usa adaptadores específicos de Hyper-V en una máquina virtual Linux quite todos los adaptadores de red heredados.

Uso noop/none del programador de E/S para mejorar el rendimiento de E/S del disco

El kernel de Linux ofrece dos conjuntos de programadores de E/S de disco para reordenar las solicitudes. Un conjunto es para el subsistema "blk" anterior y un conjunto es para el subsistema "blk-mq" más reciente. En cualquier caso, con los discos de estado sólido actuales, se recomienda usar un programador que pase las decisiones de programación al hipervisor de Hyper-V subyacente. En el caso de los kernels de Linux que usan el subsistema "blk", es el programador "noop". En el caso de los kernels de Linux que usan el subsistema "blk-mq", este es el programador "none".

En un disco determinado, los programadores disponibles se pueden ver en esta ubicación del sistema de archivos: /sys/class/block/<diskname>/queue/scheduler, y el programador seleccionado aparece entre corchetes. Para cambiar el programador, escriba en esta ubicación del sistema de archivos. El cambio se debe agregar a un script de inicialización para conservarse entre reinicios. Para más información, consulte la documentación de la distribución de Linux.

NUMA

Las versiones de kernel de Linux inferiores a la versión 2.6.37 no admiten NUMA en Hyper-V con tamaños de VM más grandes. Este problema afecta principalmente a las distribuciones anteriores que usan el kernel Red Hat 2.6.32 de canal de subida, y se ha corregido en Red Hat Enterprise Linux (RHEL) 6.6 (kernel-2.6.32-504). Los sistemas que ejecutan kernels personalizados cuyas versiones son anteriores a la versión 2.6.37, o bien kernels basados en RHEL cuyas versiones son anteriores a la versión 2.6.32-504, deben establecer el parámetro de inicio numa=off en la línea de comandos de kernel en grub.conf. Para más información, consulte Red Hat KB 436883.

Reserva de más memoria para kdump

Si el kernel de captura de volcados termina con un aviso importante en el arranque, reserve más memoria para el kernel. Por ejemplo, cambie el parámetro crashkernel=384M-:128M a crashkernel=384M-:256M en el archivo de configuración de Grub de Ubuntu.

La reducción de VHDX o la expansión de los archivos VHD y VHDX puede provocar tablas de particiones GPT erróneas

Hyper-V permite reducir archivos de disco virtual (VHDX) sin tener en cuenta las estructuras de datos de las particiones, volúmenes o del sistema de archivos que puedan existir en el disco. Si el VHDX se reduce a donde llega el final del VHDX antes del final de una partición, los datos se pierden, esa partición puede dañarse o se devuelven datos no válidos cuando se lee la partición.

Tras cambiar el tamaño de un VHD o VHDX, los administradores deben usar una utilidad como fdisk o parted para actualizar las estructuras de las particiones, de los volúmenes o del sistema de archivos para reflejar el cambio en el tamaño del disco. Reducir o expandir el tamaño de un VHD o VHDX que tiene una tabla de particiones GUID (GPT) provoca una advertencia cuando se usa una herramienta de administración de particiones para comprobar el diseño de la partición y se advierte al administrador para corregir los encabezados GPT primero y secundario. Este paso manual se puede realizar de forma segura sin pérdida de datos.