Hola a tod@s
En esta oportunidad vamos hablar sobre Memory Tiering over NVMe. Esta capacidad nos permite aprovechar los dispositivos NVME como una capa adicional de memoria. Para esta publicación daré un enfoque orientado a cómo sacar provecho a esta tecnología en nuestros laboratorios.
La memoria DRAM es el componente más costoso al momento de crear un entorno de laboratorio, sin suficiente memoria no podríamos levantar una solución compleja como VMware Cloud Foundation (VCF) Holodeck. Esta es una gran solución para poder ayudarnos a tener más memoria disponible.
¿Es tan rápido como tener 1TB de DRAM pura? Por supuesto que no. La física es la física, y el bus PCIe del NVMe, aunque veloz, no se compara con el bus de memoria directo a la CPU.
No es un reemplazo total de la DRAM, sino una extensión inteligente de la misma.
En este post voy a desglosar el Memory Tiering (Organización en Niveles) sobre NVMe, basándome en la excelente documentación técnica de Lenovo (LP2288).
¿Qué es exactamente el “Memory Tiering” y cómo funciona?
Imaginemos que la memoria RAM (DRAM) es nuestro escritorio donde trabajamos: donde tenemos todo a mano y es súper rápido. Este vendría a ser nuestro Tier 0 (Nivel 0). El problema es que este escritorio es pequeño y cada centímetro extra cuesta una fortuna.
Lo que VMware introduce en ESXi 9.0 es un “archivador” de alta velocidad justo al lado de su escritorio. Este archivador vendría a ser nuestro almacenamiento NVMe, que actúa como Tier 1 (Nivel 1).

No es tan rápido como acceder a nuestro escritorio (DRAM), pero es muchísimo más rápido que ir al almacén del sótano (un disco duro tradicional o un SSD SATA), tiene una capacidad gigantesca a una fracción del costo.
El hipervisor de ESXi se convierte en un asistente inteligente que vigila qué papeles (páginas de memoria) usan constantemente y cuáles solo miran de vez en cuando.
- Los papeles “calientes” (de acceso frecuente) se quedan en el escritorio (DRAM).
- Los papeles “fríos” (menos usados) los mueve automáticamente al archivador (NVMe).
Para nuestras máquinas virtuales y aplicaciones, todo esto es 100% transparente. Ellas solo ven mayor cantidad de memoria.
Los beneficios reales: Más allá de “tener más memoria”
El beneficio obvio es un aumento masivo de la capacidad de memoria a un costo mucho menor y el impacto es real, especialmente al momento de reducir costos.
- Reducción drástica del TCO (Costo Total de Propiedad): ¡Nuestro bolsillo lo agradecerá! En lugar de comprar 512GB de DRAM para ese servidor, podríamos comprar 256GB de DRAM y usar 256GB de NVMe como Tier 1 (usando la proporción 1:1 por defecto). Pruebas internas de Broadcom/VMware sugieren ahorros de TCO de hasta un 40% en ciertas cargas de trabajo.
- Mayor Densidad: Más memoria efectiva por host significa que puedes consolidar más máquinas virtuales (VMs) en el mismo servidor físico, mejorando la eficiencia de todo tu centro de datos.
- Mayor flexibilidad para laboratorios: Esta opción nos permite poder ejecutar más aplicaciones en nuevo laboratorio, donde la memoria DRAM es neutro talón de Aquiles por el alto costo.
¿Qué necesitamos? (Los Requisitos Clave)
Como era de esperar, esta maravilla no funciona en cualquier equipo viejo. Para subirse a este tren, necesitamos hardware y software específicos. Esto igual tiene algunos trucos:
- Software: Necesitaremos ejecutar vCenter 9.0 y ESXi 9.0 (o superior). Esta característica fue una preview técnica en 8.0 Update 3, pero ahora es una funcionalidad totalmente soportada y lista para producción.
- Hardware (¡Importante!): Aquí está el detalle clave. No nos sirve cualquier SSD NVMe que compremos. Necesitamos un dispositivo NVMe que esté certificado en la lista de compatibilidad de VMware para esta función. Específicamente, deben ser dispositivos de alta resistencia y rendimiento, similares a los usados para la caché de vSAN (en la guía de compatibilidad, busquen por “Endurance Class D” y “Performance Class F o G”).

Configuración: La activación es bastante directa para un administrador de vSphere. Se hace habilitando el parámetro VMkernel.Boot.memoryTiering (ya sea desde la UI de vSphere o por línea de comandos ESXCLI) y reiniciando el host. ¡Y listo!

