Configurando MySQL para SLURM

Configurando MySQL para SLURM

Tengo problemas para que SLURM (para programación de trabajos) funcione con una base de datos MySQL. yo estaba usandoestecomo referencia, pero quizás entendí mal algo en él. Si alguien puede decirme lo que me he perdido, sería genial...

Este es SLURM 21.08 en Ubuntu 22.10. Estoy usando MySQL 8.0.32.

Anteriormente había configurado SLURM trabajando con la finalización y la contabilidad almacenadas en un archivo. Y parecía estar funcionando bien; El controlador estaba activo y ejecuté uno o dos trabajos correctamente.

Luego, cambié a MySQL. Tenía /etc/slurm/slurm.confestos valores actualizados:

 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

Y en /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

Creé dos bases de datos MySQL, un usuario llamado "slurm" y otorgué privilegios de la siguiente manera:

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'@'%';

Confirmé usando el comando "mostrar motores" que la compatibilidad con InnoDB está habilitada.

Dado que las bases de datos están vacías, creo que mi próximo paso debería ser configurar la base de datos. En slurm.conf, llamé a mi nombre de clúster "personal". Entonces, hice esto:

$ 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

slurmy slurmdbdestán ejecutando (SLURM y MySQL están en la misma computadora):

$ 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

En /var/log/slurm/slurmdbd.log, veo esto:

[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.

En /var/log/slurm/slurmctld.logtengo esto:

[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.

No estoy seguro de qué debo hacer a continuación o qué pasos me faltan. Supongo que entre slurmdbdy slurmctlddebería centrarme slurmdbdprimero. Una vez que esté funcionando, slurmctlddebería aparecer y/o puedo intentar que funcione.

¡Perdón por la publicación tan larga! ¡Cualquier consejo sería apreciado!

PD: El comando munge -n | unmungefue exitoso.

Respuesta1

Después de dejar de lado este problema durante muchos meses, finalmente decidí que necesitaba que esto funcionara. Espero que esta información ayude a alguien más a intentar resolver esto.

hostnamedevolvió xps8930y eso fue lo que usé cuando hacía contabilidad basada en archivos. Lo que tuve que hacer fue establecer estos valores (otros valores en los archivos de configuración no eran relevantes para el problema).

En /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

En /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

AccountingStoragePassen el primer archivo tiene el mismo valor que AuthInfoen el segundo archivo. Supongo que se pueden dejar en blanco para poder utilizar los valores predeterminados. un niño de 10 añosdestinoSupuse que esto podría ser un error. Pero la corrientedocumentaciónporque AuthInfodice que está bien.

Después de iniciar slurmdbd( sudo service slurmdbd start), sacctmgrse podría ejecutar:

$ 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

Una vez que empezó bien, puse en marcha los servicios slurmctldy slurmd. Y todo parece estar bien hasta ahora.

Los puertos, etc. se dejaron por defecto. Y quizás se podrían haber omitido varios valores ya que los valores predeterminados parecían estar bien.

En resumen, lo que cambió respecto a lo que tenía antes:

  • Usando localhostenslurmdbd.conf
  • Y no poner contraseña AccountingStoragePass. Como tiene "Pass", supuse que tenía que poner una contraseña allí.

¡Espero que esto sea útil para otros!

información relacionada