AWS ParallelCluster 3.12.0 がリリースされました
AWS ParallelCluster 3.12.0 が 2024 年 12 月 19 日にリリースされました。本アップデートは機能改善が中心の軽微なアップデートとなっています。
AWS ParallelCluster 3.12.0 リリース
本アップデートの主要な変更点と、個人的に注目しているポイントをピックアップしました。リリースノートだけではアップデート前後の違いを把握しづらいため、可能な範囲で補足説明を加えています。
アップデート詳細はリリースノート、ドキュメントの更新履歴をご確認ください。
Release AWS ParallelCluster v3.12.0 · aws/aws-parallelcluster
主なアップデート内容
本バージョンでは、クラスターの運用面が改善されました。
- AMI 作成機能の強化
- NVIDIA ソフトウェアと Lustre クライアントのオプションインストールに対応
- ログエクスポートの簡素化
- S3 バケット指定が省略可能に変更
pcluster export-cluster-logs
とpcluster export-image-logs
が対象
- 可用性の向上
slurmctld
障害時に自動再起動
独自の AMI について
AWS から提供されている公式の ParallelCluster の AMI を利用する方法と、独自の AMI を作成して利用する方法の 2 パターンあります。独自 AMI を利用する場合は、主にユーザー必要とするソフトウェアを事前にインストールを済ませたゴールデン AMI が欲しいときです。
従来は NVIDIA のソフトウェアと、Lustre クライアントのインストールは選択できなかったのですが、今回のアップデートで選択可能となりました。公式の ParallelCluster AMI では、NVIDIA ソフトウェアはインストールされていません。Lustre クライアントはインストール済みとなっています。
該当のドキュメントは以下だと思われるのですが、ドキュメントが更新されていないため詳細は不明です。
ログエクスポートコマンドについて
クラスターのログ一式をダウンロードできるコマンドです。pcluster
コマンドを実行可能なローカル端末で、ログをダウンロードする用途で利用することがあったのではないでしょうか。
従来はコマンド実行時に S3 バケットの指定が必須でした。今回のアップデートで S3 バケットは未指定でも、 ParallelCluster で使用しているデフォルトの S3 バケットを利用してログのダウンロードが可能となりました。
やってみた
-n
でクラスター名を指定して実行します。すると、署名付き URL で S3 バケットからダウンロードできます。
$ pcluster export-cluster-logs -n v3120-clusetr
{
"url": "https://parallelcluster-50bb4ae12fec178e-v1-do-not-delete.s3.ap-northeast-1.amazonaws.com/v3120-clusetr-logs-202412190155.tar.gz?AWSAccessKeyId=hogeExpires=1734576935"
}
S3 バケットは未指定だと、クラスター作成時に作成される S3 バケットに圧縮されたログファイルが保存されます。
ダウンロードしたログは、CloudWatch Logs に保存されていたログと、クラスター作成時の CloudFormation のログがダウンロードできました。
$ tree
.
├── cloudwatch-logs
│ ├── ip-10-0-0-7.i-0cdc0cca53570740a.cfn-hup
│ ├── ip-10-0-0-7.i-0cdc0cca53570740a.cfn-init
│ ├── ip-10-0-0-7.i-0cdc0cca53570740a.chef-client
│ ├── ip-10-0-0-7.i-0cdc0cca53570740a.cloud-init
│ ├── ip-10-0-0-7.i-0cdc0cca53570740a.clustermgtd
│ ├── ip-10-0-0-7.i-0cdc0cca53570740a.clusterstatusmgtd
│ ├── ip-10-0-0-7.i-0cdc0cca53570740a.slurmctld
│ ├── ip-10-0-0-7.i-0cdc0cca53570740a.slurmdbd
│ ├── ip-10-0-0-7.i-0cdc0cca53570740a.supervisord
│ └── ip-10-0-0-7.i-0cdc0cca53570740a.system-messages
└── v3120-clusetr-cfn-events
slurmctld について
slurmctld
は Slurm を管理しているデーモンです。
Slurm Workload Manager - slurmctld
このデーモンが停止すると Slurm が機能しません。つまり、クラスターとしての役割を果たせません。
$ sudo systemctl list
Unknown command verb list.
[ec2-user@ip-10-0-0-7 ~]$ sudo systemctl status slurmctld
● slurmctld.service - Slurm controller daemon
Loaded: loaded (/etc/systemd/system/slurmctld.service; enabled; preset: disabled)
Active: active (running) since Thu 2024-12-19 01:21:16 UTC; 42min ago
Main PID: 2320 (slurmctld)
Tasks: 22 (limit: 1054)
Memory: 9.7M
CPU: 28.388s
CGroup: /system.slice/slurmctld.service
├─2320 /opt/slurm/sbin/slurmctld -D -s
└─2323 "slurmctld: slurmscriptd"
設定ファイルにRestart=on-failure
が追加され、デーモン停止に自動復旧を試みてくれるようになっています。
$ sudo cat /etc/systemd/system/slurmctld.service
[Unit]
Description=Slurm controller daemon
After=network-online.target munge.service remote-fs.target
Wants=network-online.target
ConditionPathExists=/opt/slurm/etc/slurm.conf
[Service]
Type=simple
EnvironmentFile=-/etc/sysconfig/slurmctld
ExecStart=/opt/slurm/sbin/slurmctld -D -s $SLURMCTLD_OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
LimitNOFILE=562930
LimitMEMLOCK=infinity
LimitSTACK=infinity
Restart=on-failure
RestartSec=1s
[Install]
WantedBy=multi-user.target
まとめ
本アップデートでは、以下の運用改善が実装されました。
- AMI 作成オプションの柔軟化
- ログエクスポートの簡素化
- slumctld の自動再起動(クラスター可用性の向上)
これらの改善により、AWS ParallelCluster の運用性が向上したのではないでしょうか。
おわりに
今回は軽微なアップデートだったなという感想です。AWS から公式のアナウンスで詳しい説明があればこちらの記事を更新する予定です。