VMWare: Configurar Jumbo Frames

En este post recogeremos en forma de preguntas y respuestas información acerca de los Jumbo Frames en infraestructuras VMWare vSphere ESXi.

1) ¿Qué son los Jumbo Frames?

Los Jumbo Frames son paquetes Ethernet con un MTU (Maximum Transfer Unit) superior a los 1.500 bytes.

El valor MTU de las redes Ethernet es por defecto: 1.500 bytes.

2) ¿Cual es el tamaño máximo de MTU (Jumbo Frame) soportado en VMWare ESXi?

El tamaño máximo de MTU soportado en VMWare ESXi es de: 9.000 bytes.

3) ¿Qué ganamos habilitando Jumbo Frames?

Si habilitamos los Jumbo Frames conseguiremos un mejor rendimiento de acceso al storage.

La idea es que para transmitir la misma información, se utilizarán menos paquetes, por lo tanto se utilizarán menos interrupciones y por tanto menos uso de CPU.

4) ¿Qué debo tener en cuenta para habilitar Jumbo Frames?

- No habilitar Jumbo Frames en la red de Management, solo en la red de acceso al storage o la red de VMotion.

Ejemplo:

VMWare: Habilitar Jumbo Frames


* En el diagrama anterior vemos como el TCP/IP de las virtual NICs conectadas a los dos Virtual Switch distintos residen en el mismo segmento de red, sin embargo es buena práctica que estuviesen en segmentos de red distintos. Por ejemplo: vmk0: 172.19.0.1 // vmk1: 192.168.100.1

* Los clientes conectarán a las VMs del ESXi con un MTU de 1.500. Pensemos que todos los sistemas operativos, switch, etc, por defecto, tienen un MTU de 1.500. El MTU debe ser el mismo de un extremo a otro de la conexión. 

* El host VMWare ESXi, conectará a la cabina iSCSI con un MTU de 9.000. Como el valor de MTU es superior a 1.500, le llamaremos Jumbo Frames.

- Solo podremos aplicar Jumbo Frames en redes Ethernet: iSCSI, FCoE, NFS. No con FC (Fiber Channel).

- Se debe habilitar Jumbo Frames en todos los elementos del camino: NIC, vSwitch, switch físico y cabina, es decir, toda la ruta punto a punto por donde pasa el tráfico debe tener el mismo MTU.

5) ¿Cómo configuramos Jumbo Frames en ESXi a nivel de NIC?

Veamos dos formas para configurar Jumbo Frames en ESXi a nivel de NIC:

- Utilizando CLI (SSH al host ESXi):

esxcfg-vmknic --list

esxcfg-vmknic --mtu 9000 "iSCSI" 
 

* en el ejemplo, el VMkernel Portgroup Name se llama: "iSCSI"

- Utilizando VSphere Client:

Nos situamos sobre un host ESXi, pestaña "Configuration", Networking.

Seleccionamos el vSwitch al que está conectado la NIC y pulsamos sobre Propierties.

VMWare: Habilitar Jumbo Frames

A continuación, nos situamos sobre NIC, pulsamos sobre el botón "Edit" y veremos el valor actual de MTU actual que podremos cambiar.

VMWare: Habilitar Jumbo Frames

6) ¿Cómo configuramos Jumbo Frames en ESXi a nivel de vSwitch? 

Veamos dos formas para configurar Jumbo Frames en ESXi a nivel de vSwitch:

- Utilizando CLI (SSH al host ESXi):

esxcfg-vswitch --list

esxcfg-vswitch --mtu 9000 vSwitch1

*En este ejemplo, estamos cambiando el MTU del vSwitch0.

- Utilizando VSphere Client:

Nos situamos sobre un host ESXi, pestaña "Configuration", Networking.

Seleccionamos el vSwitch al que está conectado la NIC y pulsamos sobre Propierties.

Hasta aquí, igual que si queremos cambiar el MTU de la NIC (punto anterior).

Ahora seleccionamos el vSwitch, pulsamos sobre el botón "Edit" y veremos el valor de MTU a nivel de vSwitch:

VMWare: Habilitar Jumbo Frames

7) ¿Como verificamos la configuración de Jumbo Frames?

Desde un host ESXi, ejecutaremos:

vmkping -s 8972 -d IP

Por ejemplo:

vmkping -s 8972 -d 172.17.0.200

* Siendo 172.17.0.200, por ejemplo, la IP de la NIC iSCSI de la cabina, que le habremos habilitado Jumbo Frames.

¿Por qué 9872?

Hay 8 bytes que se utilizan para la cabecera ICMP y 20 para la cabecera IP.

9000 (Tamaño MTU) - 8 (Cabecera ICMP) – 20 (Cabecera IP) = 8972 bytes

Es por este motivo que si ejecutamos vmkping -s 9000 -d 172.17.0.200, nos podría contestar: "Message too long".

8) ¿Mi cabina y switches físicos deben soportar Jumbo Frames?

Sí, es un requisito imprescindible.

La activación de Jumbo Frames debe realizarse de punto a punto.

Repasando los puntos donde debe activarse:

1) Cabina SAN, puerto o puertos del segmento de acceso al storage.
2) Switch físicos del segmento de acceso al storage.
3) Host VMWare ESXi: Virtual Switch del acceso al storage.
4) Host VMWare ESXi: NIC o NICs conectadas al Virtual Switch del acceso al storage.

Los puntos 3 y 4, quedan explicados como activar Jumbo Frames en este post.

Los puntos 1 y 2, dependerán de cada entorno físico en cuestión.

2 comentarios:

  1. Artículo muy útil, como siempre ;-)
    Una duda, puede haber problemas con las máquinas (degradación,cortes,etc) mientras estamos realizando estos cambios?

    Un saludo

    ResponderEliminar
    Respuestas
    1. ¡Muchas gracias! y... ¡Muy bien visto!

      Efectivamente deberías detener todas las VMs que residen en el storage compartido.

      Lo ideal es detener todas las VMs de producción y tener una VM de test.

      A continuación ir habilitando Jumbo Frames en la cabina, switchs físicos, virtual switch, NICs, etc...del segmento de acceso al storage.

      Encender la VM de test y probar que todo funcione correctamente, a partir de aquí, ir encendiendo el resto de VMs.

      ¡Un saludo!

      Xavi.

      Eliminar