... | @@ -22,6 +22,10 @@ services: |
... | @@ -22,6 +22,10 @@ services: |
|
image: registry.codigos.ufsc.br/setic-hpc/slurm:latest
|
|
image: registry.codigos.ufsc.br/setic-hpc/slurm:latest
|
|
command: "slurmdbd"
|
|
command: "slurmdbd"
|
|
hostname: slurmdbd
|
|
hostname: slurmdbd
|
|
|
|
deploy: &hpc0
|
|
|
|
placement:
|
|
|
|
constraints:
|
|
|
|
- "node.hostname==docker-hpc0"
|
|
volumes: &vol
|
|
volumes: &vol
|
|
- etc_munge:/etc/munge
|
|
- etc_munge:/etc/munge
|
|
- etc_slurm:/etc/slurm
|
|
- etc_slurm:/etc/slurm
|
... | @@ -30,45 +34,75 @@ services: |
... | @@ -30,45 +34,75 @@ services: |
|
- slurm_lib:/var/lib/slurmd
|
|
- slurm_lib:/var/lib/slurmd
|
|
- slurm_spool:/var/spool/slurmd
|
|
- slurm_spool:/var/spool/slurmd
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
depends_on:
|
|
|
|
- mysql
|
|
|
|
|
|
|
|
slurmctld:
|
|
slurmctld:
|
|
|
|
hostname: slurmctld.setic.ufsc.br
|
|
image: registry.codigos.ufsc.br/setic-hpc/slurm:latest
|
|
image: registry.codigos.ufsc.br/setic-hpc/slurm:latest
|
|
command: "slurmctld"
|
|
command: "slurmctld"
|
|
hostname: slurmctld
|
|
deploy: *hpc0
|
|
volumes: *vol
|
|
volumes: *vol
|
|
depends_on:
|
|
depends_on:
|
|
- "slurmdbd"
|
|
- "slurmdbd"
|
|
|
|
|
|
c1:
|
|
nodes:
|
|
image: registry.codigos.ufsc.br/setic-hpc/slurm:latest
|
|
image: registry.codigos.ufsc.br/setic-hpc/slurm:latest
|
|
command: "slurmd"
|
|
hostname: "SlurmGlobal_nodee-{{.Node.Hostname}}"
|
|
hostname: c1
|
|
deploy:
|
|
volumes: *vol
|
|
mode: global
|
|
depends_on:
|
|
placement:
|
|
- "slurmctld"
|
|
constraints:
|
|
|
|
- "node.role==worker"
|
|
c2:
|
|
|
|
image: registry.codigos.ufsc.br/setic-hpc/slurm:latest
|
|
|
|
command: "slurmd"
|
|
|
|
hostname: c2
|
|
|
|
volumes: *vol
|
|
volumes: *vol
|
|
depends_on:
|
|
depends_on:
|
|
- "slurmctld"
|
|
- "slurmctld"
|
|
|
|
|
|
volumes:
|
|
volumes:
|
|
etc_munge:
|
|
etc_munge:
|
|
|
|
driver: local
|
|
|
|
driver_opts:
|
|
|
|
type: nfs
|
|
|
|
o: addr=192.168.0.180,rw,async
|
|
|
|
device: :/export/slurm/munge
|
|
etc_slurm:
|
|
etc_slurm:
|
|
|
|
driver: local
|
|
|
|
driver_opts:
|
|
|
|
type: nfs
|
|
|
|
o: addr=192.168.0.180,rw,async
|
|
|
|
device: :/export/slurm/etc
|
|
slurm_jobdir:
|
|
slurm_jobdir:
|
|
slurm_lib:
|
|
driver: local
|
|
slurm_spool:
|
|
driver_opts:
|
|
|
|
type: nfs
|
|
|
|
o: addr=192.168.0.180,rw,async
|
|
|
|
device: :/export/slurm/jobs
|
|
slurm_scripts:
|
|
slurm_scripts:
|
|
|
|
driver: local
|
|
|
|
driver_opts:
|
|
|
|
type: nfs
|
|
|
|
o: addr=192.168.0.180,rw,async
|
|
|
|
device: :/export/slurm/scripts
|
|
|
|
slurm_spool:
|
|
|
|
driver: local
|
|
|
|
driver_opts:
|
|
|
|
type: nfs
|
|
|
|
o: addr=192.168.0.180,rw,async
|
|
|
|
device: :/export/slurm/spool
|
|
|
|
slurm_lib:
|
|
|
|
driver: local
|
|
|
|
driver_opts:
|
|
|
|
type: nfs
|
|
|
|
o: addr=192.168.0.180,rw,async
|
|
|
|
device: :/export/slurm/lib
|
|
|
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
(Obs: Foi encontrado um problema com o slurm ao se criar um serviço diferente para cada nó trabalhador, na stack acima é criado apenas um serviço para os nós trabalhadores do `slurm` e distribuído para todos os nós trabalhadores do `cluster`, o que garante o bom funcionamento do slurm.)
|
|
|
|
|
|
#### Configuração
|
|
#### Configuração
|
|
O deploy da stack citada acima, em swarm, deve ser feita direcionando os serviços C1 e C2, para os nós trabalhadores do cluster. Caso necessário adicionar mais de dois nós trabalhadores, devem ser adicionados a stack novos serviços do tipo C1 ou C2 e configurado no arquivo `slurm.conf` no próximo passo.
|
|
Após ser feito o deploy, os arquivos de configurações contidos no diretório `conf` devem ser todos adicionados ao volume etc_slurm, e feito as alterações das credenciais do banco de dados no arquivo `slurmdbd.conf`, informando o seu banco de dados escolhido, e no arquivo `slurm.conf` devem ser feitas alterações de configurações do slurm, conforme a sua preferencia, mais detalhes em [slurm.conf](https://slurm.schedmd.com/slurm.conf.html).
|
|
|
|
|
|
Após ser feito o deploy, as configurações do banco de dados devem ser alteradas no arquivo `slurmdb.conf`, que estará no volume `etc_slurm`. Caso necessário também poderá ser feito modificações no arquivo `slurm.conf` no mesmo volume citado anteriormente. Após feito as modificações deve ser feita a reinicialização dos containers.
|
|
Com todos os containers funcionando pela **primeira vez**(Caso altere os volumes, se encaixa nesse requisito), deve ser registrado o cluster no banco de dados utilizando o comando abaixo, e reiniciado os serviços slurmdbd e slurmctld.
|
|
|
|
```
|
|
|
|
/usr/bin/sacctmgr --immediate add cluster name=linux
|
|
|
|
```
|
|
|
|
|
|
Com todos os containers funcionando pela **primeira vez**(Caso altere os volumes, se encaixa nesse requisito), deve ser executado o comando `/usr/bin/sacctmgr --immediate add cluster name=linux` (utilizado para registrar o cluster no banco de dados) e reiniciado os serviços slurmdbd e slurmctld. |
|
|