Pools y Load Balancing

Resumen

El pool agrupa los servidores (miembros IP:puerto) que atienden una aplicación, y el método de balanceo decide a cuál va cada conexión nueva. Cada servidor también existe como nodo (solo la IP), que es el “padre” de sus miembros. Esta nota crea pools, cambia el método (Round Robin, Ratio, Least Connections…), configura Priority Group Activation para servidores de respaldo dentro del mismo pool, y gestiona miembros para mantenimiento.

Requisitos previos

  • IPs y puertos de los servidores
  • Un monitor que compruebe el servicio (Health Monitors)
  • Capacidad relativa de los servidores (para Ratio o PGA)
  • Red hacia los servidores lista (VLANs, Self IPs y Rutas)

Conceptos clave

ConceptoQué es
NodeIP del servidor; se crea solo al agregar un miembro
Pool memberIP + puerto dentro del pool
(member) / (node)Cuentan conexiones solo de este pool / de todos los pools del servidor
Round RobinUno a cada uno por turno (por defecto)
RatioReparto proporcional al peso (por defecto 1)
Least ConnectionsAl que tiene menos conexiones activas
FastestAl que responde más rápido; miembros en redes distintas
Observed / PredictiveRatio dinámico; servidores muy distintos
Least SessionsMenos registros de persistencia
PGAGrupos de prioridad dentro del pool; número mayor = prioridad mayor
Disabled / Forced OfflineEstados para mantenimiento

Configuración (Ejemplo, Lab CBT Nuggets)

Servidores: 10.10.101.101, .102, .103 en el puerto 80.

1. Crear el pool

Local Traffic > Pools > Pool List > Create > Name: HTTP_APP1_Pool > Health Monitors: mover http de Available a Active > Load Balancing Method: Round Robin > New Members: Address 10.10.101.101, Service Port 80 > Add (repite con .102 y .103) > Finished.

tmsh create ltm pool HTTP_APP1_Pool members add { 10.10.101.101:80 10.10.101.102:80 10.10.101.103:80 } monitor http load-balancing-mode round-robin

2. Cambiar a Ratio

  1. Pools > HTTP_APP1_Pool > Members > Load Balancing Method: Ratio (member) > Update.
  2. Current Members > 10.10.101.101:80 > Configuration: Advanced > Ratio: 3 > Update. Repite: .102 = 2, .103 = 1.
tmsh modify ltm pool HTTP_APP1_Pool load-balancing-mode ratio-member
tmsh modify ltm pool HTTP_APP1_Pool members modify { 10.10.101.101:80 { ratio 3 } 10.10.101.102:80 { ratio 2 } }

Para Ratio (node) el peso va en Local Traffic > Nodes > el nodo > Ratio; si lo pones en los miembros se ignora.

3. Otros métodos

tmsh modify ltm pool HTTP_APP1_Pool load-balancing-mode least-connections-member
tmsh modify ltm pool HTTP_APP1_Pool load-balancing-mode least-connections-node
tmsh modify ltm pool HTTP_APP1_Pool load-balancing-mode fastest-app-response
tmsh modify ltm pool HTTP_APP1_Pool load-balancing-mode observed-member

4. Priority Group Activation

  1. Asegúrate de que el pool tiene monitor (sin monitor PGA nunca se activa).
  2. Pool > Members > Priority Group Activation: Less than 2 Available Member(s) > Update.
  3. Cada miembro > Configuration: Advanced > Priority Group: .101 y .102 = 20; .103 = 10 > Update.
tmsh modify ltm pool HTTP_APP1_Pool min-active-members 2
tmsh modify ltm pool HTTP_APP1_Pool members modify { 10.10.101.101:80 { priority-group 20 } 10.10.101.102:80 { priority-group 20 } 10.10.101.103:80 { priority-group 10 } }

Resultado: con .101 y .102 arriba solo ellos reciben tráfico. Si cae uno (queda 1, menos de 2), se activa también el grupo 10.

5. Mantenimiento de un servidor (drenar)

Pools > Members > selecciona el miembro > Disable (o Force Offline). Espera a que Current Connections llegue a 0, parcha, y luego Enable.

tmsh modify ltm pool HTTP_APP1_Pool members modify { 10.10.101.101:80 { session user-disabled } }
tmsh modify ltm pool HTTP_APP1_Pool members modify { 10.10.101.101:80 { state user-down session user-disabled } }
tmsh show ltm pool HTTP_APP1_Pool members { 10.10.101.101:80 }
tmsh modify ltm pool HTTP_APP1_Pool members modify { 10.10.101.101:80 { state user-up session user-enabled } }
EstadoConexiones activasClientes persistentesClientes nuevos
Enabled✅✅✅
Disabled✅✅❌
Forced Offline✅ hasta que terminen❌❌

6. Otras opciones del pool

Configuration: Advanced → Slow Ramp Time (subida gradual de un miembro que vuelve), Action On Service Down (None/Reset/Reselect/Drop), Availability Requirement (All / At least).

Verificación

Comando o lugarQué debes verSi no lo ves
Local Traffic > Pools > StatisticsReparto de conexiones por miembro según el métodoRevisa método y pesos
tmsh show ltm pool HTTP_APP1_Pool membersEstado (available/offline) y conexiones por miembroRevisa el monitor
Columna Priority en Current MembersGrupos de prioridadPaso 4
Refrescar el navegador contra el VSCambia el servidor que responde (sin persistencia)Persistencia activa o un solo miembro arriba

Errores comunes

Ratio no cambia el reparto

  • Causa: método Ratio (node) con pesos en los miembros, o al revés.
  • Solución: pon el peso donde corresponde al método.

PGA nunca activa el grupo de respaldo

  • Causa: el pool no tiene monitor, o el umbral es mayor/menor de lo esperado.
  • Solución: asigna un monitor y revisa “Less than N”.

Un miembro deshabilitado sigue recibiendo tráfico

  • Causa: Disabled respeta los clientes persistentes.
  • Solución: usa Forced Offline si no debe entrar nadie más.

Todo el tráfico va a un solo servidor

  • Causa: persistencia por source address con muchos usuarios detrás de una misma IP (NAT), o los otros miembros caídos.
  • Revisa: estado de los miembros y registros de persistencia.
  • Solución: usa cookie persistence o revisa los monitores.