Por Nicolás Bardier, Cloud admin en Pyxis
Esta es una selección de buenas prácticas para despliegue y operación de máquinas virtuales basadas en hipervisores VMware vSphere. También aplica para VMware vCloud Director.
Resumen
- -Instalar VMware Tools
- -Usar controladora de discos Paravirtual
- -Usar interfaces de red VMXNET3
- -No usar los snapshots como respaldos a largo plazo
- -Una VM por vAPP
- -No sobredimensionar CPU, RAM ni disco
- -Evitar crear discos ‘grandes’
¿Existen buenas prácticas específicas para mi aplicación?
VMware mantiene una lista de documentos de buenas prácticas específicas para algunas aplicaciones, (buscar aquí). Siempre viene bien revisar las buenas prácticas específicas antes de empezar, pero en mi opinión las buenas prácticas definidas aquí suelen valer para cualquier aplicación a desplegar.
Sistema operativo invitado
¡Instale las VMware Tools!
Hay mucho por ganar por tener instaladas las VMware Tools.
-Proporciona soporte mejorado para hardware virtualizado optimizado para interactuar con vSphere (VMXNET3, controladora paravirtual, ballooning, etc).
-Provee de datos al hipervisor sobre la máquina virtual (VM) que son útiles para el diagnóstico de una incidente.
- Por ejemplo, direcciones IP y hostname de la máquina virtual
-Se pueden hacer múltiples integraciones a nivel de vSphere teniendo VMware Tools, por ejemplo, se puede configurar el heartbeat de HA teniendo en cuenta el estado de las VMware Tools.
La mayoría de los sistemas operativos de propósito general lo soportan (Windows, Linux basado en RedHat, Linux basado en Debian, etc), y el esfuerzo de instalar VMware Tools suele ser mínimo.
-Evitar tener discos virtuales de más de 1TB.
-A nivel de administración de plataforma, tener máquinas virtuales tan grandes dificulta tareas de mantenimiento de espacio, backups y recuperaciones de máquinas virtuales.
-Si de todas formas es necesaria esa cantidad de espacio, considerar usar tecnologías a nivel de sistema invitado, como LVM para Linux.
-Si, 1TB es un valor ‘arbitrario’, pero representa el tamaño de un disco virtual lo suficientemente grande como para no poder cumplir con el recovery time objective (RTO) del servicio, y/o no poder cumplir con otros SLA del servicio debido a performance y capacidad del storage asociado al mismo.
-Use la controladora de discos Paravirtual. Controladora recomendada por VMware, y que mejor maneja los recursos de IO y CPU.
RAM y CPU
-No asigne a la máquina virtual más RAM o CPU de lo estrictamente necesario para su carga de trabajo.
-Es fácil agregar recursos a una VM. Incluso en caliente, usando CPU o RAM HotAdd, pero quitarle recursos suele requerir un apagado de la máquina virtual o realizar cambios de configuración a nivel de las aplicaciones instaladas en la máquina virtual.
-Agregar más recursos de CPU de lo necesario puede ser contraproducente para la performance de esa máquina virtual y de todas las máquinas virtuales asociadas al host ESXi desde donde se ejecuta la máquina virtual.
-Asignar a una máquina virtual más RAM o CPU que un nodo NUMA físico afecta negativamente la performance de la máquina virtual.
Recursos de red
-Usar interfaces de red tipo VMXNET3.
-Tiene integración nativa con vSphere y es el recomendado por VMware.
-vSphere tiene un límite por defecto de hasta 10 NICs por máquina virtual. Esto hay que tenerlo en cuenta sobre todo en el caso de desplegar firewalls virtuales.
Operación de la máquina virtual
-¡Los snapshots (instantáneas) no son backups de largo plazo!
-Hacer un snapshot previo a una maniobra a nivel de sistema operativo invitado.
-Eliminar snapshots cuando:
-Han pasado varios días desde que se validó que un cambio o una maniobra en el sistema operativo de la máquina virtual. La cantidad de días es variable según las características del negocio, pero habitualmente 7 días es suficiente.
-El snapshot supera un tamaño predefinido. Depende de las características del hardware virtual, pero en nuestra experiencia con hardware empresarial 10GB es suficiente.
-Se genera una alarma de espacio a nivel del datastore donde está alojada la máquina virtual.
-Eliminar los snapshots en un horario de baja carga para la máquina virtual, respecto a su carga habitual.
-Especialmente importante, si la máquina virtual tiene una base de datos, si es posible, apagar la máquina virtual previo a eliminar el snapshot y consolidarlo
-Si usa vAPPs (por ejemplo, en vCloud Director), tener una sola máquina virtual por cada vAPP
-Si se usa una solución de respaldo de máquinas virtuales, es posible que la solución respalde y restaure a nivel de vAPP, por lo que para restaurar una máquina virtual puede ser necesario restaurar toda la vAPP.
-Apagar y prender una vAPP afecta a todas las máquinas virtuales dentro de la vAPP.
-En vCloud Director, la tarea de clonar una vAPP requiere clonar a todas las máquinas virtuales de la vAPP
Para terminar
Las buenas prácticas son útiles como guía para mejorar nuestra experiencia con la tecnología, pero a veces los requerimientos de negocio pautan otra cosa. En el caso de vSphere y máquinas virtuales no es diferente.
En nuestra experiencia cumplir estas buenas prácticas puede evitar incidentes relacionados con la disponibilidad y performance de las máquinas virtuales donde se aplican.