Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
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
- Utilizza il servizio OCI Email Delivery per inviare notifiche sul ciclo di vita Slurm.
Prerequisiti
-
Accesso a un cluster gestito da Slurm.
-
Impostare OCI Email Delivery. Per ulteriori informazioni, consulta le istruzioni dettagliate per inviare messaggi di posta elettronica con OCI Email Delivery.
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-maileslurm-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 | Sì | 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=ALLinvierà 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
-
Controllare eventuali messaggi di errore in
/var/log/slurm/slurmctld.log. -
Esaminare i file di log
/var/log/slurm-mail/slurm-send-mail.loge/var/log/slurm-mail/slurm-spool-mail.log. -
Se le e-mail non vengono ancora inviate, consultare la sezione Risoluzione dei problemi del sito GitHub.
Collegamenti correlati
Conferme
-
Autore - Cody Brinkman (Cloud Architect)
-
Collaboratore - Arun Mahajan (esperto HPC)
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.
Use OCI Email Delivery to Send Slurm Lifecycle Notifications
F91076-01
January 2024
Copyright © 2024, Oracle and/or its affiliates.