Lo básico Póngase al día con nuestro contenido introductorio.

Consejos sobre cómo ejecutar Linux en una máquina virtual

Aquí hay algunos consejos y trucos sobre cómo sacar el máximo partido de ejecutar Linux virtualizado en un entorno VMware.

Linux ha sido prevalente al interior del centro de datos empresarial por muchos años. Servicios de LAMP, servidores web, servidores proxy, firewalls y balanceadores de carga son solo algunos de los muchos casos de uso que Linux ha estado proporcionando al sistema operativo base. Con la facilidad de uso y la documentación mejorando, muchas distribuciones de Linux han visto un aumento en su uso en la última década, más o menos. En algún lugar a lo largo de esta línea de tiempo del aumento de uso, también introdujimos la virtualización en nuestros centros de datos. Y con eso, hay algunas cosas a tener en cuenta al ejecutar Linux en una máquina virtual.

Gestión de volumen lógico

La gestión de volúmenes lógicos (LVM) es una tecnología incluida en muchas distribuciones recientes de Linux, que permite a los administradores realizar una serie de tareas en lo que respecta a la gestión de discos y particiones. Algunas de las características de striping –extender o dividir los datos a lo largo de múltiples discos– puede no ser frecuente en el mundo de la virtualización, ya que los usuarios están almacenando normalmente datos en la misma red de área de almacenamiento o almacén de datos. Con eso dicho, LVM ofrece otras funcionalidades interesantes también. Al permitir LVM, los administradores obtienen la capacidad de realizar extensiones del sistema de archivos en línea, creciendo diferentes particiones y sistemas de archivos sobre la marcha mientras se mantiene el sistema de archivos en línea y accesible. También, dependiendo de los requisitos de cumplimiento estrictos, LVM nos permite realizar instantáneas basadas en volumen para fines de respaldo y recuperación, sin invocar la funcionalidad basada en vSphere.

Mi consejo es particionar su VM con LVM si tiene una política estricta de disponibilidad en su carga de trabajo, y tomar ventaja de la funcionalidad de cambio de tamaño en línea. Si usted no necesita una gran cantidad de tiempo de actividad o no planea ejecutar particiones separadas dentro de su instalación de Linux, entonces deje LVM deshabilitado, ya que la complejidad supera con creces los beneficios.

Opciones de partición

Una instalación predeterminada de Linux generalmente solicita al usuario que simplemente use una partición para todos los archivos. Esto está bien en algunos casos, pero a medida que trata de ajustar y mejorar la seguridad y rendimiento de sus máquinas virtuales, tener particiones separadas para artículos tales como /tmp, /var, /home y /usr puede comenzar a tener sentido, especialmente si usted quiere que todas y cada una de las particiones tengan diferentes opciones de montaje. Las opciones de montaje se aplican a las particiones especificándolas en la línea correspondiente en el archivo /etc/fstab, como se muestra a continuación:

UUID=0aef28b9-3d11-4ab4-a0d4-d53d7b4d3aa4 /tmp ext4     defaults,noexec 1 2

Si tomamos como ejemplo un servidor web, uno de los casos de uso más comunes para Linux en una máquina virtual, podemos ver rápidamente cómo algunas de las opciones de montaje por "default" terminan perjudicando nuestras iniciativas de seguridad y rendimiento.

Noatime/atime/relatime: Estas son opciones de montaje que dictan cómo se manejan las marcas de tiempo en los archivos contenidos dentro de la partición. En distribuciones Linux antiguas, 'atime' era el valor por defecto, lo que significaba que el sistema operativo escribiría una marca de tiempo en los archivos de metadatos cada vez que se leyeran (sí, simplemente una lectura invoca esto). En términos de un servidor web que está sirviendo archivos al mundo durante todo el día, usted puede imaginar la sobrecarga de este proceso. Al especificar ‘noatime' en la partición que alberga los datos de su servidor web, usted es capaz de aliviar el servidor de esta sobrecarga al no actualizar el tiempo de acceso en absoluto. La opción por defecto en las distribuciones más recientes es 'relatime', trayendo lo mejor de ambos mundos y solo actualizando el tiempo de acceso si el tiempo de modificación pasa a ser nuevo.

Noexec/exec: Esto deshabilita o habilita la ejecución de archivos binarios en una partición determinada. En términos de nuestro ejemplo de servidor web, tiene perfecto sentido montar una partición /tmp con 'noexec'. De hecho, muchas guías de endurecimiento sugieren usar esta opción para mejorar la seguridad.

Los usuarios deben tener cuidado al cambiar los parámetros de tiempo de acceso. Algunas aplicaciones, como la funcionalidad relacionada con el correo, requerirán una opción de montaje 'atime' completo. En el ejemplo del servidor web, siempre y cuando las directrices de acceso y de seguridad lo permitan, monte sus datos del servidor web con 'noatime.' En términos de noexec, utilice esta opción con prudencia, ya que muchos instaladores y paquetes automatizados pueden extraer a /tmp y ejecutar desde allí. Esto es algo que puede ser fácilmente encendido y apagado, pero por lo menos especificaría 'noexec' para /tmp.

VMXNET3 y PVSCSI

Utilizar el adaptador de red y el adaptador de disco paravirtualizado VMXNET3 ha sido la recomendación por bastante tiempo al interior de una máquina virtual. En una máquina virtual basada en Windows, podemos simplemente especificar esto y los controladores se instalan automáticamente en las herramientas de VMware. Linux presenta algunos desafíos en torno a la utilización de este hardware. En primer lugar, las nuevas versiones de las distribuciones de Linux a menudo vienen con su propio controlador para el adaptador VMXNET3 y utilizarán esos drivers de forma predeterminada, incluso si se instalan las herramientas de VMware.

Las distribuciones de Linux más viejas pueden contener una versión obsoleta del controlador VMXNET3, que no podría darle el conjunto completo de características que se incluyen dentro de la versión de herramientas de VMware. El KB2020567 de VMware describe cómo habilitar ciertas funciones dentro del controlador VMXNET. Si desea instalar el controlador VMXNET3 dentro de las herramientas de VMware, puede especificar la siguiente opción durante la instalación de las herramientas de VMware:

./vmware-install.pl –clobber-kernel-modules=vmxnet3

El adaptador paravirtualizado SCSI es una gran manera de ganar un poco de rendimiento adicional en algún CPU de menor costo y por lo general se recomienda como el adaptador de elección. Asegúrese de revisar la lista de SO soportados antes de tomar esta decisión, para garantizar que su kernel o distribución está soportado por el adaptador SCSI paravirtual.

Yo aconsejo a los administradores utilizar VMXNET3 y PVSCSI, si es posible. Si está utilizando un kernel más antiguo, instale la versión VMXNET3 de VMware Tools. Si está usando un kernel más reciente, utilice el controlador nativo de Linux dentro de su distribución.

Gestión de la memoria

El sistema operativo Linux está moviendo constantemente páginas de memoria de la memoria física hacia su partición de intercambio local. Esto es así por diseño y, de hecho, VMware hace lo mismo con su funcionalidad de gestión de memoria. Pero la gestión de memoria de Linux se comporta de manera algo diferente, y moverá páginas de memoria incluso si la memoria física –que ahora es memoria virtual– está disponible. Con el fin de reducir la actividad de intercambio dentro de una máquina virtual de Linux, podemos ajustar un valor de ‘intercambio'. Un valor más alto indica más movimientos, mientras que un valor más bajo indica que a la memoria se le dejará sola con más frecuencia. Para ajustar este valor, solo añada la línea "Vm.swappiness=##" dentro de /etc/sysctl.conf y reiniciae el sistema, sustituyendo ## con su valor deseado.

Yo prefiero cambiar este valor a un número menor que el valor por defecto de 60. No hay razón para tener tanto al sistema operativo, como a vSphere gestionando su intercambio de memoria. Una vez más, realmente depende de la aplicación, pero yo normalmente establezco esto a un valor de entre 15 y 20.

Planificador I/O

