vmware

Load balancing en ESXi

El NIC teaming es un agrupamiento de tarjetas físicas para tener toleracia a fallos u obtener más rendimiento en la red dependiendo de la política utilizada. En un host ESXi se configura el load balancing en las opciones de vSwitch:

Antes de comentar las diferentes opciones, hablemos mínimamente sobre los vSwitch:

Un vSwitch se configura en un host ESXi, no en un vCenter. Y cada vSwitch es independiente de cada ESXi, tienes que replicar la configuración en cada host. Por ello, para que funcione vMotion los port groups de cada host tienen que tener el mismo nombre.

Un vSwich distribuido, se crea en el vCenter. Sólo disponible en Enterprise Plus. Permite mezclar los uplinks de los diferntes hosts.

Políticas de load balancing:

Enrutar según el identificador del puerto de origen: esta configuración es la más comun y óptima respecto a carga en el ESXi. Al encender una máquina virtual se le asigna un ID en el vSwitch y la política es un round robin. si por ejemplo tienes 2 interfaces de red, la primera máquina virtual conectará con la interfaz cero, la segunda máquina virtual con la interfaz uno y en el caso de iniciar una tercera máquina virtual utilizará la interfaz cero nuevamente. Lo ideal es tener muchas interfaces para  repartir la carga entre varias máquinas virtuales, pero tener a en cuenta que dependiendo del caso puedes tener un cuello de botella, una máquina virtual podrá tener sólo la velocidad del adaptador de red usado.

Enrutar según el Hash de MAC de Origen: el tráfico saliente se asigna a interfaz de red física en funcion de la MAC de la tarjeta virtual. Tiene un impacto de carga superior a la política de identificado de puerto de origen debido al cálculo. del hash. La fórmula para asignar el adaptador virtual a la vmnic es el siguiente:

de la MAC de la máquina virtual se utiliza el byte (LSB – less significant byte)

el bit menos significativo / número de interfaces

ejemplo: con un host ESXi con 2 interfaces de red y MAC 00:50:56:ac:4c:01

01/2 = 0,5 (la división no es exacta, utilizará la vmnic 0)

02/2 = 1 (la división es exacta, utilizará la vmnic 1)

realizo el ejemplo con una máquina virtual, configuro manualmente una MAC con un bite que cuadre para utilizar una vmnic diferente: MACs 00:50:56:ac:4c:01 y 00:50:56:ac:4c:02

si accedemos al ESXi y utilizamos esxtop con la opción network “n” visualizamos lo siguiente:

la máquina Centos 8.2, tiene 2 interfaces virtuales y se consigue que cada una utilice una interfaz física diferente. Con esta opción, una máquina virtual puede aumentar el rendimiento en red configurando un teaming de roundrobin o loadbalance en las tarjetas.

Como contra partida a esta configuración, la asignación de MACs las realiza el propio ESXi automáticamente. Por ello, necesitarás llevar un control de las MACs utilizadas por cada máquina virtual para evitar conflictos

Enrutar según el Hash de IP: es más complejo, este metodo elige una tarjeta de red para cada paquete saliente de origen y destino. Requiere Link Aggregation Control Protocol 802ad o Ethernet Channel.

La guía oficial de Redes de vSphere: vsphere-esxi-vcenter-server-67-networking-guide
En el apartado 5 se muestran los pasos para configurar este apartado: Compatibilidad con LACP en vSphere Distributed Switch
A tener en cuenta que necesitarás tener unos switchs físicos en stack, para tener tolerancia a fallo. No todos los switches soportan esta opción de tener un LACP común entre 2 switchs.

Enrutar según la carga de la NIC física: el conmutador virtual analiza la carga real de las interfaces de red y en el caso de superar un 75% de utilización, el identificador de la máquina virtual con el uso de red más alto se transfiere a otra interfaz de red. Disponible solamente con vSphere Distributed Switch. El vSwitch distribuido no está disponible en versiones Essential, Standard o Enterprise, sino Enterprise Plus o Platinum.

Utilizar orden explícito de conmutación por error: En este caso no se realiza el balanceo de carga. Utiliza el primer NIC activo en la lista.

más info: vsphere.networking.doc