Computação Distribuída com TORQUE Resource Manager

O TORQUE Resource Manager fornece controle sobre trabalhos de grupo e recursos de computação distribuída. É um produto Open Source avançado, baseado no projeto original PBS e incorpora o melhor da comunidade e do desenvolvimento profissional. Ele está atualmente em uso em dezenas de milhares de aplicações governamentais, acadêmicas e sites comerciais em todo o mundo.

[ Hits: 23.211 ]

Por: Juno Kim em 28/08/2013 | Blog: http://www.kim.eti.br


Instalação e configuração - II



Instalação e configuração do nó mestre (pbs_server) e dos demais computadores (nodes) - Parte 2

O servidor do TORQUE (pbs_server) já tem todas as informações necessárias a respeito de nosso cluster. Ele conhece todos os nós MOM no cluster com base nas informações no arquivo "$TORQUE_HOME/server_priv/nodes" .

Ele também mantém o status de cada nó MOM, através de atualizações das MOMs do cluster. Todos os trabalhos são enviados via qsub para o servidor, que mantém um banco de dados mestre com todos os JOBS e seus estados.

A configuração do servidor é mantido em um arquivo chamado "serverdb", localizado em "$TORQUE_HOME/server_priv". O arquivo "serverdb" contém todos os parâmetros relativos à operação do binário, além de todas as filas que se encontram na configuração. Para o "pbs_server" funcionar, o "serverdb" deve ser inicializado.

Você pode inicializar o "serverdb" de duas maneiras diferentes, mas a maneira recomendada é usar o "script/torque.setup":

Execute o "torque.setup" do diretório de compilação:

# ./ Torque.setup

Use "pbs_server-t create" (ver manual em inglês: installConfig)

Reinicie o "pbs_server" depois de inicializar serverdb.

# qterm
# pbs_server


O script "torque.setup" usa "pbs_server-t create" para inicializar serverdb e adiciona um usuário como um gerente e operador do TORQUE e outros atributos comumente usados. Segue a sintaxe do comando:

# ./torque.setup username

Exemplo:

# ./torque.setup ken
# qmgr -c 'p s'


#
# Create queues and set their attributes.
#
#
# Create and define queue batch
#

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 attributes.
#

set server scheduling = True
set server acl_hosts = kmn
set server managers = ken@kmn
set server operators = ken@kmn
set server default_queue = batch
set server log_events = 511
set server mail_from = adm
set server scheduler_iteration = 600
set server node_check_rate = 150
set server tcp_timeout = 6
set server mom_job_sync = True
set server keep_completed = 300

Esse é o exemplo para criar o database e a fila de processos.

Se você executar o comando "pbs_server -t create", ele irá iniciar o database com uma configuração mínima.

Para ver a configuração e verificar se o torque está configurado corretamente, use qmgr:

# qmgr -c 'p s'

#
# Set server attributes.
#

set server acl_hosts = kmn
set server log_events = 511
set server mail_from = adm
set server scheduler_iteration = 600
set server node_check_rate = 150
set server tcp_timeout = 6

A fila chamada "batch" e alguns atributos do servidor necessários, foram criadas.

Especificando os computadores nós

O "pbs_server" deve reconhecer com os sistemas de rede quem são os seus nós de computação, para isso, especifique cada nó em uma linha no arquivo de nós do servidor.

Este arquivo está localizado em "$TORQUE_HOME/server_priv/nodes". Na maioria dos casos, é suficiente apenas para especificar os nomes dos nódulos de linhas individuais, no entanto, diferentes propriedades pode ser aplicado a cada nó.

Obs.: somente o usuário root tem acesso ao diretório "server_priv" para editar o arquivo de nós (nodes).

Segue um exemplo de lista de nós. Para maiores informações, veja o manual online em:

# Nodes 001 and 003-005 are cluster nodes
#

node001 np=2 cluster01 rackNumber22
#
# node002 will be replaced soon

node002:ts waitingToBeReplaced
# node002 will be replaced soon
#

node003 np=4 cluster01 rackNumber24
node004 cluster01 rackNumber25
node005 np=2 cluster01 rackNumber26 RAM16GB
node006
node007 np=2
node008:ts np=4
...

Segue o nosso exemplo prático:

cc-vol01 np=8
cc-vol02 np=8


Agora, vamos iniciar os serviços. No nó mestre, inicie:

# pbs_server
# pbs_sched
# trqauthd


Nos nós escravos, inicie:

# pbs_mom
# trqauthd


Tenha certeza que os nomes DNS delas são os mesmos em todas elas. Para isso, veja a configuração do "/etc/hosts".

Página anterior     Próxima página

Páginas do artigo
   1. O que é o TORQUE?
   2. Instalação e configuração - I
   3. Instalação e configuração - II
   4. Testes dos cluster
   5. Revisão
Outros artigos deste autor

Configurando o proftpd com autenticação de usuário pelo passwd

Computação Distribuída com TORQUE Resource Manager - Parte 2

A essência de ser Livre

Leitura recomendada

GSlapt - Gerenciando os pacotes de seu Slackware

Arte digital: novas possibilidades com softwares livres

Jopen, não se preocupe mais em descobrir qual aplicativo usar

Editor de textos / IDE Geany

Instalação e configuração da zsh no Gentoo GNU/Linux

  
Comentários
[1] Comentário enviado por leodamasceno em 28/08/2013 - 13:45h

Muito interessante. Tenho total interesse em testar essa ferramenta. Parabens pelo artigo.

[2] Comentário enviado por edul0pes em 29/08/2013 - 15:56h

Parabéns pelo artigo.

[3] Comentário enviado por gnumoksha em 02/09/2013 - 13:41h

Interessante. Obrigado pelo artigo.

Em tempo, por que tanta memoria swap?

[4] Comentário enviado por juno em 02/09/2013 - 17:12h

Olá amigo tobiasgnu,
O motivo de ter a memória extensa é para precaver os nós de travarem pois rodamos um programa de reconhecimento de fala que ocupa 100% da memória física em quanto carrega.


[5] Comentário enviado por fabiofima em 08/04/2016 - 13:30h

Olá, primeiramente, obrigado pelo tutorial, como sempre desse site, muito bem explicado e didático.
Instalei o toque no nosso cluster aqui, tal contendo 1 head node e 6 slaves. A instalação e configuração deu tudo certo, o pbsnodes -a mostra corretamente os nodos, em estado "free". Se submeto um submitionfile.sh com um comando básico, como por exemplo wget ou uma sequencia de locates, ele consegue escalonar o job, executa, ficando em R no qstat até acabar e finaliza... Mas quando submeto uma execução de um software que usamos aqui chamado Gromacs, que tem instalado em todos os slave nodes, ele vai para estado E e C no qstat, sem deixar nenhum log, erro, output, nada... Nem no "Torque/serv_logs"... Se executo o mesmo comando, localmente no nodo, sem usar o torque, ele executa e fica correto como precisava ser.
Alguém poderia me ajudar? Não forneci mais informações porque não sei nem achar qual é o erro.
Obrigado desde já!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts