h1

Parallel Distributed SHell && Wake-On-Lan

12/03/2012

Parallel Distributed SHell

Pdsh es una herramienta orientada a entornos de alto rendimiento que permite la ejecución de comandos en sistemas paralelos. Gracias a esta herramienta podemos realizar operaciones en todos los nodos del cluster con un solo comando. Instalaremos Pdsh para hacer menos monótona la instalación de los paquetes necesarios.

Una de las opciones de Pdsh es la comunicación entre los nodos mediante ssh. Necesitamos crear una clave pública para realizar conexiones ssh sin la necesidad de introducir la contraseña. Detallamos los pasos para ello.

1) Creamos las claves pública y privada.

# ssh-keygen -t rsa -f id_rsa

2) Copiamos la clave pública a todos los nodos.

# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.[2-7]

De esta forma ya podemos hacer conexiones seguras entre los nodos sin necesidad de introducir la contraseña.

3) Instalar Pdsh en el nodo maestro.

# yum -y install pdsh

Para probar si funciona correctamente Pdsh ejecutamos:

# pdsh -w 10.0.0.[2-7] hostname

La salida que da en nuestro caso es:

[root@luxuria ~]# pdsh -w 10.0.0.[2-7] hostname
10.0.0.6: invidia
10.0.0.2: gula
10.0.0.4: acedia
10.0.0.7: superbia
10.0.0.3: avaritia
10.0.0.5: ira

Existe la posibilidad de configurar Pdsh de tal forma que no sea necesario indicar los hosts con el parámetro -w. Por ejemplo, para diferenciar los nodos esclavos del maestro podemos crearnos un fichero /root/slaves e introducir los nombres de los hosts esclavos (uno por cada linea). Mediante la variable de entorno WCOLL indicaremos donde está el fichero. Los comandos para configurar lo anteriormente comentado son los siguientes:

# nano /root/slaves
gula
avaritia
acedia
ira
invidia
superbia

# export WCOLL=/root/slaves

En el caso de que queramos que sean siempre estos hosts añadimos al fichero .bashrc la línea anterior.

Wake-On-Lan

Wake-On-Lan (en adelante WOL) permite iniciar cualquier equipo que esté apagado dentro del cluster. Para ello la placa del nodo debe tener compatibilidad con WOL. Normalmente, en servidores es bastante común esta compatibilidad y no debe de haber ningún problema.

Para instalar WOL en todos los nodos a la vez debemos de seguir los pasos descritos a continuación. Todas las ejecuciones se realizan desde el nodo maestro.

0) Opcional: Desactivar yum-autoupdate. Editar el fichero /etc/sysconfig/yum-autoupdate y cambiar a ENABLED=»false»

nano /etc/sysconfig/yum-autoupdate
ENABLED="false"

1) Instalar ethtool.

# pdsh "yum -y install ethtool"

2) Añadir la variable ETHTOOL_OPTS a los ficheros de configuración de interfaz.

# pdsh 'echo ETHTOOL_OPTS=\"wol g\" >> /etc/sysconfig/network-scripts/ifcfg-eth0'

Ya debería de estar instalado con lo cual la única forma de probar es apuntar las direcciones MAC de todas las interfaces y apagar todos los nodos esclavos. Para ello:

# pdsh "ifconfig eth0 | grep HWaddr | awk '{print $5}'"
# pdsh "shutdown -h now"

3) Instalar net-tools para enviar paquetes mágicos*.

# yum -y install net-tools

4) Finalmente probar el funcionamiento de WOL.

# ether-wake <MAC>

Be Good, Be Green!

Deja un comentario