VMware vSphere Resources: Explicación de HotAdd/HotPlug
En un entorno VMware vSphere, los recursos provisionados pueden no ser suficientes para el nivel de rendimiento requerido cuando se tiene una aplicación potente ejecutándose en una VM. En este caso, la solución óptima es añadir más recursos de procesador y memoria a la máquina virtual.
Cuando en la máquina virtual se ejecutan aplicaciones críticas, no puede permitirse apagar la máquina virtual y enfrentarse a un tiempo de inactividad. En este caso, la función Hot Add de VMware vSphere resulta muy útil. Gracias a la flexibilidad que ofrece la virtualización de VMware, puede añadir CPU de hardware virtual y memoria RAM a una máquina virtual en ejecución. Aquí explicaremos cómo habilitar VMware Hot Add, casos de uso, configuración y limitaciones de esta función.
¿Qué es VMware Hot Add?
VMware Hot Add es una función que permite añadir dispositivos virtuales a una máquina virtual mientras ésta se está ejecutando. Por defecto, puede añadir dispositivos virtuales como un disco duro virtual (no IDE), adaptadores de red y dispositivos USB mientras una máquina virtual está encendida. VMware Hot Add permite añadir una CPU (unidad central de procesamiento) y una RAM (memoria de acceso aleatorio) virtuales sobre la marcha. Con VMware Hot Add activado, no es necesario apagar una máquina virtual para añadir dispositivos virtuales.
VMware Hot Add vs Hot Plug
Puede observar que la función CPU Hot Add a veces se denomina CPU hot plug. La misma lógica se aplica a la memoria hot add y a la memoria hot plug. Estos dos términos se refieren a lo mismo y son intercambiables.
Nota: No confunda la memoria dinámica VMware y la memoria hot add VMware porque estas funciones son diferentes. La memoria dinámica VMware es una técnica de gestión eficiente de la memoria VMware para máquinas virtuales. Este nombre no es oficial para esta función, pero los usuarios la mencionan como el análogo avanzado de la memoria dinámica de Hyper-V. Las técnicas de gestión de memoria de VMware incluyen el uso compartido transparente de páginas, la ampliación de memoria, la compresión de memoria y el intercambio de memoria.
Requisitos y limitaciones
Existen requisitos y limitaciones para añadir vCPUs (CPUs virtuales) y memoria VMware a las VMs en ejecución:
- El sistema operativo invitado (SO) debe ser compatible con la adición en caliente de dispositivos.
- La compatibilidad del hardware de la máquina virtual (versión del hardware virtual) es 7 o superior.
- VMware Tools debe estar instalado en el sistema operativo invitado.
- La tolerancia a fallos no debe estar activada para la máquina virtual.
- La máquina virtual debe estar apagada para activar la función Hot Add.
- Debe utilizarse una licencia VMware vSphere Advanced, Enterprise o Enterprise Plus. VMware vSphere Enterprise Plus admite tanto la adición en caliente de CPU como la adición en caliente de memoria. Consulte la guía de licencias de VMware para comprobar las funciones disponibles para otras ediciones y sistemas operativos invitados.
Tenga en cuenta las limitaciones de licencia del SO invitado y de las aplicaciones instaladas en la VM antes de añadir vCPUs. Es posible que tenga que comprar licencias adicionales para ejecutar el software en un mayor número de procesadores.
Los sistemas operativos invitados compatibles con Hot Add son Windows Server 2003 y posteriores, y Linux con kernel 3.8 y superiores. Las ediciones superiores de Windows Server son compatibles con la adición en caliente de CPU y memoria. Algunas ediciones inferiores de Windows Server sólo admiten la adición en caliente de memoria.
Invitado OS | Licencia/Edición | Memoria hot add | Conexión en caliente de la CPU |
Windows Server 2003 32 bits/64 bits | Estándar, Empresa | Sí | No |
Windows Server 2008 32 bits | Estándar, Empresa, Centro de datos | Sí | No |
Windows Server 2008 64 bits | Estándar, Empresa | Sí | No |
Windows Server 2008 64 bits | Centro de datos | Sí | Sí |
Windows Server 2008 R2 | Estándar, Empresa | Sí | No |
Windows Server 2008 R2 | Centro de datos | Sí | Sí |
Windows Server 2012 | Estándar, Centro de datos | Sí | Sí |
Windows Server 2012 R2 | Estándar, Centro de datos | Sí | Sí |
Windows Server 2016 | Estándar, Centro de datos | Sí | Sí |
Windows Server 2019 | Estándar, Centro de datos | Sí | Sí |
Ventajas e inconvenientes de VMware Hot Add
VMware Hot Add es una función útil en muchos casos. Sin embargo, hay que tener en cuenta que esta función no es tan útil cuando no se necesita la adición en caliente. VMware Hot Add está desactivado por defecto por diferentes razones. Averigüemos por qué.
VMware vCPU Hot Add y vNUMA
Al activar VMware Hot Add, vNUMA se desactiva automáticamente para la máquina virtual. Por defecto, vNUMA está activado para todas las máquinas virtuales que tienen 8 vCPUs o más para mejorar el rendimiento. Veamos con más detalle el concepto de NUMA y vNUMA.
¿Qué es NUMA?
NUMA (acceso no uniforme a memoria) es la arquitectura para sistemas multiprocesador que permite a las CPU compartir memoria localmente. El tiempo de acceso a la memoria por parte de una CPU depende de la ubicación de la memoria en la placa base. Cada procesador tiene prioridad para utilizar «su propia» memoria local en lugar de utilizar la memoria instalada en las ranuras cercanas a otro procesador. En otras palabras, NUMA es un método que determina cómo interactúa un procesador con los módulos de memoria de otro procesador. Los sistemas NUMA son plataformas con más de un bus de sistema en las que cada procesador puede acceder a toda la memoria de la placa base. Un procesador con memoria instalada en ranuras cercanas a este procesador se denomina nodo NUMA.
Si NUMA está desactivado o, por ejemplo, tiene dos procesadores y la memoria está instalada en las ranuras de sólo uno de ellos, es posible que se produzca una degradación del rendimiento y otros problemas de hardware. Si no dispone de módulos de memoria suficientes para llenar todas las ranuras de una placa base con dos procesadores, intente distribuir los módulos de memoria entre las ranuras del primer y segundo procesador.
NUMA ayuda a distribuir racionalmente los procesos del sistema que se ejecutan en un sistema operativo compatible con NUMA. Permite a cada proceso acceder a las zonas de memoria más cercanas a los procesadores utilizados por estos procesos.
¿Qué es vNUMA?
Virtual NUMA (vNUMA) es un método de optimización en VMware vSphere. Garantiza un rendimiento óptimo de las máquinas virtuales de gran tamaño teniendo en cuenta la topología NUMA y evitando los cuellos de botella en el ancho de banda de la memoria. Una topología física NUMA se expone a un sistema operativo invitado con vNUMA. Como resultado, la topología NUMA virtual se basa en la topología NUMA del hardware físico subyacente utilizado por el host ESXi. Las CPU virtuales de la máquina virtual pueden programar el acceso a la memoria ubicada en los mismos nodos NUMA.
vNUMA está disponible para máquinas virtuales que utilicen hardware virtual 8 o superior. Al crear una máquina virtual, puede seleccionar el número de procesadores y el número de núcleos de procesador. El número de zócalos de CPU se calcula automáticamente. Si el número de vCPUs utilizadas por una VM es mayor que el número de núcleos en cada nodo NUMA, entonces se cambia una topología vNUMA y se optimiza para su uso por un SO invitado. En este caso, el SO huésped puede utilizar varios nodos NUMA. Esta máquina virtual se denomina máquina virtual ancha o grande.
¿Qué ocurre cuando se desactiva vNUMA?
Cuando Hot Add está activado y vNUMA desactivado, una máquina virtual no es consciente de los nodos NUMA subyacentes en el host ESXi y aumenta el acceso a la memoria en nodos NUMA remotos. La programación de CPU/memoria de un SO invitado no es óptima. Como resultado, el rendimiento de la máquina virtual disminuye. La degradación del rendimiento es notable para VMs anchas con el aumento de hilos por una aplicación. Por ejemplo, si habilita Hot Add en una VM cuyo SO huésped utilizaba dos nodos NUMA, este SO huésped sólo podrá detectar un nodo NUMA después porque no se creará la topología vNUMA optimizada.
Active VMware Hot Add sólo si espera utilizar esta función durante el funcionamiento de la máquina virtual. De lo contrario, es mejor desactivar Hot Add para las máquinas virtuales que abarcan más de un nodo NUMA. Si no está seguro de necesitar añadir CPU y memoria en caliente, puede aprovisionar más recursos de CPU y memoria a la máquina virtual desde el principio.
Limitaciones de VMware Hot Add
No es posible la extracción en caliente
Cuando la función Hot Add/hot plug está activada, es imposible eliminar en caliente recursos de CPU y memoria. Después de añadir en caliente vCPU y memoria a una VM, las aplicaciones consumen estos recursos añadidos. Por eso las aplicaciones no admiten opciones como tirar de la memoria y la capacidad de la CPU que ya están en uso. Por este motivo, la única forma posible de reducir los recursos de CPU y memoria de una máquina virtual es apagarla y editar los ajustes de la máquina virtual apagada.
Limitaciones de escalabilidad de la memoria
La cantidad máxima de memoria añadida en caliente es x16 la cantidad inicial de memoria aprovisionada para la máquina virtual. Por ejemplo, si una máquina virtual tiene 4 GB de RAM, esta cantidad puede aumentarse hasta 64 GB.
También tiene una limitación en las máquinas virtuales que tienen 3 GB de RAM (exactamente 3072 MB) o menos. Es posible que aparezca un error o que el sistema operativo invitado (Linux de 64 bits y Windows de 32 bits) no pueda determinar la memoria añadida. La solución es apagar la máquina virtual, aumentar la cantidad de memoria a más de 3072 MB. A continuación, puede encender la máquina virtual y utilizar la memoria VMware Hot Add.
Cómo configurar VMware Hot Add
Existen varios métodos para habilitar VMware vCPUs Hot Add y VMware memory Hot Add. Puede utilizar la interfaz gráfica de usuario o la interfaz de usuario de línea de comandos.
Activación de Hot Add en vCenter
Para activar la opción VMware Hot Add mediante vCenter, inicie sesión en VMware vSphere Client y haga lo siguiente:
- Vaya a Hosts y Clusters.
- Seleccione la máquina virtual necesaria en el panel de navegación. La máquina virtual debe estar apagada.
- Haz clic en el icono Editar ajustes. Como alternativa, puede hacer clic con el botón derecho del ratón en el nombre de la máquina virtual y, en el menú que se abre, pulsar Editar ajustes.
Haga lo siguiente para activar la adición en caliente de CPU:
- En la ventana Editar ajustes, amplíe los ajustes de CPU.
- En la línea CPU Hot Plug, seleccione la casilla Enable CPU Hot Add.
Haga lo siguiente para activar la adición en caliente de memoria:
- En la ventana Editar ajustes, amplíe los ajustes de memoria.
- En la línea Memory Hot Plug, seleccione la casilla Enable.
- Haga clic en Aceptar para guardar los ajustes de VM y cerrar la ventana.
Ahora puede iniciar la VM y añadir en caliente vCPUs y memoria VMware a la VM.
Activación de VMware Hot Add en PowerCLI
VMware PowerCLI es la potente herramienta de línea de comandos para la gestión de VMware vSphere. Veamos cómo habilitar VMware Hot Add en PowerCLI.
- Conéctese a su vCenter o host ESXi utilizando el siguiente comando e introduciendo la Dirección IP apropiada (192.168.101.205 en este ejemplo) o el nombre de host:
Connect-VIServer 192.168.101.205
- Introduzca las credenciales cuando se le solicite.
- Lista Máquinas virtuales en el Host ESXi al que se ha conectado.
Get-VM
-
Asegúrese de que la máquina virtual para la que desea activar Hot Add está apagada.
-
Ejecute estos comandos para activar la Adición en caliente de memoria y la Adición en caliente de CPU para la Máquina virtual seleccionada.
$VM = Get-VM Windows-VM
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.memoryHotAddEnabled = $true
$spec.cpuHotAddEnabled = $true
$VM.ExtensionData.ReconfigVM_Task($spec)Donde:
Windows-VM es el nombre de la máquina virtual necesaria
$spec.memoryHotAddEnabled = $true es el comando para activar la adición en caliente de memoria
$spec.cpuHotAddEnabled = $true es el comando para activar la adición en caliente de CPU. -
Compruebe en qué Máquinas virtuales están activadas las funciones de Adición en caliente de CPU y Adición en caliente de memoria:
Get-VM | Get-View | Select Name, `
@{N="CpuHotAddEnabled";E={$_.Config.CpuHotAddEnabled}}, `
@{N="CpuHotRemoveEnabled";E={$_.Config.CpuHotRemoveEnabled}}, `
@{N="MemoryHotAddEnabled";E={$_.Config.MemoryHotAddEnabled}}
Activación de Hot Add en el archivo de configuración de una máquina virtual
Otro método para habilitar VMware Hot Add es utilizar la interfaz de línea de comandos de ESXi y editar el archivo de configuración VMX de la máquina virtual. Abra el shell de ESXi o conéctese al host ESXi mediante SSH. A continuación, ejecute los siguientes comandos en la línea de comandos para activar Hot Add:
- Vaya al directorio de la máquina virtual:
cd /vmfs/volumes/datastore10a/Windows-VM/
- Asegúrese de que la máquina virtual está apagada.
- Abra el archivo de configuración VMX de la Máquina virtual en un editor de texto:
vi Windows-VM.vmx
- Añada esta línea al archivo de configuración para activar la Adición en caliente de vCPU:
vcpu.hotadd = "TRUE"
- Añada esta línea al archivo de configuración para activar la Adición en caliente de la memoria:
mem.hotadd = "TRUE"
- Guarde el archivo de configuración VMX y salga del editor de texto.
Puede desactivar las capacidades de conexión en caliente en una máquina virtual para dispositivos como adaptadores de red, controladores de disco, etc. (que están activados por defecto).
devices.hotplug = “false”
Este ajuste no afecta a la configuración de VMware de Hotplug de CPU y Adición en caliente de memoria para la VM.
Edición de la configuración de VMX en VMware vSphere Client
También puede editar la configuración de VMX en VMware vSphere Client:
- Seleccione la VM necesaria en VMware vSphere Client.
- Apague la máquina virtual si está en funcionamiento.
- Haga clic en Editar ajustes.
- Seleccione la pestaña Opciones de V M en la ventana de ajustes de VM.
- Haga clic en Avanzado para ampliar las opciones y haga clic en Editar configuración.
- Haga clic en Añadir parámetros de configuración en la ventana Parámetros de configuración.
-
En la sección Add New Configuration Params introduzca los valores para habilitar VMware Hot Add memory y VMware vCPUs según corresponda.
Name: mem.hotadd Value: TRUE
Nombre: vcpu.hotadd Valor: TRUE - Pulsa OK para guardar los ajustes y cerrar la ventana.
Conclusión
Active VMware Hot Add sólo cuando prevea utilizar esta función para añadir procesadores virtuales y memoria a una máquina virtual en ejecución. Si habilitas VMware Hot Add pero no utilizas esta función, el rendimiento puede degradarse para VMs grandes, ya que no se utilizará la topología con múltiples nodos NUMA. Utilice la supervisión de VMware VM para supervisar el rendimiento de las máquinas virtuales y el uso de recursos en vSphere. Este enfoque le ayuda a identificar si una VM necesita que se active la función Hot Add.