ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントに例の値を使用します。演習を完了するときは、これらの値をクラウド環境に固有の値に置き換えます。
OCI Email Deliveryを使用したSlurmライフサイクル通知の送信
イントロダクション
Simple Linux Utility Resource Management(Slurm)は、オープンソースのクラスタ管理およびジョブ・スケジューラです。ジョブは通常、後で実行するために発行され、長時間実行される可能性があるため、High Performance Computing (HPC)への投資を最大化するには、ジョブのライフサイクル通知の取得が不可欠です。このOracle Cloud Infrastructure(OCI)を支援するために、Email Deliveryサービスは、アプリケーション生成の電子メールを送信するための高速で信頼性が高く、コスト効率に優れたソリューションです。
目標
- OCI Email Deliveryサービスを使用して、Slurmライフサイクル通知を送信します。
前提条件
-
Slurm管理対象クラスタへのアクセス。
-
OCI Email Deliveryを設定します。詳細は、OCI Email Deliveryで電子メールを送信する手順を参照してください。
Slurmからの通常の電子メール通知は簡潔で制限される可能性があるため、@neilmundayの Slurm-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: トラブルシューティング
-
/var/log/slurm/slurmctld.log
でエラー・メッセージを確認します。 -
ログ・ファイル
/var/log/slurm-mail/slurm-send-mail.log
および/var/log/slurm-mail/slurm-spool-mail.log
を確認します。 -
電子メールがまだ送信されていない場合は、GitHubのトラブルシューティング・セクションを確認してください。
関連リンク
確認
-
著者 - Cody Brinkman (クラウド・アーキテクト)
-
Contributor - Arun Mahajan (HPC Specialist)
その他の学習リソース
docs.oracle.com/learnの他のラボをご覧いただくか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントは、Oracle Help Centerを参照してください。
Use OCI Email Delivery to Send Slurm Lifecycle Notifications
F91076-01
January 2024
Copyright © 2024, Oracle and/or its affiliates.