Esta imagem provê o serviço do slurmctl, slurmdb e slurmd. Configurados para gerenciamento de fila de trabalhos, em um cluster HPC. As configurações feitas neste repositório, segue como modelo base o repositório giovtorres/slurm-docker-cluster.
Links
Volumes
Os volumes a seguir, devem ser compartilhados entre todos os containers. Em um cluster, devem ser configurados como volumes NFS.
- etc_munge:/etc/munge
- etc_slurm:/etc/slurm - Diretório onde os arquivos slurm.conf e slurmdb.conf se encontram
- slurm_jobdir:/data
- slurm_scripts:/scripts - Diretório que contém os scripts base utilizado pelo WORKFLOW para submeter os trabalhos na fila
- slurm_lib:/var/lib/slurmd
- slurm_spool:/var/spool/slurmd
- /var/run/docker.sock:/var/run/docker.sock - Necessário para executar trabalhos com containers
Stack
version: "3.5"
services:
slurmdbd:
image: registry.codigos.ufsc.br/setic-hpc/slurm:latest
command: "slurmdbd"
hostname: slurmdbd
volumes: &vol
- etc_munge:/etc/munge
- etc_slurm:/etc/slurm
- slurm_jobdir:/data
- slurm_scripts:/scripts
- slurm_lib:/var/lib/slurmd
- slurm_spool:/var/spool/slurmd
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- mysql
slurmctld:
image: registry.codigos.ufsc.br/setic-hpc/slurm:latest
command: "slurmctld"
hostname: slurmctld
volumes: *vol
depends_on:
- "slurmdbd"
c1:
image: registry.codigos.ufsc.br/setic-hpc/slurm:latest
command: "slurmd"
hostname: c1
volumes: *vol
depends_on:
- "slurmctld"
c2:
image: registry.codigos.ufsc.br/setic-hpc/slurm:latest
command: "slurmd"
hostname: c2
volumes: *vol
depends_on:
- "slurmctld"
volumes:
etc_munge:
etc_slurm:
slurm_jobdir:
slurm_lib:
slurm_spool:
slurm_scripts:
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, 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 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.