WALC2012 Alta Disponibilidad y Virtualización con soluciones de bajo costo lvs-DR Descripción General En este laboratorio configuraremos Linux Virtual Server (lvs) en modo Direct Routing (DR) de esta forma lograremos el balanceo de carga entre diferentes servidores Web. Pueden existir más Servidores reales Aunque sencillo este concepto es muy útil cuando pensamos en servicios de alta disponibilidad y alto rendimiento. Recomendaciones • Durante el desarrollo de las actividades de laboratorio tendrá los privilegios de administración del usuario root de cada servidor. Consulte a los instructores ante cualquier duda que pudiera surgir. • Trabaje en equipo, de esta forma avanzaremos mas rápido y alcanzaremos los objetivos de cada actividad de laboratorio. • Transcriba los comandos que aparecen en cada guiá de laboratorio en el shell que esta usando (en algunas partes la fuente usada para generar este documento guiá no siempre es compatible con la fuente del shell) Octubre 2012 lvs-DR WALC2012 Alta Disponibilidad y Virtualización con soluciones de bajo costo Desarrollo de Laboratorio 1. Configurando el servidor Director a) Instalamos la aplicación que nos permite configurar y administrar la tabla de servidores: # aptitude install ipvsadm b) Activamos la opción que permita el reenvió de paquetes IP: # echo 1 > /proc/sys/net/ipv4/ip_forward # sysctl -p deberíamos obtener una salida como la siguiente indicando que el reenvió de paquetes esta activo: # net.ipv4.ip_forward = 1 c) Configuremos la dirección IP virtual. Primero verificamos cual es la dirección IP real del Director y según sea el caso configurar la dirección IP virtual. Veamos un ejemplo: # ifconfig eth0 Link encap:Ethernet HWaddr 00:10:18:55:c9:48 inet addr:192.168.0.17 Bcast:192.168.1.255 Mask:255.255.254.0 inet6 addr: fe80::210:18ff:fe55:c948/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:96 errors:0 dropped:0 overruns:0 frame:0 TX packets:98 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:16950 (16.5 KiB) TX bytes:14039 (13.7 KiB) Interrupt:17 En este ejemplo la dirección IP real es 192.168.0.17 por lo tanto la dirección IP virtual seria 192.168.0.117 y la configuramos con: # ifconfig eth0:0 192.168.0.117 netmask 255.255.254.0 broadcast 192.168.1.255 d) Configuremos la tabla de servidores Linux: # ipvsadm -A -t 192.168.0.117:80 -s rr e) Agreguemos a la tabla la dirección de los servidores reales (en este caso son los demas PC de su grupo de laboratorio): # ipvsadm -a -t 192.168.0.117:80 -r 192.168.0.18:80 -g # ipvsadm -a -t 192.168.0.117:80 -r 192.168.0.19:80 -g Octubre 2012 lvs-DR WALC2012 Alta Disponibilidad y Virtualización con soluciones de bajo costo 2. Configurando los Servidores Reales f) Instalamos el servicio Web usando apache2: # apt-get install apache2 g) En cada servidor editemos el archivo index.html para identificar cada uno de los servidores. Por ejemplo para el Servidor Real 1: # cd /var/www/ # vim index.html 1. Debería quedar de la siguiente forma: <html><body><h1>Servidor Real 1</h1> <p>This is the default web page for this server.</p> <p>The web server software is running but no content has been added, yet.</p> </body></html> 2. Reiniciemos el servicio de apache2: # /etc/init.d/apache2 restart h) Activamos la opción que permita el reenvió de paquetes IP: # echo 1 > /proc/sys/net/ipv4/ip_forward # sysctl -p i) Configuremos la dirección IP virtual pero ahora en cada Servidor Real. Siguiendo con el ejemplo anterior: # ifconfig lo:0 192.168.0.117 netmask 255.255.255.255 3. Probando lvs-DR j) Verificamos la tabla de servidores Linux en el Director: # ipvsadm -l --stats Debería obtener una salida como la siguiente: IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Conns -> RemoteAddress:Port TCP 192.168.0.17:www 28 -> 192.168.0.18:www 14 -> 192.168.0.19:www 14 Octubre 2012 InPkts OutPkts 28 14 14 0 0 0 InBytes OutBytes 1672 832 840 0 0 0 lvs-DR WALC2012 Alta Disponibilidad y Virtualización con soluciones de bajo costo k) Para seguir probando es necesario que desde una PC que funcione como cliente se abran diferentes pestañas del navegador con el URL: http://192.168.0.117 Mientras más pestañas (conexiones http) abra y las actualice constantemente se mostrara la conexión de forma alternada a los Servidores Reales. Baje el servicio de apache2 en alguno de los servidores mientras navega y verifique que se esta usando el otro servidor que aun tiene apache2 corriendo. Verifique constantemente en el Director la tabla de servidores Linux y compare como varia el numero de conexión a cada servidor (cuando trabajan los dos servidores y cuando trabaja solo uno) Octubre 2012 lvs-DR