ノート:

OCI Email Deliveryを使用したSlurmライフサイクル通知の送信

イントロダクション

Simple Linux Utility Resource Management(Slurm)は、オープンソースのクラスタ管理およびジョブ・スケジューラです。ジョブは通常、後で実行するために発行され、長時間実行される可能性があるため、High Performance Computing (HPC)への投資を最大化するには、ジョブのライフサイクル通知の取得が不可欠です。このOracle Cloud Infrastructure(OCI)を支援するために、Email Deliveryサービスは、アプリケーション生成の電子メールを送信するための高速で信頼性が高く、コスト効率に優れたソリューションです。

目標

前提条件

Slurmからの通常の電子メール通知は簡潔で制限される可能性があるため、@neilmundaySlurm-Mailプロジェクトを利用します。これにより、ジョブに関する詳細情報が提供されます。また、Slurm-Mailの事前作成テンプレートを使用して電子メールをカスタマイズすることもできます。

タスク1: Slurm-Mailのインストール

さまざまなプラットフォームのインストール手順については、Slurm-Mail Repositoryを参照してください。ソースから(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

ノート: slurm-spool-mailおよびslurm-send-mailがインストールされている場所を忘れないでください。

タスク2: Slurm-Mailの構成

構成ファイルの次のパラメータ(/etc/slurm-mail/slurm-mail.conf)を編集します。

パラメータ Value 説明
emailFromUserAddress あなたの承認された送信者 電子メールの「差出人」アドレスと同じです
sacctExe 保管棚/保管場所 which sacctを使用して、インストールのフルパスを取得します
scontrolExe bin/scontrol which scontrolを使用して、インストールのフルパスを取得します
smtpServer smtp.email.us-ashburn-1.oci.oraclecloud.com Your Email Delivery SMTP endpoint. Refer to Configuring SMTP Connection
smtpPort 587 Email delivery supports TLS on port 587 (recommended) or 25
smtpUseTls yes Must enforce TLS otherwise Email Delivery will reject it
smtpUserName Your SMTP username Generated when creating your SMTP Credentials
smtpPassword Your SMTP password Generated when creating your SMTP Credentials

タスク3: 権限の設定

Slurm-Mailは、電子メール・リクエストを作成し、spoolDirパラメータで指定されたディレクトリに配置してから、cronジョブを使用してスプール・ファイルを処理することで機能します。したがって、spoolDirが存在し、Slurm-Mailがそれに書き込むことができることを確認する必要があります。spoolDir/var/spool/slurm-mailデフォルト・ディレクトリです。ディレクトリが存在しない場合は作成します。

Slurm-Mailはユーザーslurmで実行されます。よりセキュアなメソッドが存在しますが、簡単にするために、/var/spool/slurm-mailの所有者とグループをslurmに変更しました。

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

slurmユーザーとしてspoolDirにファイルを書き込むことができることを確認します。

タスク4: cronの構成

スプール・ファイルを処理するcronジョブは、/slurm-mail/etc/cron.dに存在します。デフォルトでは、slurm-send-mail/usr/binに存在すると考えられます。ただし、slurm-send-mail/usr/local/binにインストールされているため、ジョブを変更する必要がありました。変更後、cron.dにコピーします。

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

タスク5: Slurmの構成および再起動

Slurmにはオプションの構成パラメータMailProgがあり、これは電子メールの送信に使用されるプログラムへの完全修飾パス名です。このパラメータを追加して、slurm-spool-mailが存在する場所に設定する必要があります(これは/usr/local/binです)。

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

Slurmを再起動します。

$ systemctl restart slurmctld

タスク6: テスト・ジョブの作成

適切な電子メール・フラグを使用してテスト・ジョブを作成します。

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

ノート: --mail-type=ALLは、すべてのイベント・タイプを送信します。特定のイベント通知のみが必要な場合は、バッチ・ドキュメントを参照し、この値を変更します。

タスク7: トラブルシューティング

  1. /var/log/slurm/slurmctld.logでエラー・メッセージを確認します。

  2. ログ・ファイル/var/log/slurm-mail/slurm-send-mail.logおよび/var/log/slurm-mail/slurm-spool-mail.logを確認します。

  3. 電子メールがまだ送信されていない場合は、GitHubのトラブルシューティング・セクションを確認してください。

確認

その他の学習リソース

docs.oracle.com/learnの他のラボをご覧いただくか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品ドキュメントは、Oracle Help Centerを参照してください。