hola que tal amigos Javeros a falta de desarrollos en la empresa (ya que aqui solo desarrollan en PHP) no he podido postear algún codigo o alguna herramienta codifcada en Java pero ahora les traigo unos temas interesantes por ejemplo. He tenido que trabajar con cluster y actualmente sigo peleándome con MYSQL pero no dudo que en unos dias pueda tener todo listo para comenzar con la documentación (y pedir permiso a mi jefe, para que me deje publicarlo aquí en mi blog ) de cualquier forma yo adecuo mi documentación al blog asi que esperenlo, pero por ahora les voy a dejar el tutorial de como configurar LVS en CentOS 5 y lo voy a tratar de explicar lo mas que pueda cualquier duda o comentario porfa postenlo aquí prometo responderlos rápidamente.

Primero que nada vamos a conocer la tipologia que vamos a implementar, en mi caso seran 2 servidores en cluster  usando el algorithmo Direct Routing solamente uno como master y el otro como failover en caso que ocurra un error con el master el failover entrara en lugar de este, PERO… al mismo tiempo estos servidores seran como real severs (osea apaches comunes y corrientes que responen peticiones HTTP) y usaremos un reverse proxy por cuestiones de seguridad (si no les interesa poner el Reverse proxy no hay ningun problema el RP es fácil de configurar, en este tutorial solamente lo utilizaremos para redireccionar la peticion al LVS)como se puede ver en la siguiente imagen.

Cosas a considerar antes de comenzar la configuracion seran:

  1. Tener en mente la direccion IP Virtual a utilziar claro que esta tendra que ser en el rango que el router o las mismas maquinas puedan reconocerlo por ejemplo mi IPV sera 192.160.2.106.
  2. Escalabilidad en nuestra configuracion para que en un futuro se puedan agregar mas nodos y nuevos failovers.
  3. Tener instalado piranha o la Cluster suite de centos( en caso que no se tenga solo ejecutar la siguiente sentencia “#yum groupinstall “Clustering”

como se aprecia en la imagen tenemos el nodo1 que sera el Master de nuestro cluster en LVS asi que este lo configuraremos se la siguiente forma:

  1. Encender la herramienta de configuracion web de piranha con las siguientes lineas #piranha-passwd(para confifurar el password del usuario piranha para poder accesar a la aplicacion web) y #service piranha-gui start ( para el encendido del la herramienta) para hacer esto necesitas tener el httpd(apache de paquete default) instalado
  2. Agregar la IP primaria de nuestro cluster como se puede ver en la imagen nosotros agregamos la ip real de nuestro servidor que es 192.160.2.100
  3. Agregar  la ip del Failover de nuestro cluster que en nuestro caso sera la ip del nodo2
  4. Agregar nuestro servidor virtual en este ejemplo vamos a utilizar el puerto 42200 para la entrada al balanceo y utilzaremos el algoritmo de balanceo Round RobinNota: no olvides activar el servidor virtual presionando el boton (active) una ves que termines de configurar el servidor virtual(dando click en la pestañaVirtual server, seleccionando el servidor virtual y presionando el boton que dice (de)active para que ponga el status como “up”)

  5. agrega las direcciones IP de los apaches en Realserver y no olvides activarlos tambien.
  6. por ultimo la pantalla de Monitoring Scripts se queda como estaba por defaul si tu gustas agragar un script o alguna otra cosa pero recomiendo que se quede asi como esta
  7. Por ultimo se tendra que modificar el archivo /etc/sysctl.conf modificando el parametro de autoredireccionamiento
    • net.ipv4.ip_forward = 0
    • ejecutar el comando #sysctl -p que permitira parsear el archivo para escrivirlo en la carpeta /proc

Teniendo estas configuraciones esta listo nuestro servidor Master de piranha ahora continuemos con las configuraciones del failover(esclavo de piranha) este servidor tendra que configurarse solo por consola y poniendo las siguientes lineas de codigo una vez levantado nuestro cluster explicare como es que funciona el envio de paquetes ARP.

  1. #yum install arptables_jf – para instalar el paquete de arp’s los arp’s nos ayudaran a oculatar una IPV que se tendra que levantar en el nodo2 borrando las peticiones por el protocolo tcp(ping’s,peticiones http, ftp etc.) que se hagan a esta misma, en nuestro ejemplo la IPV sera la 192.160.2.106
  2. #arptables -A IN -d 192.160.2.106 -j DROP - esta instruccion para borrar todas las peticiones que se hagan a nuestra IPV
  3. #arptables -A OUT -d 192.160.2.106 -j mangle –mangle-ip-s 192.160.2.101 – linea nos ayudara a responder la peticion http(en nuestro caso de apache) directamente al router sin necesidad de pasar por el nodo master y una ves que llegue la peticion al router este lo enviara al cliente evitando cuellos de botella), la ip 192.160.2.101 sera la direccion ip del servidor en el que estamos como ya savemos el nodo2 tiene esta direccion.
  4. #service arptables_jf save – Salvando los cambios para los arps’s esta instruccion escribira un archivo en /etc/sysconfig/arptables que permitira modificar las reglas dictadas para los arp
  5. #service arptables_jf start – iniciamos el servicio de arp’s
  6. #chkconfig arptables_jf  on – ponemos al servicio que se arranque al iniciar el sistema
Notas adicionales

  • Agregar los siguientes parametros en el archivo /etc/sysctl.conf de los “Real Servers”
    • net.ipv4.conf.all.arp_ignore=1
    • net.ipv4.conf.all.arp_announce=2
    • y ejecutar el comando #sysctl -p que permitira parsear el archivo para escrivirlo en la carpeta /proc
  • modificar el puerto de escucha de apache en el parametro Listen 80 cambiarlo por Listen 42200 en alchivo httpd.conf de tu apache(por default esta en /etc/httpd/conf/httpd.conf)

Advertisement