Configurar RDMA EN VSAN 7.0U2

Buenas chicos! Como comentamos en este post acerca de las novedades de vSAN 7.0U2, una de las grandes novedades era la introducción de vSAN sobre RDMA. Muchos de vosotros os preguntareis que es RDMA, por ello basta deciros, nos permite el acceso directo a memoria remota , es una tecnología que permite a los sistemas omitir la CPU, y enviar datos con menor latencia y sobrecarga de CPU. Esto nos proporciona un menor uso de CPU, y un rendimiento de almacenamiento mejorado.

Como de costumbre debemos asegurarnos que nuestros dispositivos están calificados en la guía de compatibilidad de hardware de VMware.

Requisitos

Para poder configurar RDMA en nuestro cluster de vSAN debemos de tener los siguentes requisitos:

  • Disponer de la versión de ESXi 7.0U2 que contendrá la versión compatible con RDMA
  • Tener una tarjeta de red que soporte la funcionalidad RDMA
  • Configurar nuestros switches

Configuracion

1º Como hemos comentado uno de los primeros pasos es como mínimo tener la versión ESXI 7.0U2.

2º Por otro lado debemos de tener una tarjeta compatible con RDMA(RoCE), en mi caso tengo el siguiente modelo para realizar las pruebas

HPE Ethernet 10/25Gb 2-port 640SFP28 Adapter

Como podemos ver en la guía de compatibilidad, nuestra tarjeta de red es compatible tanto con RoCE v1 como con RoCE v2, por lo tanto podemos seguir con nuestra configuración.

3º Ahora vamos a configurar en nuestra tarjeta de red para que el tráfico RoCE no tenga perdida de paquetes, lo que conocemos como «lossless», para ello tenemos 2 maneras de configurarlo.

A) La primera forma, debemos habilitar «Priority Flow Control» (PFC) aplica la funcionalidad de pausa a clases específicas de tráfico en el enlace Ethernet. PFC puede proporcionar diferentes niveles de servicio a clases específicas de tráfico Ethernet (utilizando clases de tráfico IEEE 802.1p). En nuestro caso debemos configurar el valor de prioridad PFC en 3 en el switch físico y los hosts.

Lanzamos el siguente comando:

esxcli system module parameters set -m nmlx5_core -p "pfctx=0x08 pfcrx=0x08 trust_state=2 max_vfs=4"

B) PFC basado en DSCP es otra forma de configurar una red sin pérdidas(lossless). En switches y hosts, se debe establecer el valor DSCP en 26.

Activamos PFC y DSCP en «trust mode»

esxcli system module parameters set -m nmlx5_core -p "pfctx=0x08 pfcrx=0x08 trust_state=2"

Asignamos el valor DSCP 26

esxcli system module parameters set -m nmlx5_rdma -p "dscp_force=26"

Rebotamos el servidor

reboot

4º Ahora instalaremos las herramientas para modificar el firmware de nuestra tarjeta de red

A) Instalamos la vib

esxcli software vib install -v /vmfs/volumes/vsanDatastore/New\ folder/mft-4.16.3.12-10EM-700.0.0.15843807.x86_64.vib --no-sig-check

B) Rebotamos el servidor

reboot

5º Una vez instalado hay que realizar las siguientes modificaciones en el firmware de la tarjeta de red para poder utilizar vSAN sobre RDMA

vSAN sobre RDMA solo es compatible con DCBx IEEE no con CEE

Con este comando podríamos ver la configuracion de la tarjeta:

./opt/mellanox/bin/mlxconfig -d mt4117_pciconf0 q

Esto comando nos producirá una salida bastante mas amplia pero nos tenemos que fijar en los siguientes parámetros:

         
         LLDP_NB_DCBX_P1                     False(0)
         LLDP_NB_RX_MODE_P1                  ALL(2)
         LLDP_NB_TX_MODE_P1                  ALL(2)
         LLDP_NB_DCBX_P2                     False(0)
         LLDP_NB_RX_MODE_P2                  ALL(2)
         LLDP_NB_TX_MODE_P2                  ALL(2)
         DCBX_IEEE_P1                        True(1)
         DCBX_CEE_P1                         True(1)
         DCBX_WILLING_P1                     True(1)
         DCBX_IEEE_P2                        True(1)
         DCBX_CEE_P2                         True(1)

Ahora hay que modificar las configuraciones de LLDP_NB_DCBX_PX para habilitar DCBX en los puertos de la tarjeta, y deshabilitar DCBX_CEE_PX el CEE en los puertos. El comando es el siguiente:

/opt/mellanox/bin/mlxconfig -d mt4117_pciconf0 set LLDP_NB_DCBX_P1=1 LLDP_NB_DCBX_P2=1 DCBX_CEE_P1=0 DCBX_CEE_P2=0

Rebotamos el servidor

Reboot

7º Ya tendríamos toda la parte de la tarjeta de red configurada, ahora solo nos falta activar RDMA para nuestro clúster vSAN.

A) Seleccionamos el cluster-> configure->vSAN->Services y pulsamos edit

Si nos damos cuenta, nos dice que nuestros puertos de la tarjeta de red es compatible con RoCEv2,ahora solo nos queda activarlo, y darle apply.

7º Una vez hemos activado nuestro vSAN RDMA, como siempre nos iremos a nuestro vSAN Skyline Health y revisaremos que todo este verde.

Para terminar me gustaría comentar un par de cosas que no hemos hablado durante el post, una de ellas es que requerimos de una configuración en nuestros switches, para ello es importante revisar la documentación de los mismos, ya que no sirve de nada que solo lo realicemos en la configuración de nuestros host. También tenemos que recordar, que si alguno de los host que compone el clúster pierde la compatibilidad con RDMA, el clúster pasara a usar de nuevo la capa TCP.

Hasta aquí hemos llegado, espero que os haya gustado esta nueva tecnología que nos trae VMware para potenciar aun mas nuestro clúster vSAN, en el siguiente post os traeré una comparativa de rendimiento entre el uso de RDMA y la ausencia de este.

Por ultimo agradecer a mis compañeros David x2, Ienego y Marius por la revisión de este post, sin ellos no habría sido posible, nos vemos :).

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *