terça-feira, 10 de março de 2009

Instalação e Configuração do Torque PBS e Maui no Debian Lenny

Instalando no Debian Lenny:
Baixe a última versão em
http://www.clusterresources.com/downloads/torque/. Utilizaremos o torque-2.3.3.tar.gz

Baixando e descompactando:
loki:~# wget http://www.clusterresources.com/downloads/torque/torque-2.3.3.tar.gz

loki:~# tar xzvf torque-2.3.3.tar.gz

Entre no diretório onde o Torque foi descompactado:
loki:~# cd torque-2.3.3

Iniciaremos o ./configure com as seguintes opções:
–with-default-server : especifica o nó mestre, ele irá rodar o torque como servidor (pbs_server)
–with-server-home : indica qual será o diretório onde os torque será instalado. Escolhi como /var/cluster/pbs
–with-rcp=scp : indica qual será o mecanismo padrão de cópia de arquivos.
–enable-server : habilita a criação dos pacotes para o servidor
–enable-clients : habilita a criação dos pacotes para os clientes

# ./configure --with-default-server=thinserv \
--with-server-home=/var/cluster/pbs \
--with-rcp=scp \
--enable-server \
--enable-monitor \
--enable-clients

Agora iniciaremos a instalação e criação dos pacotes para a instalação nos clientes e uma possível futura reinstalação do servidor.

# make
# make install
# make packages

Os binários do Torque estarão em /usr/local/bin e /usr/local/sbin

Para inicializar o servidor Torque é necessário criar a base de dados para os jobs:
pbs_server -t create

Agora, se executarmos ps aux | grep pbs, veremos que servidor está sendo executado. Entretando, se executarmos o comando para listar as filas (queues) e seu status,
qstat -a

não veremos nada, porque as filas ainda não foram criadas. Para iniciar a configuração das filas para o torque, precisamos do qmgr, que é uma interface para o batch system. Podemos executá-lo:
qmgr

Para iniciá-lo no modo interativo ou podemos entrar com os comandos, um por linha:
Configuração padrão para o cluster:

#
# Create queues and set their attributes.
#
# Create and define queue batch
#
qmgr -c "create queue batch"
qmgr -c "set queue batch queue_type = Execution"
qmgr -c "set queue batch enabled = True"
qmgr -c "set queue batch started = True"
#
# Set server attributes.
#
qmgr -c "set server scheduling = True"
qmgr -c "set server acl_hosts += loki"
qmgr -c "set server acl_hosts += loki.nbcgib.uesc.br"
qmgr -c "set server managers = operador@*.lab"
qmgr -c "set server operators = operador@*.lab"
qmgr -c "set server default_queue = batch"
qmgr -c "set server log_events = 511"
qmgr -c "set server mail_from = adm"
qmgr -c "set server query_other_jobs = True"
qmgr -c "set server resources_default.ncpus = 1"
qmgr -c "set server resources_default.nodect = 1"
qmgr -c "set server resources_default.nodes = 1"
qmgr -c "set server scheduler_iteration = 600"
qmgr -c "set server node_check_rate = 150"
qmgr -c "set server tcp_timeout = 6"
qmgr -c "set server node_pack = False"
qmgr -c "set server next_job_number = 0"


Agora ao executarmos qstat -q veremos as filas disponíveis:

loki:~# qstat -q

server: loki.nbcgib.uesc.br


Queue Memory CPU Time Walltime Node Run Que Lm State

---------------- ------ -------- -------- ---- --- --- -- -----

batch -- -- -- -- 0 0 -- E R

----- -----

0 0


Podemos ver as configurações do qmgr com:
qmgr -c "print server"
ou
qmgr -c "p s"

Faremos um teste submetendo um trabalho para a fila. Primeiro devemos entrar com a conta de outro usuário (não execute como root). Submeta um trabalho apenas com o “sleep”:
echo "sleep 60" | qsub

loup@loki:~$ echo "sleep 60" | qsub

1.loki.nbcgib.uesc.br

loup@loki:~$ qstat -a

loki.nbcgib.uesc.br:

Req'd Req'd Elap

Job ID Username Queue Jobname SessID NDS TSK Memory Time S Time

-------------------- -------- -------- ---------------- ------ ----- --- ------ ----- - -----

339.loki.nbcgib. loup batch STDIN 14065 1 1 -- -- Q --

Excelente, o job está aparecendo! Infelizmente ele ainda não está sendo executado, o estado “Q” (significa “queued”) e ele ainda precisa ser colocado na fila. Para isso, instalaremos o Maui.

*Instalação dos Escravos (Slave Nodes)

Agora iremos instalar uma versão menor do torque, chamado pbs_mom, em todas as máquinas que responderão a requisição de trabalho. Volte ao diretório em que ele foi compilado.
Copie todos os arquivos torque-package-mom-linux-*.sh, onde * é referente a sua distribuição, para os nós escravos.
Dentro da pasta onde foram copiados os arquivos execute o comando:
torque-package-mom-linux-x86_64.sh --install ou /etc/init.d/pbs_mom start

