Configurando MySQL para SLURM

Configurando MySQL para SLURM

Estou tendo problemas para fazer o SLURM (para agendamento de trabalhos) funcionar com um banco de dados MySQL. eu estava usandoessecomo referência, mas talvez eu tenha entendido mal alguma coisa nele. Se alguém puder me dizer o que perdi, seria ótimo ...

Este é o SLURM 21.08 no Ubuntu 22.10. Estou usando o MySQL 8.0.32.

Anteriormente eu havia configurado o SLURM funcionando com preenchimento e contabilização armazenados em um arquivo. E parecia estar funcionando bem; o controlador estava funcionando e executei um ou dois trabalhos ok.

Então, mudei para o MySQL. Meus /etc/slurm/slurm.confvalores foram atualizados:

 Job Completion Logging | MySQL
      JobCompLoc | slurm_complete_db
      JobCompHost | localhost
      JobCompPort | <blank>
      JobCompUser | slurm
      JobCompPass | ...some password...
 Job Accounting Storage | SlurmDBD
      AccountingStorageLoc | slurm_acct_db
      AccountingStorageHost | localhost
      AccountingStoragePort | <blank>
      AccountingStorageUser | slurm
      AccountingStoragePass | ...
      AccountingStoreFlags | job_script,job_env

E em /etc/slurm/slurmdbd.conf:

 AuthType=auth/munge
 DbdHost=xps8930
 DebugLevel=info
 StorageHost=xps8930
 StorageLoc=slurm_acct_db
 StoragePass=...
 StorageType=accounting_storage/mysql
 StorageUser=slurm
 LogFile=/var/log/slurm/slurmdbd.log
 PidFile=/run/slurmdbd.pid
 SlurmUser=slurm

Criei dois bancos de dados MySQL, um usuário chamado "slurm" e concedo privilégios da seguinte forma:

CREATE DATABASE slurm_complete_db DEFAULT CHARACTER SET utf8 COLLATE
utf8_unicode_ci ;
CREATE DATABASE slurm_acct_db DEFAULT CHARACTER SET utf8 COLLATE
utf8_unicode_ci ;
CREATE USER 'slurm'@'%' IDENTIFIED WITH caching_sha2_password BY '' ;
GRANT ALL ON slurm_complete_db.* TO 'slurm'@'%';
GRANT ALL ON slurm_acct_db.* TO 'slurm'@'%';

Confirmei usando o comando "show engines" que o suporte ao InnoDB está habilitado.

Como os bancos de dados estão vazios, acredito que meu próximo passo seja configurar o banco de dados. Em slurm.conf, chamei meu ClusterName de "pessoal". Então, eu fiz isso:

$ sacctmgr add cluster personal
sacctmgr: error: slurm_persist_conn_open_without_init: failed to open
persistent connection to host:localhost:6819: Connection refused
sacctmgr: error: Sending PersistInit msg: Connection refused

slurme slurmdbdestão em execução (SLURM e MySQL estão no mesmo computador):

$ ps -aef | grep slurm
root        1407       1  0 09:42 ?        00:00:08 /usr/sbin/slurmd -D -s
root        1857       1  0 09:43 ?        00:00:03 /usr/sbin/slurmdbd -D -s

Em /var/log/slurm/slurmdbd.log, eu vejo isso:

[2023-01-26T18:06:02.541] error: mysql_real_connect failed: 2003 Can't
connect to MySQL server on 'xps8930:3306' (111)
[2023-01-26T18:06:02.541] error: The database must be up when starting
the MYSQL plugin.  Trying again in 5 seconds.

Em /var/log/slurm/slurmctld.log, eu tenho isso:

