Wakeonlan y Boot del Cluster
Wakeonlan
Para que funcione wakeonlan se necesita :
- Una placa de red que soporte wakeonlan
- Una bios y fuente que soporte wakeonlan
- Inicializacion del estado wakeonlan por parte del OS (Para windows significa ir a propiedades "avanzadas" de la placa de red y tildar "aceptar magic packet desde el estado apagado").
Encender el Cluster del Aula 1
Para encender los nodos del cluster del Aula 1 :
for i in 00:27:0e:0e:e3:96 00:27:0e:0e:e3:df 00:27:0e:0e:e3:e6 00:27:0e:1e:4c:c9 00:27:0e:0e:e3:e0 \ 00:27:0e:0e:e3:e1 00:27:0e:0e:e9:bd 00:27:0e:1e:4b:6c 00:27:0e:0e:e3:e9 00:27:0e:0e:e5:64 \ 00:27:0e:0e:e4:22 00:27:0e:0e:e5:5f 00:27:0e:0e:e3:a3 00:27:0e:0e:e3:c8 00:27:0e:0e:e5:56 \ 00:27:0e:0e:e9:94 00:d0:09:35:af:f7 00:d0:09:14:59:aa 00:00:21:77:53:06 00:08:54:03:7b:a4 ; do wakeonlan $i done
Luego de encender los nodos del cluster y pasados 3 minutos los nodos inician el bootmaster loco. El bootmaster loco obtiene via wget el script /var/www/scripts/hacer.sh desde repoubu, y lo ejecuta.
Al momento de querer utilizar el cluster debemos editar ese script y establecer los comandos kexec para iniciar los nodos con la imagen ubuntu de 64 bits.
Para editar ese script (/var/www/scripts/hacer.sh) en repoubu (10.0.5.7) debemos utilizar el usuario bootmaster.
El script tiene algunos ejemplos de los comandos kexec. Un ejemplo basico podria ser :
# Ejemplo para iniciar el Linux de la particion 7 (actualmente un ubuntu 64 bits para cluster) MAC=$(ifconfig | grep eth | sed -e "s/..$//" | sed -e "s/.* //") # Aula 1 MACs if ( echo "00:27:0e:0e:e3:96 00:27:0e:0e:e3:df 00:27:0e:0e:e3:e6 00:27:0e:1e:4c:c9 00:27:0e:0e:e3:e0 \ 00:27:0e:0e:e3:e1 00:27:0e:0e:e9:bd 00:27:0e:1e:4b:6c 00:27:0e:0e:e3:e9 00:27:0e:0e:e5:64 \ 00:27:0e:0e:e4:22 00:27:0e:0e:e5:5f 00:27:0e:0e:e3:a3 00:27:0e:0e:e3:c8 00:27:0e:0e:e5:56 \ 00:27:0e:0e:e9:94 00:d0:09:35:af:f7 00:d0:09:14:59:aa 00:00:21:77:53:06 00:08:54:03:7b:a4" | grep $MAC ) ; then mount /dev/sda7 /mnt kexec --initrd=/mnt/boot/initrd.img-2.6.35-28-generic --append="root=/dev/sda7 ro" -l /mnt/boot/vmlinuz-2.6.35-28-generic && kexec -e fi # Ejemplo para ejecutar cosas de este script entre las 10 de la noche y las 7AM # HORA=`date +%H` # if [ 22 -lt $HORA ] || [ $HORA -lt 7 ] ; then # echo "HPC time!" # #else # echo "esperar :(" # # fi