Clusters

‘One Node to rule them all,
one Node to find them,
one Node to bring them all
and in the process bind them

En las reuniones del Gluch de Julio y Agosto 2005, Larry © nos ha hablado de el proceso para la implementación de un clúster ”Beowful”, he aquí una breve reseña de lo visto en las dos reuniones.

Un clúster es un grupo de computadoras conectadas a una red de alta velocidad que trabajan de manera simultanea como si fueran una computadora con múltiples procesadores.

Existen tres tipos de clusters:

Homogeneos: son aquellos en que todos los nodos cuentan con la misma configuración de hardware y sistema operativo

Semihomogeneos: cuentan con sistema operativo similar y diferentes arquitecturas o rendimiento y, por último los clusters

Heterogeneos: que cuentan con diferente hardware y sistema operativo.

La implementación a grandes razgos es la siguiente:

Nodo principal:

* Dar de alta las tarjetas de red, una para la intercomunicación con los nodos del clúster y (de ser necesario) una más para el acceso a internet.

Linux console
$ ifconfig eth0
$ ifconfig eth1

* Modificar el archivo “**/etc/hosts**” para definir los nodos del clúster:

Linux console
$ emacs /etc/hosts127.0.0.1 localhost.localdomain localhost 192.168.1.1 nodo1.dominio nodo1
192.168.1.2 nodo2.dominio nodo2 192.168.1.3 nodo3.dominio nodo3

nodo1 corresponde al nodo principal del clúster

* Modificar la configuración para el daemon DHCP, para la asignación dinámica de las direcciones IP de los nodos, en “**/etc/dhcpd.conf**”

Linux console
$ emacs /etc/dhcpd.confoption domain-name ”dominio”; option domain-name-server 192.168.1.1;
option broadcast-address 192.168.1.255; option routers 192.168.1.254;

boot-unknow-clients false;

subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.2 192.168.1.253 }

host nodo2.dominio # una entrada para cada nodo del clúster
{ hardware ethernet 00:00:00:00:00:01;
fixed-address 192.168.1.2;
option host-name ”nodo2”; }

host nodo3.dominio
{ hardware ethernet 00:00:00:00:01:02;
fixed-address 192.168.1.3;
noption host-name ”nodo3”; }

* Se configura NFS (Network File System) para permitir que los nodos accedan a archivos remotos (de otro nodo) como si fueran locales. Puede ser el directorio “**/home**” o el directorio “**/usr**” (o cualquier otro) del nodo principal, editando el archivo “**/etc/exports**”

Linux console
$ emacs /etc/exports/raiddrive/compartido *.dominio(rw,root_squash)
/home 192.168.1.*(rw,no_root_squash)

Y ejecuta el comando

Linux console
$ exporfs -av

Para permitir que el sistema de archivos del nodo principal pueda ser montado por otro nodo del clúster.

* Configuración de NIS (Network Information Service) servicio que proporciona la información que debe ser conocida por todos los nodos del cluster.

Teclea:

Linux console
$ domainname nombre_de_dominio

A continuación declara el dominio en el archivo “**/etc/sysconfig/network**” agregando la lí­nea:

Linux console
$ emacs /etc/sysconfig/networkNISDOMAIN=nombre_de_dominio

Edita el archivo “**/etc/yp.conf**” y agrega:

Linux console
$ emacs /etc/yp.confdomain nombre_de_dominio 192.168.1.1 ypserver 192.168.1.1

En el archivo “**/var/yp/securenets**” reemplaza la línea con “0.0.0.0 0.0.0.0” con:

Linux console
$ emacs /var/yp/securenets255.255.255.0 192.168.1.0

Modifica el archivo “**/etc/passwd**” y agrega la lí­nea “**+::::::**”

Reinicia los servicios relacionados con yp.

En el directorio “**/var/yp**” ejecuta **__make__**

Por último habilita el orden de búsqueda: **”order hosts, NIS, dns”**.

Nodos Realiza este proceso para cada uno de los nodos del clúster.

* Modificar el archivo “**/etc/sysconfig/network**” para que contenga lo siguiente:

Linux console
$ emacs /etc/sysconfig/networkNETWORKING=yes HOSTNAME=nodo2 #cambiar el nombre según el nodo que corresponda
GATEWAY=192.168.1.254 GATEWAYDEV=eth0 FORWARD_IPV4=no

* Modificar el archivo “**/etc/hosts**” para definir los nodos del clúster:

Linux console
$ emacs /etc/hosts127.0.0.1 localhost.localdomain localhost 192.168.1.1 nodo1.dominio nodo1
192.168.1.2 nodo2.dominio nodo2 192.168.1.3 nodo3.dominio nodo3

* Configuración de NFS, edite el archivo “**/etc/fstab***”; para que refleje los directorios que previamente fueron declarados en el archivo “**/etc/exports**” del nodo principal:

Linux console
$ emacs /etc/fstabnodo1:/home /home nfs rw, rsize=4096, wsize=4096, hard, intr 0 0

* Configuración de NIS

Teclea:

Linux console
$ domainname nombre_de_dominio

A continuación declara el dominio en el archivo “**/etc/sysconfig/network**” agregando la lí­nea:\r\nNISDOMAIN=nombre_de_dominio

Edita el archivo “**/etc/yp.conf**” y agrega:

Linux console
$ emacs /etc/yp.confdomain nombre_de_dominio 192.168.1.1 ypserver 192.168.1.1

Modifica el archivo “**/etc/passwd**” y agrega la lí­nea “**+::::::**”

Reinicia los servicios relacionados con yp.

Por último habilita el orden de búsqueda: **”order hosts, NIS, dns”**.

* Configuración de SSH (Secure SHell), la configuración de SSH es necesaria debido a que los nodos realizarán accesos entre sí:

Generá la llave “**ssh-keygen**” y a continuación presiona la tecla **Enter** en tres ocasiones paea que SSH no solicite la contraseña y dé acceso automático a los nodos.

Copia **identity.pub** de “**/root/.ssh**” a “**/root/.ssh/authorized_keys**”

En el archivo “**/root/.ssh/authorized_keys**” reemplaza la dirección ip de **root** con “*\”.

Copia el “**/root/.ssh**” al directorio compartido con NFS y de ahí­ al directorio **/root** de cada nodo.

No olvides reiniciar cada uno de los servicios que hayas modificado para que los cambios sean reflejados, además de modificar la configuración de los nodos para que los servicios requeridos sean iniciados automaticamente cuando el equipo sea encendido.

Listo, ahora puedes implementar tu clúster basado en Linux.

About javier

Mexicano, Ingeniero en Sistemas egresado del Instituto Tecnológico de Durango, Maestro en Software Libre por la Universidad Autónoma de Chihuahua. Apasionado de medio tiempo de la fotografía y guitarrista de closet.
This entry was posted in FLOSS, GNU/Linux, Sistemas Operativos. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *