Por Luke Orellana
La asociación de NIC en ESXi permite que el hipervisor comparta el tráfico entre las redes físicas y virtuales. También permite failover pasivo en caso de un problema de hardware o de red. Definitivamente, es una buena idea tener algún tipo de configuración de agrupación de NIC en tu host ESXi. La política de balanceo de carga del equipo NIC especifica cómo el switch virtual tiene que balancear la carga de tráfico entre la asociación de NICs. Sin embargo, si el equipo de red al que está conectado tu host no coincide con la política de balanceo de carga adecuada en el host, tu host ESXi recién configurado tendrá algunos problemas al conectarse. Aquí es donde puede ser útil poder configurar la política de balanceo de carga a través de la consola ESXi, especialmente si estás levantando un host en una ubicación remota y otra persona te lo está montando en rack. Lo último que quieres es encender el host y no poder hacerle ping porque te olvidaste de establecer la política de balanceo de carga adecuada en el equipo de NIC. Afortunadamente, si aún puedes acceder por consola al host ESXi a través de gestión remota fuera de banda, todavía hay una manera de solucionarlo.
Opciones de balanceo de carga ESXi
Hay varias opciones de balanceo de carga en ESXi y es importante conocer la diferencia entre cada una, especialmente cuando se trata de solucionar problemas de conectividad con el host.
Ruta basada en el puerto virtual de origen: La configuración predeterminada en vSphere. Hará que ESXi balancee el tráfico según las IDs de puerto virtual en el switch. Cuando se introduce por primera vez una máquina virtual en un host, se le asigna una ID de puerto virtual. A la MV se le asignará una NIC para usar hasta que se cambie la ID del puerto. Esta ID de puerto no cambia hasta que la máquina virtual se elimine o migre a otro host. La ventaja de este tipo de balanceo de carga es que su configuración es muy mínima, no requiere configurar el switch físico al que está conectado el host. El inconveniente es que este tipo de balanceo de carga puede ser muy ineficiente según las cargas de trabajo de la máquina virtual. Por ejemplo, supongamos que tienes 3 servidores SQL que se asignan a NIC1 y algunas máquinas virtuales de bajos recursos se asignan a NIC2. La carga en cada NIC no se distribuirá de manera uniforme y tiene más posibilidades de provocar un cuello de botella en la NIC. Además, debido a la forma en que funciona, la cantidad total de throughput se limita a un solo NIC. Es decir, si tienes 4 puertos de 1GB en una NIC, la máquina virtual solo podrá usar 1 de ellos y quedará limitada a un rendimiento de 1 GB.
Ruta basada en hash de IP: El tráfico se equilibra según las direcciones IP de origen y destino. Así que, si tiene un servidor SQL que da servicio a varias direcciones IP, el hipervisor puede calcular la carga y distribuir la conexión a través de todas las NICs de la asociación. Es un uso mucho más eficiente de los recursos para máquinas virtuales invitadas que se comunican con múltiples IPs de destino. Lo más importante que se debe realizar con esta opción de balanceo de carga es que el switch físico al que esté conectado el host ESXi también debe configurarse para ello en un canal de puerto (también llamado EtherChannel o enlace de agregación). Es decir: si configuras un host para esta política y el switch o los puertos a los que se esté conectando no están configurados para la canalización de puertos, no vas a llegar muy lejos.
Ruta basada en el hash de MAC de origen: Similar a cómo funciona el equilibrio de carga por puerto ID, aunque, la carga se equilibra según la dirección Mac. Por lo tanto, las máquinas virtuales que tengan múltiples NICs virtuales configuradas pueden tener tráfico disperso entre la asociación de NICs por cada NIC virtual.
Uso del orden explícito de failover: En este caso no se realiza el balanceo de carga. Utiliza el primer NIC activo en la lista.
Configurar a través de la consola ESXi
Si alguna vez te quedas atascado con un host ESXi desconectado y con la política de balanceo de carga incorrecta, no temas. Podemos hacer cambios fácilmente a través de la consola ESXi. Para hacer esto, inicia sesión en la consola a través de su solución de administración remota y accede a la pantalla DCUI:
Ahora haz ALT + F1 para acceder a la consola de inicio de sesión. Inicia sesión con tus credenciales ESXi. Ahora podemos empezar la magia. Si quisiéramos ver qué para tipo de balanceo de carga está configurado nuestro host para vSwitch0, podemos escribir la siguiente sintaxis:
esxcli network vswitch standard policy failover get -v vSwitch0
Otro problema es si el grupo de puertos está configurado para anular la configuración de balanceo de carga de vSwitch. O sea, puedes configurar tu balanceo de carga en el vSwitch y luego descubrir que el balanceo de carga en el grupo de puertos es otra cosa y todavía no puedes conectarte. Para buscar la configuración de balanceo de carga por grupo de puertos usa la siguiente sintaxis. En mi ejemplo, estoy mirando el grupo de puertos «Red de administración» y puedo ver que, de hecho, está anulando el equilibrio de carga de vSwitch:
esxcli network vswitch standard portgroup policy failover get -p "Management Network"
Para cambiar la política de balanceo de carga, debemos especificar qué política queremos y la sintaxis de cada una es la siguiente:
explicit: Usar orden explícito de failover
portid: Ruta basada en el puerto virtual de origen.
mac: Ruta basada en MAC hash de origen
iphash: Ruta basada en hash de IP
En nuestro escenario, queremos cambiar nuestro equilibrio de carga a «Ruta basada en hash de IP», ya que estamos utilizando EtherChannel en el switch. Para ello necesitaremos usar la siguiente sintaxis:
esxcli network vswitch standard policy failover set -l iphash -v vSwitch0
Además, dado que nuestro grupo de administración de puertos de red está configurado para anular nuestras configuraciones de balanceo de carga del switch virtual, también debemos cambiar su política ahí:
esxcli network vswitch standard portgroup policy failover set -p "Management Network" -l iphash
Estos comandos me han ayudado en otras ocasiones cuando estaba tratando con un host ESXi desconectado que se había implementado recientemente. Siempre que comprendas bien las diferentes opciones de balanceo de carga y cómo está configurado tu switch físico, debería ser una solución rápida y fácil. Dímelo debajo en los comentarios si alguna vez te has encontrado con este escenario. Solucionar problemas de conectividad del host cambiando la configuración del balanceo de carga puede ser un paso muy útil, y hacerlo a través de la consola ESXi lo convierte en un proceso rápido y fácil.
Si tiene problemas para seguir esta guía, déjame un mensaje en los comentarios y te ayudaré…