h1

Torque && Maui

09/04/2012

Preparaciones previas

En primer lugar deberemos instalar las librerías de desarrollo. De esta forma podremos compilar las fuentes del gestor de colas Torque y del planificador de tareas Maui.

# yum -y groupinstall 'Development Tools'
# pdsh "yum -y groupinstall 'Development Tools'"
# yum -y install openssl-devel
# pdsh "yum -y install openssl-devel"

Incluir en el PATH el directorio compartido para poder utilizar los ficheros binarios instalados en el directorio NFS. Añadir los siguientes exports al fichero bashrc.

# nano /etc/bashrc
export PATH=/opt/share/bin:/opt/share/sbin:$PATH
export LD_LIBRARY_PATH=/opt/share/lib:$LD_LIBRARY_PATH

Torque 4.0.0

Torque es un administrador de recursos Open Source. Permite el control de trabajos mediante el uso de colas en entornos distribuidos. El proyecto se mantiene a través de una comunidad consolidada y partiendo como base del proyecto PBS. Ha incorporado importantes avances en las áreas de escalabilidad, tolerancia a fallos y las extensiones de funciones.

A continuación se detallan los pasos para la instalación de torque.

Compilar e instalar torque

$ wget http://www.adaptivecomputing.com/resources/downloads/torque/torque-4.0.0.tar.gz
$ tar xvzf torque-4.0.0.tar.gz
$ cd torque-4.0.0
$ ./configure --prefix=/opt/share --with-scp --enable-syslog
$ make
# make install

El directorio de instalación indicado en el parámetro prefix dependerá de las necesidades de cada usuario. Debido a que será un cluster compartido por muchas personas no se pretende mezclar software y servicios de los usuarios.

Configurar torque

1) Agregar la siguiente entrada al firewall.

# iptables -A INPUT -p tcp --dport 15001 -j ACCEPT
# iptables -A INPUT -p tcp --dport 15005 -j ACCEPT
# service iptables save
# service iptables restart

2) En la versión 4.0 de Torque necesitamos ejecutar previamente trqauthd. trqauthd es un demonio utilizado por los programas clientes de cada nodo para autorizar conexiones de usuario hacia el servidor ejecutado en el nodo maestro. Las utilidades de los clientes se comunican con trqauthd en el puerto 15005 en la interfaz loopback. Es multi-threaded y puede manejar grandes volúmenes de peticiones simultáneas.

# trqauthd

3) Configurar torque ejecutando el siguiente script. Tras ejecutar saldrá un mensaje indicando que la configuración será sobreescrita. Escribir ‘y’ y pulsar intro.

# ./torque.setup root

4) Crear paquetes de instalación para los nodos clientes.

# make packages
# mkdir ../torque-client
# cp *.sh ../torque-client

5) Añadir los hostnames de las máquinas del cluster al fichero /var/spool/torque/server_priv/nodes.

# nano /var/spool/torque/server_priv/nodes
luxuria
gula
avaritia
acedia
ira
invidia
superbia

6) Editar el fichero /var/spool/torque/mom_priv/config.
nano /var/spool/torque/mom_priv/config

# MOM server configuration file
# if more than one value, separate
# rule is defined by the name
# host allowed to connect to mom server on privileged port
# note: IP address of host running pbs_server it by comma.
$pbsserver 10.0.0.1
$clienthost luxuria
##ideal processor load and max processor load
$ideal_load 8
$max_load 9
## host allowed to connect to Mom server on unprivileged port
#Specifies hosts which can be trusted to access mom services as non-root.
#By default, no hosts are trusted to access mom services as non-root.
$restricted luxuria gula avaritia acedia ira invidia superbia
## Log event :
# 0x1ff : log all events + debug events
# 0x0ff : just all events
$logevent 255
## alarm if the script hang or take very long time to execute
$prologalarm 300
## Specifies which directories should be staged
$usecp 10.0.0.1:/home /home

7) Reiniciar pbs_server y copiar los ficheros necesarios para ejecutar torque en tiempo de arranque.

# pbs_server
# cp contrib/init.d/pbs_* /etc/init.d

8) Modificar el fichero de inicio del demonio pbs_server solo si se ha modificado el directorio de instalación de torque mediante el parámetro prefix. En mi caso procedo a modificar las siguientes líneas.

# nano /etc/init.d/pbs_server
SBIN_PATH=/opt/share/sbin
BIN_PATH=/opt/share/bin