[2023-01-26T09:42:33.264] error: Configured MailProg is invalid
[2023-01-26T09:42:33.350] slurmctld version 21.08.5 started on cluster personal
[2023-01-26T09:42:36.121] error: slurm_persist_conn_open_without_init: failed to open persistent connection to host:localhost:6819:
Connection refused
[2023-01-26T09:42:36.121] error: Sending PersistInit msg: Connection refused
[2023-01-26T09:42:36.153] accounting_storage/slurmdbd:  clusteracct_storage_p_register_ctld: Registering slurmctld at port 6817 with slurmdbd
[2023-01-26T09:42:36.153] error: Sending PersistInit msg: Connection refused
[2023-01-26T09:42:36.154] error: Sending PersistInit msg: Connection refused
[2023-01-26T09:42:37.456] No memory enforcing mechanism configured.
[2023-01-26T09:42:39.924] error: mysql_real_connect failed: 2002 Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
[2023-01-26T09:42:39.924] fatal: You haven't inited this storage yet.

Não tenho certeza do que devo fazer a seguir ou quais etapas estou faltando. Acho que entre slurmdbde slurmctlddevo focar slurmdbdprimeiro? Quando estiver funcionando, um deles slurmctlddeverá aparecer e/ou posso tentar fazê-lo funcionar.

Desculpe pelo longo post! Qualquer conselho seria apreciado!

PS: O comando munge -n | unmungefoi bem-sucedido.

Responder1

Depois de deixar esse problema de lado por muitos meses, finalmente decidi que precisava fazer isso funcionar. Espero que esta informação ajude alguém a tentar descobrir isso.

hostnameretornou xps8930e foi isso que usei quando estava fazendo contabilidade baseada em arquivo. O que eu tive que fazer foi definir esses valores (outros valores nos arquivos de configuração não eram relevantes para o problema).

Em /etc/slurm/slurm.conf:

ClusterName=personal
SlurmctldPidFile=/run/slurm/slurmctld.pid
SlurmdPidFile=/run/slurm/slurmd.pid
AccountingStorageHost=localhost
AccountingStoragePass=/var/run/munge/munge.socket.2
AccountingStorageType=accounting_storage/slurmdbd
AccountingStorageUser=slurm
AccountingStoreFlags=job_script,job_env
JobCompHost=localhost
JobCompPass=<some MySQL password>
JobCompType=jobcomp/mysql
JobCompUser=slurm
##  Database defaults to slurm_jobcomp_db
#JobCompLoc=slurm_complete_db

Em /etc/slurm/slurmdbd.conf:

AuthInfo=/var/run/munge/munge.socket.2
AuthType=auth/munge
DbdHost=localhost
DebugLevel=info
LogFile=/var/log/slurm/slurmdbd.log
PidFile=/run/slurm/slurmdbd.pid
SlurmUser=slurm
StorageHost=localhost
StoragePass=<same MySQL password as above, since it's the same user>
StorageType=accounting_storage/mysql
StorageUser=slurm
StorageLoc=slurm_acct_db

AccountingStoragePassno primeiro arquivo tem o mesmo valor que AuthInfono segundo arquivo. Suponho que eles possam ser deixados em branco para que os padrões possam ser usados. Uma criança de 10 anospostagemadivinhei que isso poderia ser um bug. Mas a correntedocumentaçãopois AuthInfodiz que está tudo bem.

Depois de iniciar slurmdbd( sudo service slurmdbd start), sacctmgrpode ser executado:

$ sudo sacctmgr add cluster personal
 Adding Cluster(s)
  Name           = personal
Would you like to commit changes? (You have 30 seconds to decide)
(N/y): y
$ sacctmgr list cluster
   Cluster     ControlHost  ControlPort   RPC     Share GrpJobs       GrpTRES GrpSubmit MaxJobs       MaxTRES MaxSubmit     MaxWall                  QOS   Def QOS 
---------- --------------- ------------ ----- --------- ------- ------------- --------- ------- ------------- --------- ----------- -------------------- --------- 
  personal                            0     0         1                                                                                           normal

Depois que tudo começou bem, iniciei os serviços slurmctlde slurmd. E tudo parece bem até agora.

Portas, etc. foram deixadas como padrão. E talvez vários valores pudessem ter sido omitidos, já que os padrões pareciam bons.

Resumindo, o que mudou em relação ao que eu tinha antes:

  • Usando localhostemslurmdbd.conf
  • E não colocar uma senha no arquivo AccountingStoragePass. Como tem "Pass", presumi que deveria colocar uma senha lá.

Espero que isso seja útil para outras pessoas!

informação relacionada