Pen

De Blogx Populi - Wiki Hispano
Saltar a: navegación, buscar
Icono de traducción
Aquesta pàgina necessita ser traduïda al català, pots fer-ho!


Icono de traducción
This page needs to be translated to english, you can do it!


Icono de esbozo

Este artículo necesita desarrollarse más. Ampliándolo ayudarás a mejorar Blogx Populi.
Tal vez puedas ayudarte con los wikis catalán e inglés si tienen una página equivalente.


Antes de la Tabla de Contenidos se hace una explicación

Contenido

[editar] Objetivos

Redundar plataforma LAMP de servidores autogestionados marsupi.mine.nu

En un primer momento se pensó en el software keepalived pero toda la documentación esta basada en una arquitectura donde los nodos y el balanceador estan en la misma subnet.

Después de probar balance este no funcionaba correctamente en 64bits, finalmente se obto por pen, ya que esta en los repositorios de debian y es lo más sencillo que existe en load balancer.

Para trabajar fácilmente con los distintos nodos se recomienda usar algún nombre de dominio donde se tenga control del DNS, ya que trabajar con dyndns es más inestable y depende de otro servicio externo menos configurable. Por ejemplo, para dar un poco de autónomia al tema de correo, se podría configurar los MX del DNS de un dominio dado, para todos los miembros del cluster.

Ejemplo:

gmail.com	mail exchanger = 30 alt3.gmail-smtp-in.l.google.com.
gmail.com	mail exchanger = 20 alt2.gmail-smtp-in.l.google.com.
gmail.com	mail exchanger = 40 alt4.gmail-smtp-in.l.google.com.
gmail.com	mail exchanger = 10 alt1.gmail-smtp-in.l.google.com.
gmail.com	mail exchanger = 5 gmail-smtp-in.l.google.com.

[editar] Funcionamiento básico

Todas las peticiones llegan al balanceador y este las redirige hacia uno de los nodos. Usa una tabla para siempre enviar al cliente hacia el mismo nodo. Si un nodo cae, lo redirige hacia el otro nodo. Los nodos son servidores auto-replicados con la misma config LAMP

Todo el tráfico entrante pasa por el balanceador.

[editar] Instalación

apt-get install pen

[editar] Servidor

Servidor Virtual Debian 5 Balanceador del Cluster de marsupi.mine.nu en fase pruebas:

http://cluster.pobladodigital.com

[editar] Nodos del cluster disponibles

  • 88.26.204.132 marsupi.mine.nu nodo1
  • 81.33.29.52 malaguita.blogxpopuli.org nodo2


[editar] Monitorización

Para saber que nodo del cluster esta recibiendo las peticiones podemos usar penctl. El controlador de pen esta instalado en el puerto 10080 localhost:

penctl 127.0.0.1:10080 servers
0 addr 87.98.138.82 port 80 conn 0 max 0 hard 0 sx 3112 rx 720
1 addr 88.26.204.132 port 80 conn 0 max 0 hard 0 sx 0 rx 0

Cada 5 minutos se actualiza las estadísticas en: (tarea del cron, penstats)

http://cluster.pobladodigital.com:8080/

Esta página de estadísticas se muestra por el servicio thttpd

[editar] Resolución de problemas habituales

Si el balanceo no funciona y tenemos logs similares:

pen: Server 1 failed, retry in 30 sec: Interrupted system call 

Quiere decir que uno de los nodos esta fallando y las peticiones se irán hacia el otro. Se debería configurar un monitor para recibir un mail cuando esto ocurra.

  • Comprobar que el servicio pen esta corriendo:
ps aux |grep pen
root      4052  0.0  0.3   7132   924 ?        Ss   12:24   0:00 /usr/bin/pen 80 nodo1.pobladodigital.com nodo2.pobladodigital.com -H -l /var/log/pen.log
  • Si no, volver a ejecutar nuevamente:
/home/irraz/pen.sh
  • Contenido de pen.sh
/usr/bin/pen -w /var/www/pen/index.html -x 500 -S 2 -p /var/run/pen.pid-80 -l /var/log/pen.log -C localhost:10080 -r 80 nodo1.pobladodigital.com:80 nodo2.pobladodigital.com:80


[editar] Tareas pendientes

  • Ver cómo funciona penctl
  • Documentar penctl
  • Configurar otros servicios como SMTP bajo pen (trivial con gestion dns y cambio MX).
  • Configurar replicación entre nodos para tema de Apache + MySQL (puede ser un rsync de madrugada simplemente).
  • Documentar replicación
  • Script de arranque autómatico de pen
  • Añadir más nodos al cluster (PRIORITARIO!!!)

[editar] Enlaces externos

Herramientas personales
Espacios de nombres
Variantes
Acciones
proyectos
Navegación
Herramientas