9) Añadir la ejecución de pbs_server en el arranque del sistema.

# chkconfig --add pbs_server
# chkconfig --level 3456 pbs_server on

10) Reiniciar torque.

# qterm
# service pbs_server start

Maui 3.3.1

Compilar e instalar Maui

Para descargar Maui es necesario registrarse en la web de adaptative computing. Tras el registro podemos obtener las fuentes directamente desde la página de descarga de Maui

¡ATENCIÓN! La versión 3.3.1 de Maui todavía no es compatible con la versión 4.0.0 de Torque. Por lo tanto existe un pequeño bug que lo he solucionado creando el siguiente parche.

$ tar xvzf maui-3.3.1.tar.gz
$ cd maui-3.3.1

Si la versión de Torque es la 4.0.0 copiar el parche mencionado anteriormente en el directorio raíz de maui y aplicarlo con la siguiente sentencia. En caso contrario, pasar directamente al configure.

patch -p0 -i maui.patch

$ ./configure --prefix=/opt/share --with-pbs=/opt/share
$ make
# make install
# cp etc/maui.d /etc/init.d/

Editar el fichero maui.d. Modificar la variable e indicar el mismo directorio que la variable prefix que se usó en configure.
# nano /etc/init.d/maui.d
MAUI_PREFIX=/opt/share

Configurar Maui

1) Editar el fichero maui.cfg.
+ Añadir linea.
* Modificar línea.
# nano /usr/local/maui/maui.cfg
* ADMIN1 jose.casero
ADMIN1 root
-
* #RMCFG[LUXURIA] TYPE=PBS
RMCFG[0] TYPE=PBS HOST=luxuria
-
* #NODEALLOCATIONPOLICY MINRESOURCE
NODEALLOCATIONPOLICY FIRSTAVAILABLE
-
+ DEFERTIME 0
+ JOBMAXOVERRUN 00:05:00
+ ENABLEMULTIREQJOBS TRUE
+ ENABLEMULTINODEJOBS TRUE
+ JOBNODEMATCHPOLICY EXACTNODE
+ NODEACCESSPOLICY SHARED
+ USERCFG[DEFAULT] MAXNODE=3

2) Iniciar el servicio y registrarlo en el arranque.

# service maui.d start
# chkconfig --add maui.d
# chkconfig --level 3456 maui.d on
# chkconfig --list maui.d

Configuración adicional de Torque

Ejecutar qmgr e introducir las siguientes líneas.

# qmgr
create queue batch
set queue batch queue_type = Execution
set queue batch resources_default.nodes = 1
set queue batch resources_default.walltime = 01:00:00
set queue batch enabled = True
set queue batch started = True
set server scheduling = True
set server default_queue = batch
set server log_events = 511
set server query_other_jobs = True
set server scheduler_iteration = 600
set server node_check_rate = 150
set server tcp_timeout = 6
set server job_stat_rate = 45
set server poll_jobs = True
set server mom_job_sync = True
set server keep_completed = 0
set server next_job_number = 17
set server moab_array_compatible = True

Configuración de nodos de cómputo

Configurar los nodos de cómputo desde el nodo maestro a través de Pdsh. A continuación se describe el procedimiento.

1) Instalar torque en los nodos de cómputos.

# pdsh "/home/jose.casero/torque-client/torque-package-clients-linux-x86_64.sh"
# pdsh "/home/jose.casero/torque-client/torque-package-mom-linux-x86_64.sh --install"
# pdsh 'echo "\$usecp" 10.0.0.1:/home /home >> /var/spool/torque/mom_priv/config'

2) Editar el fichero de inicio del demonio pbs_mom solo si se ha modificado el directorio de instalación de torque mediante el parámetro prefix. En mi caso procedo a modificar las siguientes líneas.

# nano contrib/init.d/pbs_mom
SBIN_PATH=/opt/share/sbin

3) Copiar el fichero de inicio del demonio en tiempo de arranque de los nodos.

# pdsh "cp /home/jose.casero/torque-4.0.0/contrib/init.d/pbs_mom /etc/init.d"

4) Iniciar el demonio de pbs_mom.

# pdsh service pbs_mom start

5) Añadir la ejecución de pbs_mom en el arranque del sistema.

# pdsh chkconfig --add pbs_mom
# pdsh chkconfig --level 3456 pbs_mom on

6) Probar que todo funcione correctamente!!

$ echo "sleep 30" | qsub

Be Good, Be Green!

Deja un comentario