翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Slurm による アカウンティング AWS ParallelCluster
バージョン 3.3.0 以降、 はクラスター設定パラメータ SlurmSettings / Database でのSlurmアカウンティング AWS ParallelCluster をサポートしています。
バージョン 3.10.0 以降、 は、クラスター設定パラメータ SlurmSettings / ExternalSlurmdbd ExternalSlurmdbd とのSlurmアカウンティング AWS ParallelCluster をサポートしています。複数のクラスターが同じデータベースを共有する場合は、外部 Slurmdbd を使用することをお勧めします。
Slurm アカウンティングを使用すると、外部のアカウンティングデータベースを統合して次のことを行うことができます。
-
クラスターユーザーまたはユーザーのグループとその他のエンティティを管理する。この機能を使用すると、リソース制限の適用、公平配分、QOSs など、 Slurmのより高度な機能を使用できます。
-
ジョブを実行したユーザー、ジョブの期間、および使用するリソースなどのジョブデータを収集して保存する。保存したデータは
sacctユーティリティを使用して表示できます。
注記
AWS ParallelCluster は、Slurmサポートされている MySQL データベースサーバーの
v3.10.0 AWS ParallelCluster 以降Slurmdbdで外部 を使用してSlurmアカウンティングを操作する
Slurm アカウンティングを設定する前に、既存の外部データベースサーバーに接続する既存の外部 Slurmdbd データベースサーバーが必要です。
これを設定するには、以下を定義します。
-
ExternalSlurmdbd/Host 内の外部 Slurmdbd サーバーのアドレス。このサーバーが存在していて、ヘッドノードからアクセスできることが必要です。
-
MungeKeySecretArn で外部 Slurmdbd サーバーと通信するための munge キー。
チュートリアルを完了するには、「外部 Slurmdbd アカウンティングによるクラスターの作成」を参照してください。
注記
Slurm データベースのアカウンティングエンティティを管理する責任はユーザーにあります。
AWS ParallelCluster 外部SlurmDBサポート機能のアーキテクチャにより、複数のクラスターが同じSlurmDBデータベースを共有できます。
警告
AWS ParallelCluster と外部との間のトラフィックSlurmDBは暗号化されません。クラスターと外部 SlurmDB は、信頼できるネットワークで実行することをお勧めします。
v3.3.0 AWS ParallelCluster 以降のヘッドノードを使用したSlurmアカウンティングSlurmdbdの操作
Slurm アカウンティングを設定する前に、既存の外部データベースサーバーと mysql プロトコルを使用するデータベースが必要です。
でSlurmアカウンティングを設定するには AWS ParallelCluster、以下を定義する必要があります。
チュートリアルを完了するには、「Slurm アカウンティングによるクラスターの作成」を参照してください。
注記
AWS ParallelCluster は、デフォルトのクラスターユーザーをデータベースのデータベース管理者として設定することで、アSlurmカウンティングSlurmデータベースの基本的なブートストラップを実行します。 AWS ParallelCluster は、アカウンティングデータベースに他のユーザーを追加しません。Slurm データベースのアカウンティングエンティティを管理する責任はお客様にあります。
AWS ParallelCluster はslurmdbdslurmdbd設定ファイルStorageLoc
警告
-
一度に同じデータベースを使用するように複数のクラスターを設定することはお勧めしません。これにより、パフォーマンスの問題またはデータベースのデッドロック状態が発生する可能性があります。
-
クラスターのヘッドノードで Slurm アカウンティングが有効になっている場合、強力な CPU、より多くのメモリ、およびより高いネットワーク帯域幅を使用するインスタンスタイプを使用することをお勧めします。Slurm アカウンティングによりクラスターのヘッドノードに負担が加わる可能性があります。
アカウンティング機能の現在のアーキテクチャ AWS ParallelCluster Slurmでは、次の図の設定例に示すように、各クラスターにはslurmdbdデーモンの独自のインスタンスがあります。
クラスター環境に Slurm カスタムマルチクラスター機能またはフェデレーション機能を追加する場合、すべてのクラスターが同じ slurmdbd インスタンスを参照する必要があります。この代替方法として、1 つのクラスターでアカウンティングを有効に AWS ParallelCluster Slurmし、最初のクラスターでホストslurmdbdされている に接続するように他のクラスターを手動で設定することをお勧めします。
AWS ParallelCluster バージョン 3.3.0 より前のバージョンを使用している場合は、この HPC ブログ投稿
Slurm のアカウンティングに関する考慮事項
異なる VPC のデータベースとクラスター
Slurm のアカウンティングを有効にするには、slurmdbd デーモンが実行する読み取り操作と書き込み操作のバックエンドとして機能するデータベースサーバーが必要です。クラスターを作成または更新して Slurm アカウンティングを有効にする前に、ヘッドノードがデータベースサーバーに到達できる必要があります。
クラスターが使用していない VPC にデータベースサーバーをデプロイする必要がある場合は、次の点を考慮します。
-
クラスター側の
slurmdbdとデータベースサーバー間の通信を有効にするには、2 つの VPC 間の接続を設定する必要があります。詳細については、「Amazon Virtual Private Cloud ユーザーガイド」の「VPC ピア機能とは」を参照してください。 -
クラスターの VPC のヘッドノードにアタッチするセキュリティグループを作成する必要があります。2 つの VPC がピアリング接続されると、データベース側とクラスター側のセキュリティグループ間のクロスリンクが使用可能になります。詳細については、「Amazon Virtual Private Cloud ユーザーガイド」の「セキュリティグループのルール」を参照してください。
slurmdbd とデータベースサーバー間の TLS 暗号化を設定する
AWS ParallelCluster が提供するデフォルトのSlurmアカウンティング設定では、サーバーが Amazon RDS などの TLS encryption. AWS database サービスをサポートし、デフォルトで TLS 暗号化 Amazon Aurora をサポートしている場合、 はデータベースサーバーへの TLS 暗号化接続slurmdbdを確立します。
データベースサーバーで require_secure_transport パラメータを設定することにより、サーバー側の安全な接続を要求できます。これは、提供されている CloudFormation テンプレートで設定されます。
セキュリティのベストプラクティスに従って、slurmdbd クライアントのサーバー ID 検証も有効にすることをお勧めします。これを行うには、slurmdbd.conf で StorageParametersslurmdbd.conf の StorageParameters の SSL_CAslurmdbd 側でのサーバー ID 検証が有効になります。これらの変更を行った後、slurmdbd サービスを再起動して ID 検証が有効になっているデータベースサーバーへの接続を再確立します。
データベース認証情報を更新する
Database/UserName または PasswordSecretArn の値を更新するには、まずコンピューティングフリートを停止する必要があります。シークレットに保存されている AWS Secrets Manager シークレット値が変更され、その ARN が変更されないとします。この状況では、クラスターは自動的にデータベースのパスワードを新しい値に更新しません。新しいシークレット値のクラスターを更新するには、ヘッドノードから次のコマンドを実行します。
$sudo /opt/parallelcluster/scripts/slurm/update_slurm_database_password.sh
警告
財務データが失われないように、コンピューティングフリートが停止している場合にのみデータベースパスワードを変更することをお勧めします。
データベースのモニタリング
AWS データベースサービスのモニタリング機能を有効にすることをお勧めします。詳細については、「Amazon RDS のモニタリング」または「Amazon Aurora のモニタリング」のドキュメントを参照してください。