Diferencia entre revisiones de «Cluster de alta disponibilidad y espejo con Ubuntu 7.04»

Contenido eliminado Contenido añadido
Todabia editando articulo no terminado
 
Sin resumen de edición
Línea 84:
:Ultramonkey es un paquete para implementar balanceadores de carga y servicios de alta disponibilidad en una red de área local, usando componentes de fuente abierta en el sistema operativo Linux.
:Este paquete provee Heartbeat, el software de alta disponibilidad a utilizar (usado por los balanceadores de carga para monitorizarse entre ellos y verificar cual de ellos esta activo) y ldirectord el actual balanceador de carga.
:Para instalar Ultramonkey se necesita editar el siguiente archivo: sources.list.
Para acceder a dicho archivo digitamos en consola como usuario root lo siguiente:
 
gedit /etc/apt/sources.list
Línea 119:
 
 
- '''Permitir la expedición de paquetes'''
 
 
 
 
Permitir la expedición de paquetes
 
Los balanceadores de carga necesitan ser capaces de dirigir o enrutar el tráfico para los nodos apache, por lo tanto debemos permitir la expedición de paquetes en los balanceadores de carga. Para ello debemos modificar el archivo sysctl.conf
Línea 135 ⟶ 132:
Agregamos lo siguiente al archivo:
# Enables packet forwarding
net.ipv4.ip_forward = 1
 
Para probar la configuración digitamos lo siguiente en consola:
 
 
sysctl -p
 
 
 
Nos dará como respuesta:
 
kernel.printk = 4 4 1 7
kernel.maps_protect = 1
fs.inotify.max_user_watches = 524288
vm.mmap_min_addr = 65536
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.ip_forward = 1
 
 
 
- '''Configuración de Hearbeat'''
 
:Ahora tenemos que crear tres archivos de configuración para heartbeat. Estos deben ser idénticos en ambos balanceadores de carga.
 
Para la creación de dichos archivos seguir los siguientes pasos:
Línea 165 ⟶ 162:
 
 
gedit /etc/ha.d/ha.cf
 
Digitar el siguiente contenido al archivo:
 
logfacility local0
bcast eth0 # Linux
mcast eth0 225.0.0.1 694 1 0
auto_failback off
node loadb1
node loadb2
respawn hacluster /usr/lib/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster
 
 
Línea 246 ⟶ 243:
ldirectord stop
/etc/init.d/heartbeat start
• Configuración de Nodos Apache
 
Instalación de LAMP
Instalación del servicio web, utilizaremos LAMP server (Apache2, mysql,php)
 
:* '''Configuración de Nodos Apache'''
 
 
:- '''Instalación de LAMP'''
 
Instalación del servicio web, utilizaremos LAMP server (Apache2, mysql,php)
Para la instalación utilizaremos Synaptic.
Línea 261:
Después de esto solo le damos aplicar y ya tendremos instalado el servicio.
 
: - '''Configuración de la IP virtual'''
 
:Finalmente debemos configurar los nodos servidores con el servicio apache disponible de nuestro cluster que aceptaran las peticiones en que llegan a través de la dirección IP virtual.
Para llevar a cabo tal tarea seguimos los siguientes pasos en ambos nodos servidores, digitando en consola los comandos indicados a continuación:
 
apt-get install iproute
 
 
Línea 272 ⟶ 273:
 
 
gedit /etc/sysctl.conf
 
y copiar el siguiente contenido al archivo:
 
# Enable configuration of arp_ignore option
net.ipv4.conf.all.arp_ignore = 1
# When an arp request is received on eth0, only respond if that address is
# configured on eth0. In particular, do not respond if the address is
# configured on lo
net.ipv4.conf.eth0.arp_ignore = 1
# Ditto for eth1, add for all ARPing interfaces
#net.ipv4.conf.eth1.arp_ignore = 1
# Enable configuration of arp_announce option
net.ipv4.conf.all.arp_announce = 2
# When making an ARP request sent through eth0 Always use an address that
# is configured on eth0 as the source address of the ARP request. If this
# is not set, and packets are being sent out eth0 for an address that is on
# lo, and an arp request is required, then the address on lo will be used.
# As the source IP address of arp requests is entered into the ARP cache on
# the destination, it has the effect of announcing this address. This is
# not desirable in this case as adresses on lo on the real-servers should
# be announced only by the linux-director.
net.ipv4.conf.eth0.arp_announce = 2
# Ditto for eth1, add for all ARPing interfaces
#net.ipv4.conf.eth1.arp_announce = 2
 
