Recursos de VMware vSphere: explicación de HotAdd/HotPlug
En un entorno VMware vSphere, es posible que los recursos asignados no sean suficientes para alcanzar el nivel de rendimiento requerido cuando se ejecuta una aplicación potente en una máquina virtual. En este caso, la solución óptima consiste en añadir más recursos de procesador y memoria a la máquina virtual.
Cuando se ejecutan aplicaciones críticas en la máquina virtual, no es posible apagarla y correr el riesgo de sufrir un tiempo de inactividad. Para este escenario, resulta muy útil la función « Hot Add » de VMware vSphere. Gracias a la flexibilidad que ofrece la virtualización de VMware, es posible añadir CPU y memoria RAM de hardware virtual a una máquina virtual en ejecución. A continuación explicaremos cómo habilitar « VMware Hot Add», los usos prácticos, la configuración y las 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 esta está ejecutándose. De forma predeterminada, se pueden añadir dispositivos virtuales como un disco duro virtual (no IDE), adaptadores de red y dispositivos USB mientras la máquina virtual está encendida. VMware Hot Add permite añadir una CPU virtual (central processing unit) y memoria RAM (random access memory) sobre la marcha. Con VMware Hot Add habilitado, no es necesario apagar una máquina virtual para añadir dispositivos virtuales.
VMware Hot Add vs Hot Plug
Se 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 hay que confundir la memoria dinámica de VMware con la memoria VMware hot add , ya que se trata de funciones diferentes. La memoria dinámica de VMware es una técnica para la gestión eficiente de la memoria de VMware en máquinas virtuales. Este nombre no es oficial para esta función, pero los usuarios lo mencionan como el equivalente 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, el «ballooning» de memoria, la compresión de memoria y el intercambio de memoria.
Requisitos y limitaciones
Existen requisitos y limitaciones para añadir vCPU (CPU virtuales) y memoria de VMware a máquinas virtuales en ejecución:
- El sistema operativo invitado (SO) debe admitir la Adición en caliente de dispositivos.
- La compatibilidad de hardware de la máquina virtual (versión de hardware virtual) debe ser 7 o superior.
- {15} debe estar instalado en el SO invitado.
Fault Toleranceno debe estar habilitado para la máquina virtual.- La máquina virtual debe estar apagada para habilitar la
Hot Addfunción. - Se debe utilizar una licencia de
VMware vSphere Advanced,EnterpriseoEnterprise Plus. VMware vSphereEnterprise Plusadmite tantoCPU hot addcomo memoriahot add. Consulte la Guía de licencias de VMware para comprobar la funcionalidad disponible para otras ediciones y SO invitados.
Tenga en cuenta la restricciones de las licencias del sistema operativo invitado y las aplicaciones instaladas en la máquina virtual antes de añadir vCPU. Es posible que tenga que adquirir 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 versiones posteriores, así como Linux con kernel 3.8 y versiones posteriores. Las ediciones superiores de Windows Server admiten tanto CPU como memoria hot add. Algunas ediciones inferiores de Windows Server solo admiten memoria hot add.
| SO invitado | Licencia/Edición | Adición de memoria en caliente | CPU hotplug |
| Windows Server 2003 de 32 bits/64 bits | Standard, Enterprise |
Sí | No |
| Windows Server 2008 de 32 bits | Standard, Enterprise, Datacenter |
Sí | No |
| Windows Server 2008 de 64 bits | Standard, Enterprise |
Sí | No |
| Windows Server 2008 de 64-bit | Datacenter |
Sí | Sí |
| Windows Server 2008 R2 | Standard, Enterprise |
Sí | No |
| Windows Server 2008 R2 | Datacenter |
Sí | Sí |
| Windows Server 2012 | Standard, Datacenter |
Sí | Sí |
| Windows Server 2012 R2 | Standard, Datacenter |
Sí | Sí |
| Windows Server 2016 | Standard, Datacenter |
Sí | Sí |
| Windows Server 2019 | Standard, Datacenter |
Sí | Sí |
VMware Hot Add Ventajas e inconvenientes
VMware Hot Add es una función útil en muchos casos. Sin embargo, hay que tener en cuenta que el uso de esta función presenta inconvenientes cuando la adición en caliente no es realmente necesaria. VMware Hot Add está desactivada de forma predeterminada por diversos motivos. Veamos por qué.
VMware vCPU Hot Add y vNUMA
Al habilitar VMware Hot Add, vNUMA se desactiva automáticamente para la máquina virtual. De forma predeterminada, vNUMA está habilitada para todas las máquinas virtuales que tengan 8 vCPU o más con el fin de mejorar el rendimiento. Analicemos más detenidamente los conceptos de NUMA y vNUMA.
¿Qué es NUMA?
NUMA (non-uniform memory access) es la arquitectura de los sistemas multiprocesador que permite a las CPU compartir memoria de forma local. El tiempo que tarda una CPU en acceder a la memoria depende de la ubicación de esta 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. NUMA son plataformas con más de un bus del 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 él se denomina NUMA node. 
NUMA Si está desactivado o, por ejemplo, tienes dos procesadores y la memoria está instalada únicamente en las ranuras de uno de ellos, es posible que se produzca una disminución del rendimiento y otros problemas de hardware. Si no dispones de suficientes módulos de memoria para ocupar todas las ranuras de una placa base con dos procesadores, intenta distribuir los módulos de memoria entre las ranuras del primer y el segundo procesador. ayuda a que los procesos del sistema que se ejecutan en un sistema operativo compatible con se distribuyan de forma racional. Permite que cada proceso acceda a las áreas de memoria más cercanas a los procesadores utilizados por dichos procesos. ¿Qué es ? es un método de optimización de VMware vSphere. Garantiza que las máquinas virtuales de gran tamaño funcionen de forma óptima teniendo en cuenta la topología y evitando cuellos de botella en el ancho de banda de la memoria. La topología física se expone al sistema operativo invitado mediante . Como resultado, la topología virtual se basa en la topología 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. 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 vCPU utilizadas por una máquina virtual es superior al número de núcleos de cada nodo, la topología se modifica y optimiza para su uso por parte del sistema operativo invitado. ¿Qué ocurre cuando está desactivado? Cuando está activado y está desactivado, una máquina virtual no detecta los nodos subyacentes del host ESXi y aumenta el acceso a la memoria en los nodos remotos . La programación de CPU/memoria del sistema operativo invitado no es óptima. Como resultado, el rendimiento de la máquina virtual se ve degradado. La disminución del rendimiento es notable en máquinas virtuales amplias con un número creciente de subprocesos por parte de una aplicación. Por ejemplo, si habilita en una máquina virtual cuyo sistema operativo invitado utilizaba dos nodos, este sistema operativo invitado solo podrá detectar un nodo después de ese momento, ya que no se crea la topología optimizada . Habilite solo si prevé utilizar esta función durante el funcionamiento de la máquina virtual. De lo contrario, es mejor desactivar para las máquinas virtuales que abarquen más de un nodo . Si no está seguro de si necesita añadir CPU y memoria en caliente, puede asignar más recursos de CPU y memoria a la máquina virtual desde el principio. NUMA
NUMA
vNUMA
Virtual NUMA (vNUMA)NUMA NUMA vNUMA NUMA NUMA NUMA vNUMA
NUMA vNUMA NUMA
vNUMA
Hot Add vNUMA NUMA NUMA Hot Add NUMA NUMA vNUMA
VMware Hot Add Hot Add NUMA
VMware Hot Add Limitaciones
No es posible la eliminació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 que se añadan en caliente vCPU y memoria a una máquina virtual, las aplicaciones consumen estos recursos añadidos. Por eso, las aplicaciones no admiten opciones como retirar la memoria y la capacidad de 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 ampliabilidad de la memoria
La cantidad máxima de memoria que se puede añadir en caliente es 16 veces la cantidad inicial de memoria asignada a la máquina virtual. Por ejemplo, si una máquina virtual tiene 4 GB de RAM, esta cantidad se puede aumentar hasta 64 GB.
También existe 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 detectar la memoria añadida. La solución consiste en apagar la máquina virtual y aumentar la cantidad de memoria a más de 3072 MB. A continuación, puede encender la máquina virtual y utilizar la memoria de VMware Hot Add.
Cómo configurar VMware Hot Add
Existen varios métodos para habilitar VMware vCPUs Hot Add y la memoria de VMware Hot Add. Puede utilizar la interfaz gráfica de usuario o la interfaz de línea de comandos.
Habilitar Hot Add en vCenter
Para habilitar la opción VMware Hot Add mediante vCenter, inicie sesión en VMware vSphere Client y realice lo siguiente:
- Vaya a
Hosts and Clusters. - Seleccione la máquina virtual deseada en el panel de navegación. La máquina virtual debe estar apagada.
- Haga 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, seleccionar
Edit Settings.
Realice los siguientes pasos para habilitar CPU hot add:
- En la ventana
Edit Settings, despliegue la configuración de la CPU. - En la línea
CPU Hot Plug, marque la casillaEnable CPU Hot Add.
Para habilitar la memoria hot add:
- En la ventana
Edit Settings, expanda la configuración de memoria. - En la línea
Memory Hot Plug, marque la casillaEnable.
- Haga clic en
OKpara guardar la configuración de la máquina virtual y cerrar la ventana.
Ahora puede iniciar la máquina virtual y hot add asignar vCPU y memoria de VMware a la máquina virtual.
Habilitar 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éctate a tu vCenter o al host ESXi utilizando el siguiente comando e introduciendo la dirección IP adecuada (192.168.101.205 en este ejemplo) o el nombre de host:
Connect-VIServer 192.168.101.205 - Introduce las credenciales cuando se te soliciten.
- Muestra la lista de máquinas virtuales del host ESXi al que te has conectado.
Get-VM - Asegúrate de que la máquina virtual para la que deseas habilitar
Hot Add esté apagada. - Ejecute estos comandos para habilitar la ampliación en caliente de memoria y la ampliació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
Donde:$VM.ExtensionData.ReconfigVM_Task($spec)
Windows-VMes el nombre de la máquina virtual en cuestión
$spec.memoryHotAddEnabled = $truees el comando para habilitar la memoriahot add
$spec.cpuHotAddEnabled = $truees el comando para habilitarCPU hot add - Compruebe en qué máquinas virtuales están habilitadas las funciones de ampliación en caliente de CPU y de memoria:
Get-VM | Get-View | Select Name, `
@{N="CpuHotAddEnabled";E={$_.Config.CpuHotAddEnabled}}, `
@{N="CpuHotRemoveEnabled";E={$_.Config.CpuHotRemoveEnabled}}, `
@{N="MemoryHotAddEnabled";E={$_.Config.MemoryHotAddEnabled}}
Habilitar Hot Add en un archivo de configuración de máquina virtual
Otro método para habilitar VMware Hot Add es utilizar el ESXi interfaz de línea de comandos y editar el archivo de configuración VMX de la máquina virtual. Abre el shell de ESXi o conéctate al host ESXi vía SSH. A continuación, ejecuta los siguientes comandos en la línea de comandos para habilitar Hot Add:
- Ve al directorio de la máquina virtual:
cd /vmfs/volumes/datastore10a/Windows-VM/
- Asegúrate de que la máquina virtual esté apagada.
- Abre el archivo de configuración VMX de la máquina virtual en un editor de texto:
vi Windows-VM.vmx - Añade esta línea al archivo de configuración para habilitar
vCPU Hot Add:
vcpu.hotadd = "TRUE" - Añade esta línea al archivo de configuración para habilitar la memoria
Hot Add:
mem.hotadd = "TRUE" - Guarda el archivo de configuración
VMXy sal 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 habilitados de forma predeterminada).
devices.hotplug = “false”
Esta configuración no afecta a CPU hotplug ni a la configuración de VMware para la adición en caliente de memoria de la máquina virtual.
Edición de la configuración VMX en VMware vSphere Client
También puede editar la configuración VMX en VMware vSphere Client:
- Seleccione la máquina virtual deseada en
VMware vSphere Client. - Apague la máquina virtual si está ejecutándose.
- Haga clic en
Edit Settings. - Seleccione la pestaña
VM Optionsen la ventanaVM Settings. - Haga clic en
Advancedpara desplegar las opciones y haga clic enEdit Configuration.
- Haga clic en
Add Configuration Paramsen la ventanaConfiguration Parameters. - En la sección
Add New Configuration Params, introduzca los valores para habilitarVMware Hot Addla memoria y las vCPU de VMware según corresponda.
Nombre:mem.hotaddValor:TRUE
Nombre:vcpu.hotaddValor:TRUE

- Pulsa
OKpara guardar los ajustes y cerrar la ventana.
Conclusión
Activa VMware Hot Add solo cuando tengas previsto utilizar esta función para añadir procesadores virtuales y memoria a una máquina virtual que está ejecutándose. Si habilitas VMware Hot Add pero no utilizas esta función, el rendimiento puede verse reducido en máquinas virtuales de gran tamaño, ya que no se utilizará la topología con múltiples NUMA nodos. Utiliza la supervisión de máquinas virtuales de VMware para supervisar el rendimiento de las máquinas virtuales y el uso de recursos en VMware vSphere. Este enfoque te ayuda a identificar si una máquina virtual necesita que se habilite la función Hot Add.
