Jan 6, 2009

Parámetros iniciales del cluster

En el artículo anterior, presenté el esquema general del sistema de Alta Disponibilidad y Balanceo de Carga que voy a desarrollar a lo largo de las próximas semanas.

Cada una de las máquinas que componen el cluster va a tener instalado como sistema operativo una Ubuntu Server 8.10. Los dos nodos frontales (HA1 y HA2) dispondrán cada uno de ellos de dos tarjetas de red (eth0 y eth1), y los dos nodos traseros (LB1 y LB2), una única tarjeta de red (eth0).

En primer lugar, vamos a configurar el nombre de cada uno de los nodos a través del fichero /etc/hostname.

root@ha1:~# cat /etc/hostname
ha1

root@ha2:~# cat /etc/hostname
ha2

root@lb1:~# cat /etc/hostname
lb1

root@lb2:~# cat /etc/hostname
lb2


A continuación vamos a especificar en el archivo /etc/hosts de cada una de las máquinas, el nombre y dirección o direcciones IP de cada uno de los equipos involucrados en el cluster.

root@ha1:~# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 ha1


192.168.1.10 ha1.micasa.com ha1
10.0.0.10 ha1.micasa.com ha1
192.168.1.11 ha2.micasa.com ha2
10.0.0.11 ha2.micasa.com ha2
10.0.0.12 lb1.micasa.com lb1
10.0.0.13 lb2.micasa.com lb2
...


root@ha2:~# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 ha2


192.168.1.10 ha1.micasa.com ha1
10.0.0.10 ha1.micasa.com ha1
192.168.1.11 ha2.micasa.com ha2
10.0.0.11 ha2.micasa.com ha2
10.0.0.12 lb1.micasa.com lb1
10.0.0.13 lb2.micasa.com lb2
...


root@lb1:~# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 lb1


10.0.0.10 ha1.micasa.com ha1
10.0.0.11 ha2.micasa.com ha2
10.0.0.12 lb1.micasa.com lb1
10.0.0.13 lb2.micasa.com lb2
...


root@lb2:~# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 lb2


10.0.0.10 ha1.micasa.com ha1
10.0.0.11 ha2.micasa.com ha2
10.0.0.12 lb1.micasa.com lb1
10.0.0.13 lb2.micasa.com lb2
...


Después vamos a establecer las direcciones IP de cada uno de los nodos, así como el gateway que utilizarán por defecto. Para el caso de los dos nodos traseros, este gateway será la dirección IP 10.0.0.20, es decir, la dirección IP virtual que tendrá levantada el nodo activo (HA1 o HA2) en su interfaz de red eth1.

root@ha1:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1

auto eth1
iface eth1 inet static address 10.0.0.10
netmask 255.255.255.0

root@ha2:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static address 192.168.1.11
netmask 255.255.255.0
gateway 192.168.1.1

auto eth1
iface eth1 inet static address 10.0.0.11
netmask 255.255.255.0

root@lb1:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static address 10.0.0.12
netmask 255.255.255.0
gateway 10.0.0.20

root@lb2:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static address 10.0.0.13
netmask 255.255.255.0
gateway 10.0.0.20

El siguiente paso va a ser habilitar el flujo de paquetes entre los interfaces eth0 y eth1 de los dos nodos frontales. Para ello tendremos que activar el ip_forward dentro del fichero /etc/sysctl.conf.

root@ha1:~# cat /etc/sysctl.conf
...
net.ipv4.ip_forward=1
...

root@ha2:~# cat /etc/sysctl.conf
...
net.ipv4.ip_forward=1
...


Y para hacer que este cambio se quede permanente en las sucesivas veces que arranque el equipo (si no tomaría su valor por defecto, 0, desactivado), ejecutaremos el siguiente comando en ambos nodos.

root@ha1:~# sysctl -p

root@ha2:~# sysctl -p


Y ya por último, sólo nos queda por conseguir que los cuatro nodos del cluster estén siempre sincronizados horariamente. Para ello haremos que actualicen su hora periódicamente contra un servidor NTP externo. Dentro del fichero /etc/crontab definiremos una tarea que se ejecutará cada 60 minutos y que básicamente lo único que hará será actualizar la hora del sistema mediante el comando ntpdate.

root@ha1:~# cat /etc/crontab
...
0 * * * * root ntpdate pool.ntp.org

root@ha2:~# cat /etc/crontab
...
0 * * * * root ntpdate pool.ntp.org

root@lb1:~# cat /etc/crontab
...
0 * * * * root ntpdate pool.ntp.org

root@lb2:~# cat /etc/crontab
...
0 * * * * root ntpdate pool.ntp.org

No comments:

Post a Comment