El balanceador de cargas proporciona los servidores de Linux (LVS) para balancear las cargas de algún servicio a través de servidores reales a manera de cluster que está compuesto por dos o más nodos.

Existen diferentes tipos de servicios que brinda un cluster cómo:

  • Alto rendimiento : Diseñado para da altas prestaciones en cuanto a capacidad de cálculo.
  • Alta disponibilidad : Matienen servicios compartidos y se están  monitorizándose entre sí constantemente.
  • Balanceo de Cargas: De balanceo de carga es usada para compartir el trabajo a realizar entre varios procesos, ordenadores, discos u otros recursos.
  • Escalabilidad : Esta preparado para hacerse más grande sin perder calidad en los servicios ofrecidos.

CentOS: Piranha cómo balanceador de cargas

Piranha es un paquete de software incluida en la familia Red Hat,  esta compuesto por un servidor LVS (Linux Virtual Server) y un gestor del mismo, que permite administrar los servicios de la Web con un navegador a través de una interfaz gráfica.

LVS permite crear un clúster de balanceo de carga, en el cual hay un nodo que se encarga de gestionar y repartir las conexiones (nodo master LVS) entre todos los nodos esclavos del clúster. El servicio de datos debe residir en todos los nodos esclavos. LVS puede soportar sin problemas hasta 200 nodos esclavos. Lo que vamos a implementar es algo como

piranha

Ahora sí vamos a la configuración

Instalación y Configuración

Piranha viene en los repositorios de los sistemas operativos basados en Red Hat

Por defecto escucha por el puerto 3636, este debe ser habilitado, en este caso por medio de iptables, ya sea mediante el comando “ipatbales” o editando el archivo “/etc/sysconfig/iptables”

Después de instalar el paquete piranha, es necesario iniciarlo y asegurarse que inicie en caso de algún reincio

Se establece una contraseña para el usuario “piranha” este sirve para tener acceso a la interfaz gráfica

Para que el LVS transmita los paquetes de red adecuadamente a los servidores reales, es
necesario activar el reenvió de paquetes editando el archivo: /etc/sysctl.conf

Después de haber habilitado el reenvío de paquetes, es necesario actualizar para que los
cambios sean efectivos al instante

Antes de entrar al entorno grafico de piranha debemos activar los servicios HTTP en los servidores reales

 Piranha

Accedemos mediante la IP y el puerto donde se instalo piranha: 192.168.0.12:3636, el usuario es “piranha” y la contraseña la que se asigno en comando piranha-passwd. Al estar dentro debemos configurar la dirección IP primaria del servidor público, esto en la pestaña GLOBAL SETTINGS:

Screen Shot 2014-12-09 at 10.56.15 AM

 

y luego a VIRTUAL SERVERS a añadir las IP’s virtuales , nuestro caso el 80 los REAL SERVER, son servidores apache.

Screen Shot 2014-12-09 at 12.02.57 PM

Incluimos el “REAL SERVER”, y podemos incluir con pirahna hasta 200 Real server

Screen Shot 2014-12-09 at 12.28.07 PM

Una vez configurado piranha reiniciamos el servicio en ambos routers, osea en cada pirahna monitor.

Para ver las estadísticas del servidor virtual, utilizamos

En los Real server:
Creamos los ARPTABLES para cada dirección IP virtual en los servidor es reales. Se añade al archivo /etc /rc.local para que después de cada reinicio se ejecute

Configuramos los ARPTABLES, instalamos arptablesjf

Configuramos en web server 1 (REAL SERVER 1)

Configuramos en web server 2 (REAL SERVER 2)

Guardamos y añadimos el servicio para ejecutar al inicio

Verificamos

Si todo esta correcto la salida será:

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.13:http rr
-> 192.168.0.3:http Route 1 0 34
-> 192.168.0.4:http Route 1 0 19

Aquí vemos que esta la IP virtual 192.168.0.13 y depende los dos real server 192.168.0.3 y 192.168.0.4 y que está balanceando las cargas con el alrgoritmo Round Robin(rr) , además que nos está balanceando por el puerto 80.

Redundancia
El panel REDUNDANCIA permite configurar el enrutador LVS de respaldo y de varias opciones de monitoreo del hearbeat.
Para la parte de Redundancia se utilizo mismo piranha. Se agregó un balanceador secundario, en donde también se realizaron los mismo pasos que en el balanceador primario. Y en la interfaz de pirahna se agregó la IP del nuevo servidor.

Screen Shot 2014-12-09 at 10.56.30 AM

Así tenemos tolerancia fallos , si por alguna razón hace failover el balanceador primario, entraría el balanceador secundario.

Quedaría así

lvs-two-tierLa estructura de demonios del Linux Virtual Servers queda así

lvs-componentsDonde

• Pulse; Es el controlador del proceso este inicia todos los demonio y permiteeditar los parámetros de configuración.
• Lvs; Demonio que corre en LVS routers lee la configuración y llama a ipvsadm.
• Ipvsadm; Construye y mantienen las tablas IPVS routing.
• Nanny; Monitorea el demonio que corre en LVS router.

Ya aquí luego pueden montar su Web en alguno de los  Real Server  y agregarle alguna capa de Storage y Bases de Datos.

 

 

Engineer, Mom, SysAdmin, Linux/Unix, Backup & Storage, Astronomy, Dev Girl.