Recursos de VMware vSphere: Explicación de HotAdd/HotPlug

En un entorno de VMware vSphere, los recursos provisionados pueden no ser suficientes para el nivel de rendimiento requerido cuando se tiene una aplicación potente en ejecución en una VM. En este caso, la solución óptima es agregar más recursos de procesador y memoria a la máquina virtual.

Cuando se ejecutan aplicaciones críticas en la VM, no se puede permitir apagar la VM y enfrentar tiempo de inactividad. Para este escenario, la función de Hot Add de VMware vSphere resulta útil. Debido a la flexibilidad proporcionada por la virtualización de VMware, se pueden agregar CPU de hardware virtual y memoria RAM a una VM en ejecución. Aquí explicaremos cómo habilitar Hot Add de VMware, casos de uso, configuración y limitaciones de esta función.

¿Qué es VMware Hot Add?

VMware Hot Add es una función que te permite agregar dispositivos virtuales a una máquina virtual mientras la VM está en ejecución. De forma predeterminada, puedes agregar dispositivos virtuales como un disco duro virtual (no IDE), adaptadores de red y dispositivos USB mientras una VM está encendida. VMware Hot Add hace posible agregar una CPU (unidad central de procesamiento) y RAM (memoria de acceso aleatorio) virtual sobre la marcha. Con VMware Hot Add habilitado, no es necesario apagar una VM para agregar dispositivos virtuales.

VMware Hot Add vs Hot Plug

Puedes notar que la función de Hot Add de CPU a veces se denomina Hot Plug de CPU. La misma lógica se aplica al hot add de memoria y al hot plug de memoria. Estos dos términos se refieren a lo mismo y son intercambiables.

Nota: No confunda la memoria dinámica de VMware y la adición de memoria en caliente de VMware porque estas características son diferentes. La memoria dinámica de VMware es una técnica para la gestión eficiente de la memoria de VMware para máquinas virtuales. Este nombre no es oficial para esta característica, 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 intercambio transparente de páginas, el inflado de memoria, la compresión de memoria y el intercambio de memoria.

Requisitos y limitaciones

Existen requisitos y limitaciones para agregar vCPUs (CPU virtuales) y memoria de VMware a VMs en ejecución:

  • El sistema operativo (SO) invitado debe admitir la adición de dispositivos en caliente.
  • La compatibilidad del hardware de la máquina virtual (versión de hardware virtual) es 7 o superior.
  • VMware Tools debe estar instalado en el SO invitado.
  • La Tolerancia a Fallos no debe estar habilitada para la VM.
  • La máquina virtual debe estar apagada para habilitar la función de adición en caliente.
  • A VMware vSphere Advanced, Enterprise, or Enterprise Plus license must be used. VMware vSphere Enterprise Plus supports both CPU hot add and memory hot add. Refer to the VMware licensing guide to check available functionality for other editions and guest OSs.

Tenga en cuenta las limitaciones de licencia del SO invitado y las aplicaciones instaladas en la VM antes de agregar vCPUs. Es posible que necesite comprar licencias adicionales para ejecutar el software en un mayor número de procesadores.

Los sistemas operativos invitados que admiten Hot Add son Windows Server 2003 y versiones posteriores, y Linux que utiliza el kernel 3.8 y superior. Las principales ediciones de Windows Server admiten tanto la adición en caliente de CPU como de memoria. Algunas ediciones inferiores de Windows Server solo admiten la adición en caliente de memoria.

Sistema Operativo Invitado Licencia/Versión Agregar memoria en caliente Conexión de CPU en caliente
Windows Server 2003 32-bit/64-bit Estándar, Empresa No
Windows Server 2008 32-bit Estándar, Empresa, Centro de Datos No
Windows Server 2008 64-bit Estándar, Empresa No
Windows Server 2008 64-bit Centro de Datos
Windows Server 2008 R2 Estándar, Empresa No
Windows Server 2008 R2 Centro de Datos
Windows Server 2012 Estándar, Centro de Datos
Windows Server 2012 R2 Estándar, Centro de Datos
Windows Server 2016 Estándar, Centro de Datos
Windows Server 2019 Estándar, Centro de Datos

Pros y contras de VMware Hot Add

VMware Hot Add es una característica útil en muchos casos. Sin embargo, hay desventajas en usar esta función cuando realmente no es necesario agregar en caliente. VMware Hot Add está desactivado de forma predeterminada por diferentes razones. Descubramos por qué.

VMware vCPU Hot Add y vNUMA

Al habilitar VMware Hot Add, vNUMA se desactiva automáticamente para la VM. De forma predeterminada, vNUMA está habilitado para todas las VM que tienen 8 vCPUs o más para mejorar el rendimiento. Analicemos más de cerca el concepto de NUMA y vNUMA.