Para comprobar configuración digitamos lo siguiente:
Línea 306 ⟶ 307:
 
 
gedit /etc/network/interfaces
 
 
Agregamos el siguiente texto:
 
auto lo:0
iface lo:0 inet static
address 192.168.1.105
netmask 255.255.255.255
pre-up sysctl -p > /dev/null
 
Entonces ejecutamos lo siguiente en ambos servidores:
 
ifup lo:0
 
 
Línea 325 ⟶ 326:
Finalmente debemos crear el archivo ldirector.html. en ambos nodos servidores. Este archivo es invocado repetidamente por ambos nodos balanceadores de carga de esta manera pueden ver si ambos nodos Apache están corriendo. Para crear el archivo digitamos lo siguiente en consola de ambos servidores apache:
 
gedit /var/www/ldirector.html
 
y escribimos un texto de prueba:
 
Test Page
• Pruebas de funcionamiento
 
Después de las configuraciones probaremos que tanto los balanceadores de carga como los servidores web estén funcionando correctamente.
 
:* '''Pruebas de balanceadores de cargafuncionamiento'''
 
::Después de las configuraciones probaremos que tanto los balanceadores de carga como los servidores web estén funcionando correctamente.
 
:'''Pruebas de balanceadores de carga'''
 
Para las pruebas de funcionamiento de los balanceadores de carga lo aremos en base a valores esperados de comandos de comprobación del estado del servicio.
 
'''ip addr sh eth0'''
 
El balanceador de carga activo debe mostrar la lista de dirección IP virtual
Línea 354 ⟶ 357:
inet 192.168.0.104/24 brd 192.168.0.255 scope global eth0
 
'''ldirectord ldirectord.cf status'''
 
La salida en el balanceador de carga activo debe ser:
ldirectord for /etc/ha.d/ldirectord.cf is running with pid: 1455
Línea 362 ⟶ 364:
ldirectord is stopped for /etc/ha.d/ldirectord.cf
'''ipvsadm -l -n'''
La salida en el balanceador de carga activo tendría que ser:
IP Virtual Server version 1.2.1 (size=4096)
Línea 376 ⟶ 378:
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
 
'''/etc/ha.d/resource.d/LVSSyncDaemonSwap master status'''
 
La salida en el balanceador de carga es:
Línea 388 ⟶ 391:
 
 
:'''Pruebas de Servidores WEB'''
 
La prueba de los servidores web se vuelve un poco más sencilla dado que solo se debe que comprobar que este escuchando la IP virtual por lo tanto al acceder a la IP virtual 192.168.1.105 desde el servidor debe mostrar su propia página predeterminada por apache.
Línea 396 ⟶ 399:
 
 
:'''Pruebas de alta disponibilidad del cluster'''
 
::Para efectos de verificar en todo el tiempo cual de los servidores esta dando el servicio en la pagina de prueba estará reflejado en que servidor se esta ejecutando y desde el lado del el cliente se accederá al servicio siempre por la IP virtual 192.168.1.105.
• Pruebas de alta disponibilidad del cluster
 
Para efectos de verificar en todo el tiempo cual de los servidores esta dando el servicio en la pagina de prueba estará reflejado en que servidor se esta ejecutando y desde el lado del el cliente se accederá al servicio siempre por la IP virtual 192.168.1.105.
 
1. Fallo de un servidor WEB
:Cuando falla un servidor WEB simplemente se sacara de la lista de servidores disponibles y el servicio quedara funcionando en el otro servidor WEB
 
2. Fallo de un balanceador de carga
:En el momento que falle el balanceador de carga activo el balanceador de carga pasivo tomara el rol de balanceador de carga activo siendo el que redirigirá el trafico de la IP virtual.
 
3. Fallo de un servidor WEB y un Balanceador de carga
:Se combinan las situaciones 1 y 2 por lo que se sacara el servidor WEB de la lista y al balanceador pasivo pasa a estado activo.
 
4. Fallo de los dos servidores WEB
:Al no quedar servidor WEB activo pasa el balanceador activo a tomar el papel de servidor WEB de respaldo y de nodo balanceador.
 
5. Fallo de los dos servidores WEB y un balanceador de carga
:Este es el punto crítico de la alta disponibilidad pues no existen más posibilidades de tolerancia a fallas pues solo queda el balanceador como servidor de respaldo