Ahora, si como yo no tienen el último hardware del mercado para ejecutar sus pruebas de laboratorio y quieren sacar provecho a esta tecnología, es posible hacer pruebas en un entorno anidado, como les mostraré en esta publicación.
Identificación de dispositivos NVME
Para este ejemplo, realizaremos la configuración desde un entorno de laboratorio. Para esto cree un nested ESX en versión 9.0.1.0 al cual agregué una nueva controladora NVMe y conecté un nuevo disco de 16 GB como se muestra en la imagen.

El servidor ESX originalmente tiene configurado 32 GB de DRAM.

Para poder comenzar, lo primero que haremos es habilitar SSH en el host y conectarnos por línea de comandos.
Con el siguiente comando enumeraremos los dispositivos NVMe disponibles en el host con su nombre:
$ esxcli storage core adapter device list

En este ejemplo, el nombre del dispositivo NVMe es “eui.3a77714110f74e24000c2960b1245f1f“, donde su correspondiente ruta es “/vmfs/devices/disks/eui.3a77714110f74e24000c2960b1245f1f“. Este disco es el NVMe de 16GB creado en paso anteriores.
Configuración de dispositivos NVMe
En este punto configuraremos la partición en el dispositivo NVMe.
Nota: Este paso solo se puede realizar utilizando ESXCLI
Creamos una única partición en el dispositivo NVMe y verificamos que se haya creado la partición:
$ esxcli system tierdevice list
$ esxcli system tierdevice create -d /vmfs/devices/disks/eui.3a77714110f74e24000c2960b1245f1f
$ esxcli system tierdevice list

Configuración de Memory Tiering
Esta sección muestra cómo activar “MemoryTiering” en un host ESX. Este cambio requiere un reinicio del host.
$ esxcli system settings kernel set -s MemoryTiering -v TR
$ Reboot

Al habilitar Memory Tiering over NVMe, existen dos configuraciones avanzadas opcionales del host que se pueden configurar: Mem.TierNvmePct y Mem.EncryptTierNvme.
Después de modificar estas configuraciones avanzadas en el host, es necesario reiniciar el host para que los cambios surtan efecto.
$ esxcli system settings advanced set -i 100 -o /Mem/TierNvmePct
$ esxcli system settings advanced set -i 1 -o /Mem/EncryptTierNvme
- Mem.TierNvmePct : Esta configuración determina la cantidad de espacio en el NVMe que se utilizará como tiered memory, expresada como un porcentaje de la capacidad de la DRAM. El valor predeterminado es 100, lo que significa que el host está configurado para usar una proporción 1:1 de DRAM:NVMe. Por ejemplo, un host con 1 TB de DRAM usaría 1 TB de NVMe como memoria por niveles.
- Mem.EncryptTierNvme : Esta configuración habilita el cifrado de las páginas de memoria de la máquina virtual al migrar a almacenamiento NVMe, lo que proporciona una capa adicional de seguridad de datos. El valor predeterminado es 0, lo que indica que el cifrado está deshabilitado de forma predeterminada.
Verificar la organización en niveles de memoria
Con el siguiente comando verificamos el tamaño de la memoria. En este ejemplo es la suma de la DRAM + Memory Tiering dando 48 GB disponibles.
$ esxcli hardware memory get

Este comando detalla la jerarquía de memoria del sistema, diferenciando entre el Tier 0 y el Tier 1. El Tier 0 cuantifica la DRAM disponible, mientras que el Tier 1 especifica la capacidad del dispositivo NVMe asignada como memoria por niveles (tiered memory). Esta arquitectura amplía eficazmente la capacidad de memoria total del sistema.
$ vsish -e get /memory/tiers/0/info
$ vsish -e get /memory/tiers/1/info

Desde la vista de vCenter, podemos revisar en ESX > Configure > Hardware > Overview > Memory.
Ahora, como interpretamos esto: Tier 0 corresponde a la memoria DRAM, mientras que Tier 1 corresponde a la memoria NVME que configuramos en pasos anteriores.

Se recomienda no configurar más memoria de Tier 1 que la memoria disponible en Tier 0. Ahora, podemos ver que tenemos disponible 48 GB ( 32 GB DRAM + 16 GB NVME).
¿Y ustedes? ¿Qué opinan de esta solución? ¿La ven como el futuro de la virtualización o como un parche temporal inteligente? ¡Quiero leer sus opiniones en los comentarios!

