Nota

Usa consegna tramite e-mail OCI per inviare notifiche del ciclo di vita Slurm

Introduzione

Simple Linux Utility Resource Management (Slurm) è un programma di gestione dei cluster open source e dei job. Poiché i job vengono in genere sottomessi per l'esecuzione in un secondo momento e possono essere con tempi di esecuzione lunghi, è fondamentale ricevere notifiche del ciclo di vita per i job per massimizzare gli investimenti in HPC (High Performance Computing). Per aiutare con questo Oracle Cloud Infrastructure (OCI) ha il servizio di consegna tramite e-mail, una soluzione veloce, affidabile e conveniente per l'invio di e-mail generate dall'applicazione.

Obiettivo

Prerequisiti

Poiché le normali notifiche di posta elettronica di Slurm possono essere brevi e limitate, si utilizzerà il progetto Slurm-Mail di @neilmunday, che fornisce molte più informazioni sui job. Consente inoltre di personalizzare le e-mail utilizzando i modelli predefiniti di Slurm-Mail.

Task 1: Installa Slurm-Mail

Per istruzioni sull'installazione per varie piattaforme, vedere Slurm-Mail Repository. Ho scelto di installare dalla sorgente (come root).

$ git clone https://github.com/neilmunday/slurm-mail
$ cd slurm-mail
$ sudo pip install pathlib
$ sudo python3 setup.py install
$ sudo cp etc/logrotate.d/slurm-mail /etc/logrotate.d/
$ chown slurm:slurm /etc/logrotate.d/slurm-mail
$ install -d -m 700 -o slurm -g slurm /var/log/slurm-mail

Nota: ricordare dove vengono installati slurm-spool-mail e slurm-send-mail.

Task 2: Configura Slurm-Mail

Modificare i seguenti parametri nel file di configurazione in /etc/slurm-mail/slurm-mail.conf.

Parametro Valore Descrizione
emailFromUserAddress Il mittente approvato Corrisponde all'indirizzo "Da" nell'e-mail
sacctExe bin/sacct Utilizzare which sacct per ottenere il percorso completo dell'installazione
scontrolExe cestino/scontrollo Utilizzare which scontrol per ottenere il percorso completo dell'installazione
smtpServer smtp.email.us-ashburn-1.oci.oraclecloud.com Endpoint SMTP del servizio di consegna tramite e-mail. Fare riferimento a Configurazione della connessione SMTP
smtpPort 587 La consegna tramite e-mail supporta TLS sulla porta 587 (consigliata) o 25
smtpUseTls Deve applicare TLS altrimenti il servizio di consegna tramite e-mail lo rifiuterà
smtpUserName Il tuo nome utente SMTP Generato durante la creazione delle credenziali SMTP
smtpPassword Password SMTP personale Generato durante la creazione delle credenziali SMTP

Task 3: Imposta autorizzazioni

Slurm-Mail funziona creando richieste di posta elettronica, posizionandole nella directory specificata dal parametro spoolDir e quindi facendo in modo che un job cron elabori i file di spool. Pertanto, è necessario assicurarsi che spoolDir esista e che Slurm-Mail possa scriverlo. spoolDir è la directory predefinita /var/spool/slurm-mail. Creare questa directory se la directory non esiste già.

Slurm-Mail viene eseguito con l'utente slurm. Sebbene esistano metodi più sicuri, per semplicità ho cambiato il proprietario e il gruppo di /var/spool/slurm-mail in slurm.

$ chown slurm /var/spool/slurm-mail
$ chgrp slurm /var/spool/slurm-mail

Confermare che ora è possibile scrivere i file in spoolDir come utente slurm.

Task 4: Configura cron

Il job cron che elabora i file di spool esiste in /slurm-mail/etc/cron.d. Per impostazione predefinita, ritiene che slurm-send-mail viva in /usr/bin. Tuttavia, per me, slurm-send-mail installato in /usr/local/bin, quindi avevo bisogno di modificare il job. Dopo la modifica, copiarlo in cron.d.

$ cp etc/cron.d/slurm-mail /etc/cron.d/

Task 5: Configura e riavvia Slurm

Slurm ha un parametro di configurazione opzionale MailProg, che è il percorso completamente qualificato del programma utilizzato per inviare e-mail. Dobbiamo aggiungere questo parametro e impostarlo dove vive slurm-spool-mail (che è /usr/local/bin per me).

$ echo MailProg=/usr/local/bin/slurm-spool-mail >> /etc/slurm/slurm.conf

Riavviare Slurm.

$ systemctl restart slurmctld

Task 6: Creare un job di test

Creare un job di test con i flag di posta elettronica appropriati.

#!/bin/bash
#SBATCH --mail-user=<destination email address>
#SBATCH --mail-type=ALL
echo “Hello World!”

Nota: --mail-type=ALL invierà tutti i tipi di evento. Se si desidera solo determinate notifiche di evento, consultare la documentazione del batch e modificare questo valore.

Task 7: Risoluzione dei problemi

  1. Controllare eventuali messaggi di errore in /var/log/slurm/slurmctld.log.

  2. Esaminare i file di log /var/log/slurm-mail/slurm-send-mail.log e /var/log/slurm-mail/slurm-spool-mail.log.

  3. Se le e-mail non vengono ancora inviate, consultare la sezione Risoluzione dei problemi del sito GitHub.

Conferme

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.

Per la documentazione del prodotto, visitare Oracle Help Center.