¿Qué es NUMA?

NUMA (acceso a memoria no uniforme) es la arquitectura para sistemas multiprocesador que permite a las CPUs 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 usar “su propia” memoria local en lugar de utilizar la memoria instalada en las ranuras cerca de 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 donde cada procesador puede acceder a toda la memoria en la placa base. Un procesador con memoria instalada en ranuras cerca de este procesador se llama un nodo NUMA.

Si NUMA está desactivado o, por ejemplo, tienes dos procesadores y la memoria está instalada en las ranuras de solo uno de esos procesadores, es posible que veas degradación del rendimiento y otros problemas de hardware. Si no tienes suficientes módulos de memoria para llenar todas las ranuras en una placa base con dos procesadores, intenta distribuir los módulos de memoria entre las ranuras de memoria del primer y segundo procesadores.

NUMA ayuda a distribuir de manera racional los procesos del sistema que se ejecutan en un sistema operativo con capacidad NUMA. Permite que cada proceso acceda a áreas de memoria que están más cerca de los procesadores utilizados por dichos procesos.

¿Qué es vNUMA?

NUMA virtual (vNUMA) es un método de optimización en VMware vSphere. Asegura que las VM grandes funcionen de manera óptima teniendo en cuenta la topología NUMA y evitando cuellos de botella de ancho de banda de memoria. Se expone una topología NUMA física 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 VM pueden programar el acceso a la memoria ubicada en los mismos nodos NUMA.

vNUMA está disponible para máquinas virtuales que utilizan hardware virtual 8 o superior. Cuando se crea una máquina virtual, se puede seleccionar el número de procesadores y el número de núcleos del procesador. El número de sockets 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 y optimiza una topología vNUMA para su uso por un sistema operativo invitado. En este caso, el sistema operativo invitado puede utilizar varios nodos NUMA. A esta VM se le llama una máquina virtual grande o amplia.

¿Qué sucede cuando se desactiva vNUMA?

Cuando Hot Add está habilitado y vNUMA está 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 planificación de CPU/memoria de un sistema operativo invitado no es óptima. Como resultado, el rendimiento de la VM degrada. La degradación del rendimiento es notable para VM amplias con un aumento de hilos por una aplicación. Por ejemplo, si habilitas Hot Add en una VM cuyo sistema operativo invitado usaba dos nodos NUMA, este sistema operativo invitado solo puede detectar un nodo NUMA después de eso porque no se crea la topología vNUMA optimizada.

Habilita VMware Hot Add solo si esperas utilizar esta función durante la operación de la VM. De lo contrario, es mejor desactivar Hot Add para VM que abarcan más de un nodo NUMA. Si no estás seguro de que necesitas agregar CPU y memoria en caliente, puedes asignar más recursos de CPU y memoria a la VM desde el principio.

Limitaciones de Hot Add de VMware

No es posible la eliminación en caliente

Cuando la característica Hot Add/hot plug está habilitada, es imposible eliminar en caliente recursos de CPU y memoria. Después de agregar en caliente vCPU y memoria a una VM, las aplicaciones consumen estos recursos adicionales. Es por eso que las aplicaciones no admiten opciones como quitar memoria y capacidad de CPU que ya están en uso. Por esta razón, la única forma posible de disminuir los recursos de CPU y memoria para una VM es apagar la VM y editar la configuración de la VM apagada.

Limitaciones de escalabilidad de memoria

La cantidad máxima de memoria que se puede agregar en caliente es x16 la cantidad inicial de memoria asignada para la VM. Por ejemplo, si una VM tiene 4 GB de RAM, esta cantidad se puede aumentar 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. Puede obtener un error o un sistema operativo invitado (Linux de 64 bits y Windows de 32 bits) no puede determinar la memoria adicional. La solución es apagar la máquina virtual, aumentar la cantidad de memoria a más de 3072 MB. Luego puede encender la máquina virtual y usar la adición de memoria en caliente de VMware.

Cómo configurar la adición de memoria en caliente de VMware

Existen varios métodos para habilitar la adición de CPU en caliente de VMware y la adición de memoria en caliente de VMware. Puede utilizar la interfaz gráfica de usuario o la interfaz de línea de comandos.

Habilitación de la adición en caliente en vCenter

Para habilitar la opción de adición en caliente de VMware mediante vCenter, inicie sesión en VMware vSphere Client y haga lo siguiente:

  1. Vaya a Hosts y clústeres.
  2. Seleccione la máquina virtual necesaria en el panel de navegación. La máquina virtual debe estar apagada.
  3. Haga clic en el icono Editar configuración. Como alternativa, puede hacer clic con el botón derecho en el nombre de la máquina virtual y en el menú que se abre, presionar Editar configuración.

