Konfigurieren von MySQL für SLURM

Konfigurieren von MySQL für SLURM

Ich habe Probleme, SLURM (für Job Scheduling) mit einer MySQL-Datenbank zum Laufen zu bringen. Ich habeDasals Referenz, aber vielleicht habe ich darin etwas missverstanden. Wenn mir jemand sagen könnte, was ich übersehen habe, wäre das großartig ...

Dies ist SLURM 21.08 auf Ubuntu 22.10. Ich verwende MySQL 8.0.32.

Ich hatte SLURM zuvor so konfiguriert, dass Fertigstellung und Abrechnung in einer Datei gespeichert wurden. Und es schien gut zu funktionieren; der Controller war aktiv und ich konnte ein oder zwei Jobs problemlos ausführen.

Dann wechselte ich zu MySQL. Dabei /etc/slurm/slurm.confwurden folgende Werte aktualisiert:

 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

Und in /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

Ich habe zwei MySQL-Datenbanken erstellt, einen Benutzer namens „slurm“ und die Berechtigungen wie folgt erteilt:

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

Ich habe mit dem Befehl „show engines“ bestätigt, dass die InnoDB-Unterstützung aktiviert ist.

Da die Datenbanken leer sind, sollte mein nächster Schritt wohl die Konfiguration der Datenbank sein. In slurm.confhabe ich meinen ClusterNamen „persönlich“ genannt. Also habe ich Folgendes gemacht:

$ 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

slurmund slurmdbdausgeführt werden (SLURM und MySQL befinden sich auf demselben Computer):

$ 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

In /var/log/slurm/slurmdbd.logsehe ich Folgendes:

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

In /var/log/slurm/slurmctld.loghabe ich Folgendes:

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

Ich bin mir nicht sicher, was ich als Nächstes tun soll oder welche Schritte mir fehlen. Ich schätze, zwischen slurmdbdund slurmctldsollte ich mich zuerst auf konzentrieren slurmdbd? Sobald es funktioniert, slurmctldsollte entweder kommen und/oder ich kann versuchen, es zum Laufen zu bringen.

Entschuldigen Sie den langen Beitrag! Ich bin für jeden Rat dankbar!

PS: Der Befehl munge -n | unmungewar erfolgreich.

Antwort1

Nachdem ich dieses Problem viele Monate lang aufgeschoben hatte, beschloss ich schließlich, dass ich es zum Laufen bringen musste. Ich hoffe, diese Informationen helfen jemand anderem, der versucht, dies herauszufinden.

hostnamezurückgegeben xps8930und das habe ich verwendet, als ich eine dateibasierte Buchhaltung durchführte. Was ich tun musste, war, stattdessen diese Werte festzulegen (andere Werte in den Konfigurationsdateien waren für das Problem nicht relevant).

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

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

AccountingStoragePassin der ersten Datei hat den gleichen Wert wie AuthInfoin der zweiten Datei. Ich nehme an, sie können leer gelassen werden, damit Standardwerte verwendet werden können. Ein 10-jährigerEntsendungvermutet, dass dies ein Fehler sein könnte. Aber die aktuelleDokumentationdenn AuthInfosagt, es ist in Ordnung.

Nach dem Start von slurmdbd( sudo service slurmdbd start) sacctmgrkann Folgendes ausgeführt werden:

$ 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

Nachdem das problemlos gestartet war, habe ich die Dienste gestartet slurmctld. slurmdUnd bisher sieht alles gut aus.

Ports usw. wurden als Standard belassen. Und vielleicht hätte man einige Werte weglassen können, da die Standardeinstellungen in Ordnung schienen.

Kurz gesagt, was sich im Vergleich zu vorher geändert hat:

  • Verwendung localhostinslurmdbd.conf
  • Und kein Passwort eingeben AccountingStoragePass. Da dort „Pass“ steht, nahm ich an, dass ich dort ein Passwort eingeben muss.

Hoffe, das ist für andere nützlich!

verwandte Informationen