Así como ESXi hace un gran trabajo con la memoria de gestión, también tiene su propia salsa especial en lo que respecta a la programación de I/O y escrituras al disco. Una vez más, el sistema operativo Linux duplica algunas de esta funcionalidades dentro de sí mismo. A partir del kernel 2.6, la mayoría de las distribuciones han estado utilizando la Completely Fair Queuing como el programador predeterminado de I/O. Los otros disponibles son NOOP, Anticipatory y Deadline. VMware explica simplemente cómo cambiar este valor y por qué usted querría hacerlo, ya que no tiene sentido programar I/O dos veces. En resumen, el programador predeterminado de I/O utilizado dentro de su kernel de Linux se puede cambiar añadiendo un switch elevador a su entrada de kernel grub.

No hay necesidad de programar dentro del sistema operativo, y luego programar una vez más en el hipervisor. Yo sugiero utilizar el planificador NOOP de I/O, ya que no hace nada para optimizar el disco I/O, lo que permite a vSphere gestionarlo todo.

Retire el hardware no utilizado y deshabilite servicios innecesarios

¿Cuántas veces ha usado ese disquete virtual dentro de sus máquinas virtuales en el último año? ¿Qué tal ese altavoz interno del PC? Si no va a utilizar esos dispositivos, entonces la respuesta simple es ponerlos en la lista negra para que no se carguen en el kernel de Linux. Los comandos para quitar un disquete son los siguientes:

echo "blacklist floppy" | tee /etc/modprobe.d/blacklist-floppy.conf

rmmod floppy

update-initramfs -u

Además, no hay necesidad de parar en el hardware no utilizado. Mientras está en ello, puede también deshabilitar cualquier consola virtual que probablemente no esté utilizando. Esto se puede hacer comentando líneas tty dentro de /etc/inittab, como se muestra a continuación.

1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6

Sugiero que se deshaga del disquete. Tenga en cuenta que también tendrá que quitar el hardware de la configuración de las máquinas virtuales, así como desactivarlo dentro del BIOS de la máquina virtual. Algunos otros servicios que puede añadir de manera segura a la lista negra incluyen la configuración de monitores raid (mptctl), pcspker, snd_pcm, snd_page_alloc, snd_timer, snd, snd_soundcore (todos tienen que ver con sonido), coretemp (monitorea la temperatura de los CPU), parport y parport_pc (puertos paralelos).

Como siempre, asegúrese de que realmente no está utilizando cualquiera de estos servicios antes de ponerlos en las listas negras. Además, yo siempre dejo un par de consolas virtuales habilitadas en caso de que pudiera usarlas, pero seis es un poco exagerado.

Estos son solo algunos elementos a tener en cuenta cuando se ejecuta Linux virtualizado en un entorno VMware. En términos de mejoras de rendimiento, el viejo dicho de "depende" aplica a todos y cada uno de ellos. Usted puede ver más aumento de rendimiento con algunos de los ajustes, y una degradación de otros. Como siempre, es una buena práctica probar alguno de estos cambios en un entorno de laboratorio antes de implementarlos en la producción. La tecnología está en constante cambio y, con ello, también las mejores prácticas.

Próximos pasos

Más de Linux en:

Diez tips de línea de comando para ahorrar tiempo en Linux

Cinco leyendas urbanas que atemorizan a los principiantes de Linux

Cinco vulnerabilidades comunes de Linux para tener en cuenta

Este artículo se actualizó por última vez en noviembre 2015

PRO+

Contenido

Encuentre más contenido PRO+ y otras ofertas exclusivas para miembros, aquí.

Guía Esencial

Guía esencial: Lo básico sobre el código abierto

Inicie la conversación

Envíenme notificaciones cuando otros miembros comenten sobre este artículo.

Enviando esta solicitud usted acepta recibir correos electrónicos de TechTarget y sus socios. Si usted reside afuera de Estados Unidos, esta dando autorización para que transfiramos y procesemos su información personal en Estados Unidos.Privacidad

Por favor cree un Nombre de usuario para poder comentar.

- ANUNCIOS POR GOOGLE

Close