Haga lo siguiente para habilitar la adición en caliente de CPU:

  1. En la ventana Editar configuración, expanda la configuración de CPU.
  2. En la línea CPU Hot Plug, seleccione la casilla de verificación Habilitar adición en caliente de CPU.

Haga lo siguiente para habilitar la adición de memoria en caliente:

  1. En la ventana Editar configuración, expanda la configuración de memoria.
  2. En la línea Memory Hot Plug, seleccione la casilla de verificación Enable.
  3. Haga clic en OK para guardar la configuración de la máquina virtual y cerrar la ventana.

Ahora puede iniciar la máquina virtual y agregar en caliente VMware vCPU y memoria a la máquina virtual.

Habilitación de VMware Hot Add en PowerCLI

VMware PowerCLI es la potente herramienta de línea de comandos para la administración de VMware vSphere. Veamos cómo habilitar VMware Hot Add en PowerCLI.

  1. Conéctese a su host vCenter o ESXi mediante el siguiente comando e introduzca la dirección IP correspondiente (192.168.101.205 en este ejemplo) o el nombre de host:

    Connect-VIServer 192.168.101.205

  2. Introduzca las credenciales cuando se le solicite.
  3. Enumere las máquinas virtuales en el host ESXi al que se ha conectado.

    Get-VM

  4. Asegúrese de que la máquina virtual para la que desea habilitar Hot Add esté apagada.
  5. Ejecute estos comandos para habilitar la adición de memoria en caliente y la adición de CPU en caliente 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 habilitar la adición de memoria en caliente
    $spec.cpuHotAddEnabled = $true es el comando para habilitar la adición de CPU en caliente

  6. Verifique en qué VMs están habilitadas las funciones de añadir CPU en caliente y añadir memoria en caliente:

    Get-VM | Get-View | Select Name, `
    @{N=”CpuHotAddEnabled”;E={$_.Config.CpuHotAddEnabled}}, `
    @{N=”CpuHotRemoveEnabled”;E={$_.Config.CpuHotRemoveEnabled}}, `
    @{N=”MemoryHotAddEnabled”;E={$_.Config.MemoryHotAddEnabled}}

Habilitar la función de añadir en caliente en un archivo de configuración de VM

Otro método para habilitar VMware Hot Add es utilizando la interfaz de línea de comandos de ESXi y editando el archivo de configuración VMX de la máquina virtual. Abra la shell de ESXi o conéctese al host de ESXi a través de SSH. Luego ejecute los siguientes comandos en la línea de comandos para habilitar Hot Add:

  1. Ir al directorio de la VM:
    cd /vmfs/volumes/datastore10a/Windows-VM/
  2. Asegúrese de que la VM esté apagada.
  3. Abra el archivo de configuración VMX de la máquina virtual en un editor de texto:
    vi Windows-VM.vmx
  4. Agregue esta línea al archivo de configuración para habilitar Hot Add de vCPU:
    vcpu.hotadd = “TRUE”
  5. Agregue esta línea al archivo de configuración para habilitar Hot Add de memoria:
    mem.hotadd = “TRUE”
  6. Guarde el archivo de configuración VMX y salga del editor de texto.

Puede deshabilitar las capacidades de inserción en caliente en una VM 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 la configuración de VMware de hotplug de CPU y hot add de memoria para la VM.

Edición de la configuración VMX en VMware vSphere Client

También puede editar la configuración VMX en VMware vSphere Client:

  1. Seleccione la VM necesaria en VMware vSphere Client.
  2. Apague la VM si está en ejecución.
  3. Haga clic en Editar configuración.
  4. Seleccione la pestaña Opciones de VM en la ventana de Configuración de VM.
  5. Haga clic en Avanzado para expandir las opciones y haga clic en Editar Configuración.
  6. Haga clic en Agregar Parámetros de Configuración en la ventana de Parámetros de Configuración.
  7. En la sección Agregar Nuevos Parámetros de Configuración ingrese los valores para habilitar la memoria VMware Hot Add y las vCPUs de VMware según corresponda.
     
    Nombre: mem.hotadd       Valor: VERDADERO
    Nombre: vcpu.hotadd        Valor: VERDADERO
  8. Pulse OK para guardar la configuración y cerrar la ventana.

Conclusión

Active el ajuste de VMware Hot Add solo cuando espere utilizar esta función para agregar procesadores y memoria virtual a una VM en ejecución. Si activa VMware Hot Add pero no utiliza esta función, el rendimiento puede degradarse para las VM grandes, ya que no se utilizará la topología con varios nodos NUMA. Utilice el monitoreo de VM de VMware para supervisar el rendimiento de la VM 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.

Source:
https://www.nakivo.com/blog/vmware-vsphere-resources-hotadd-hotplug-explained/