Depois crie o arquivo config e coloque o conteúdo abaixo:
nano /var/torque/mom_priv/config
$pbsserver loki.nbcgib.uesc.br
$logevent 255

Repita para cada máquina do cluster, excetuando-se o servidor.

Antes de executar o pbs_mom em cada nó, precisamos dizer à eles quem é o servidor. Faremos isso criando o arquivo /var/cluster/pbs/server_name e colocando o nome do servidor como conteúdo.
Agora execute o comando pbs_mom em cada cliente

Caso apareça o erro:
pbs_mom: error while loading shared libraries: libtorque.so.2: \
cannot open shared object file: No such file or directory
Adicione a linha ” include /usr/local/lib ” ao final do arquivo /etc/ld.so.conf

Voltando ao servidor
Encerre o reinicie o pbs_server:
qterm
pbs_server
Agora podemos ver os nós que estão conectados aceitando trabalhos:
pbsnodes -a
loup@loki:~$ pbsnodes -a

fenrir

state = free

np = 4

ntype = cluster

status = opsys=linux,uname=Linux fenrir 2.6.28-gentoo-r1 #1 SMP Fri Feb 13 15:06:26 BRT 2009 x86_64,sessions=29448 29562,nsessions=2,nusers=1,idletime=33,totmem=4153616kb,availmem=3212760kb,physmem=2057144kb,ncpus=4,loadave=0.36,netload=2466199258,state=free,jobs=,varattr=,rectime=1235052557



loki

state = free

np = 4

ntype = cluster

status = opsys=linux,uname=Linux loki 2.6.28.5 #1 SMP Tue Feb 17 11:58:41 BRT 2009 i686,sessions=2572 2580 2581 2582 2583 3773 3071 4164 4216 4222 4253 4255 4301 4302 4704 5065 2613,nsessions=17,nusers=3,idletime=45,totmem=4026396kb,availmem=3369900kb,physmem=2074508kb,ncpus=4,loadave=0.40,netload=79818796,state=free,jobs=,varattr=,rectime=1235052557

Nesse exemplo o servidor está configurado para ser cliente também.

Escalonador: Maui

Maui gere os clientes por meio de pbs_moms.

Installing Maui
Para obter o Maui, Primeiro visite http://www.clusterresources.com/downloads/maui/temp/ e encontre a versão mais recente. No exemplo usamos a versão maui-3.2.6p20-snap.
wget http://www.clusterresources.com/downloads/maui/temp/maui-3.2.6p20-snap.1182974819.tar.gz
Em seguida, desempacotar o arquivo com:
tar xvf maui-3.2.6p20-snap.1182974819.tar.gz
Entre no diretório onde o Torque foi descompactado:
loki:~# cd maui-*
E execute:
./configure --with-pbs --with-spooldir=/var/spool/maui/
--with-pbs torna-o compatível com Torque
--with-spooldir onde vai colocar os arquivos de configuração /var/spool/maui
Se ela estiver concluída, você verá uma mensagem e uma confirmação, conforme mostrado abaixo.

configure: NOTE: link 'docs/mauidocs.html' to your local website for access to
user and admin documentation
NOTE: latest downloads, patches, etc are available at 'http://supercluster.org/
maui'

configure successful.

Agora execute:
make
Se terminar sem um erro, a marca foi bem sucedida. Finalmente, execute
make install
e, novamente, se ela terminar sem um erro, instalação está concluída.

Agora edite:
nano /var/spool/maui/maui.cfg
Comente a linha
#RMCFG[LOKI] TYPE=PBS@RMNMHOST@

E acrescente:
RMCFG[loki] TYPE=PBS

Observe que o nome do servidor está em letra minúscula.
Inicializando o Maui
Na linha de comando execute maui
maui
Você não vai obter qualquer saída a partir dele, mas executando
ps aux | grep maui
deve mostrar Maui executando agora.
Além disso, executando showq deve mostrare uma vista de postos de trabalho na fila à espera de ser agendada.

loki:~# showq
ACTIVE JOBS--------------------

JOBNAME USERNAME STATE PROC REMAINING STARTTIME





0 Active Jobs 0 of 8 Processors Active (0.00%)

0 of 2 Nodes Active (0.00%)



IDLE JOBS----------------------

JOBNAME USERNAME STATE PROC WCLIMIT QUEUETIME





0 Idle Jobs



BLOCKED JOBS----------------

JOBNAME USERNAME STATE PROC WCLIMIT QUEUETIME





Total Jobs: 0 Active Jobs: 0 Idle Jobs: 0 Blocked Jobs: 0

2 comentários:

Unknown disse...

Link Back ;)
http://alunos.if.uff.br/alanfr/?p=152

Unknown disse...

Muito boa descrição para a instalação e configuração do torque!