

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Slurm による アカウンティング AWS ParallelCluster
<a name="slurm-accounting-v3"></a>

バージョン 3.3.0 以降、 はクラスター設定パラメータ [SlurmSettings](Scheduling-v3.md#Scheduling-v3-SlurmSettings) / [Database](Scheduling-v3.md#Scheduling-v3-SlurmSettings-Database) によるSlurmアカウンティング AWS ParallelCluster をサポートしています。

バージョン 3.10.0 以降、 はクラスター設定パラメータ [SlurmSettings](Scheduling-v3.md#Scheduling-v3-SlurmSettings) / ExternalSlurmdbd [ExternalSlurmdbd](Scheduling-v3.md#Scheduling-v3-SlurmSettings-ExternalSlurmdbd) でのSlurmアカウンティング AWS ParallelCluster をサポートしています。複数のクラスターが同じデータベースを共有する場合は、外部 Slurmdbd を使用することをお勧めします。

Slurm アカウンティングを使用すると、外部のアカウンティングデータベースを統合して次のことを行うことができます。
+ クラスターユーザーまたはユーザーのグループとその他のエンティティを管理する。この機能を使用すると、リソース制限の適用、公平配分、QOSs など、 Slurmのより高度な機能を使用できます。
+ ジョブを実行したユーザー、ジョブの期間、および使用するリソースなどのジョブデータを収集して保存する。保存したデータは `sacct` ユーティリティを使用して表示できます。

**注記**  
AWS ParallelCluster は、[Slurmサポートされている MySQL データベースサーバーの](https://slurm.schedmd.com/accounting.html#mysql-configuration)Slurmアカウンティングをサポートしています。

## v3.10.0 AWS ParallelCluster 以降Slurmdbdで外部 を使用してSlurmアカウンティングを操作する
<a name="slurm-accounting-works-v3-later"></a>

Slurm アカウンティングを設定する前に、既存の外部データベースサーバーに接続する既存の外部 Slurmdbd データベースサーバーが必要です。

これを設定するには、以下を定義します。
+ [ExternalSlurmdbd](Scheduling-v3.md#Scheduling-v3-SlurmSettings-ExternalSlurmdbd)/[Host](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-ExternalSlurmdbd-Host) 内の外部 Slurmdbd サーバーのアドレス。このサーバーが存在していて、ヘッドノードからアクセスできることが必要です。
+ [MungeKeySecretArn](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-MungeKeySecretArn) で外部 Slurmdbd サーバーと通信するための munge キー。

チュートリアルを完了するには、「[外部 Slurmdbd アカウンティングによるクラスターの作成](external-slurmdb-accounting.md)」を参照してください。

**注記**  
Slurm データベースのアカウンティングエンティティを管理する責任はユーザーにあります。

 AWS ParallelCluster 外部SlurmDBサポート機能のアーキテクチャにより、複数のクラスターが同じSlurmDBデータベースを共有できます。

 ![A flowchart depicting the Database Stack, Slurmdbd stack, PC Cluster Stack 1, and PC Cluster Stack 2. Containing components such as Slurmdbd instance, RDS Aurora MySQL Database, and Login nodes.](http://docs.aws.amazon.com/ja_jp/parallelcluster/latest/ug/images/External_Slurmdbd_Architecture_ASG.png)

**警告**  
 AWS ParallelCluster と外部との間のトラフィックSlurmDBは暗号化されません。クラスターと外部 SlurmDB は、信頼できるネットワークで実行することをお勧めします。

## v3.3.0 AWS ParallelCluster 以降のヘッドノードを使用したSlurmアカウンティングSlurmdbdの操作
<a name="slurm-accounting-works-v3"></a>

Slurm アカウンティングを設定する前に、既存の外部データベースサーバーと `mysql` プロトコルを使用するデータベースが必要です。

でSlurmアカウンティングを設定するには AWS ParallelCluster、以下を定義する必要があります。
+ [Database](Scheduling-v3.md#Scheduling-v3-SlurmSettings-Database)/[Uri](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-Database-Uri) の形式で表す外部データベースサーバーの URI。サーバーが存在し、ヘッドノードから到達できる必要があります。
+ [Database](Scheduling-v3.md#Scheduling-v3-SlurmSettings-Database)/[PasswordSecretArn](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-Database-PasswordSecretArn) および [Database](Scheduling-v3.md#Scheduling-v3-SlurmSettings-Database)/[UserName](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-Database-UserName). で定義されている外部データベースにアクセスするための認証情報は、この情報 AWS ParallelCluster を使用して、 Slurmレベルとヘッドノード上の`slurmdbd`サービスでアカウンティングを設定します。 `slurmdbd`は、クラスターとデータベースサーバー間の通信を管理するデーモンです。

チュートリアルを完了するには、「[Slurm アカウンティングによるクラスターの作成](tutorials_07_slurm-accounting-v3.md)」を参照してください。

**注記**  
AWS ParallelCluster は、デフォルトのクラスターユーザーをデータベースのデータベース管理者として設定することで、アSlurmカウンティングデータベースの基本的なブートストラップを実行しますSlurm。 AWS ParallelCluster は、アカウンティングデータベースに他のユーザーを追加しません。Slurm データベースのアカウンティングエンティティを管理する責任はお客様にあります。

AWS ParallelCluster は[https://slurm.schedmd.com/slurmdbd.html](https://slurm.schedmd.com/slurmdbd.html)、クラスターがSlurmデータベースサーバー上に独自のデータベースを持つように を設定します。同じデータベースサーバーを複数のクラスターで使用できますが、各クラスターには独自の個別のデータベースがあります。 はクラスター名 AWS ParallelCluster を使用して、`slurmdbd`設定ファイル[https://slurm.schedmd.com/slurmdbd.conf.html#OPT_StorageLoc](https://slurm.schedmd.com/slurmdbd.conf.html#OPT_StorageLoc)パラメータでデータベースの名前を定義します。次の状況を考えてみます。データベースサーバーに存在するデータベースに、アクティブなクラスター名にマッピングされていないクラスター名が含まれています。この場合、そのクラスター名を使用して新しいクラスターを作成し、そのデータベースにマッピングできます。Slurm は新しいクラスターにデータベースを再利用します。

**警告**  
一度に同じデータベースを使用するように複数のクラスターを設定することはお勧めしません。これにより、パフォーマンスの問題またはデータベースのデッドロック状態が発生する可能性があります。
クラスターのヘッドノードで Slurm アカウンティングが有効になっている場合、強力な CPU、より多くのメモリ、およびより高いネットワーク帯域幅を使用するインスタンスタイプを使用することをお勧めします。Slurm アカウンティングによりクラスターのヘッドノードに負担が加わる可能性があります。

アカウンティング機能の現在のアーキテクチャ AWS ParallelCluster Slurmでは、次の図の設定例に示すように、各クラスターには`slurmdbd`デーモンの独自のインスタンスがあります。

 ![A configuration with two clusters that are connected to a MySQL server. Each cluster has their own slurmdbd daemon instance. Moreover, each cluster is connected to its own database through the server. Another configuration with a single cluster that has its own slurmdbd daemon instance. This configuration is connected to a MySQL server and is also connected to its own database through the server.](http://docs.aws.amazon.com/ja_jp/parallelcluster/latest/ug/images/slurm-acct-arch.png)

クラスター環境に Slurm カスタムマルチクラスター機能またはフェデレーション機能を追加する場合、すべてのクラスターが同じ `slurmdbd` インスタンスを参照する必要があります。この代替方法として、1 つのクラスターでアカウンティングを有効に AWS ParallelCluster Slurmし、最初のクラスターでホスト`slurmdbd`されている に接続するように他のクラスターを手動で設定することをお勧めします。

 AWS ParallelCluster バージョン 3.3.0 より前のバージョンを使用している場合は、この [HPC ブログ投稿](https://aws.amazon.com/blogs/compute/enabling-job-accounting-for-hpc-with-aws-parallelcluster-and-amazon-rds/)で説明されているアSlurmカウンティングを実装するための代替方法を参照してください。

## Slurm のアカウンティングに関する考慮事項
<a name="slurm-accounting-considerations-v3"></a>

### 異なる VPC のデータベースとクラスター
<a name="slurm-accounting-considerations-different-vpcs-v3"></a>

Slurm のアカウンティングを有効にするには、`slurmdbd` デーモンが実行する読み取り操作と書き込み操作のバックエンドとして機能するデータベースサーバーが必要です。クラスターを作成または更新して Slurm アカウンティングを有効にする前に、ヘッドノードがデータベースサーバーに到達できる必要があります。

クラスターが使用していない VPC にデータベースサーバーをデプロイする必要がある場合は、次の点を考慮します。
+ クラスター側の `slurmdbd` とデータベースサーバー間の通信を有効にするには、2 つの VPC 間の接続を設定する必要があります。詳細については、「Amazon Virtual Private Cloud ユーザーガイド**」の「[VPC ピア機能とは](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html)」を参照してください。
+ クラスターの VPC のヘッドノードにアタッチするセキュリティグループを作成する必要があります。2 つの VPC がピアリング接続されると、データベース側とクラスター側のセキュリティグループ間のクロスリンクが使用可能になります。詳細については、「Amazon Virtual Private Cloud ユーザーガイド**」の「[セキュリティグループのルール](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules)」を参照してください。

### `slurmdbd` とデータベースサーバー間の TLS 暗号化を設定する
<a name="slurm-accounting-considerations-tls-config-v3"></a>

 AWS ParallelCluster が提供するデフォルトのSlurmアカウンティング設定では、サーバーが Amazon RDS などの TLS encryption. AWS database サービスをサポートし、デフォルトで TLS 暗号化 Amazon Aurora をサポートしている場合、 はデータベースサーバーへの TLS 暗号化接続`slurmdbd`を確立します。

データベースサーバーで `require_secure_transport` パラメータを設定することにより、サーバー側の安全な接続を要求できます。これは、提供されている CloudFormation テンプレートで設定されます。

セキュリティのベストプラクティスに従って、`slurmdbd` クライアントのサーバー ID 検証も有効にすることをお勧めします。これを行うには、`slurmdbd.conf` で [StorageParameters](https://slurm.schedmd.com/slurmdbd.conf.html#OPT_StorageParameters) を設定します。サーバー CA 証明書をクラスターのヘッドノードにアップロードします。次に、`slurmdbd.conf` の `StorageParameters` の [SSL\_CA](https://slurm.schedmd.com/slurmdbd.conf.html#OPT_SSL_CA) オプションをヘッドノードのサーバー CA 証明書のパスに設定します。これにより、`slurmdbd` 側でのサーバー ID 検証が有効になります。これらの変更を行った後、`slurmdbd` サービスを再起動して ID 検証が有効になっているデータベースサーバーへの接続を再確立します。

### データベース認証情報を更新する
<a name="slurm-accounting-considerations-updates-v3"></a>

[Database](Scheduling-v3.md#Scheduling-v3-SlurmSettings-Database)/[UserName](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-Database-UserName) または [PasswordSecretArn](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-Database-PasswordSecretArn) の値を更新するには、まずコンピューティングフリートを停止する必要があります。シークレットに保存されている AWS Secrets Manager シークレット値が変更され、その ARN が変更されないとします。この状況では、クラスターは自動的にデータベースのパスワードを新しい値に更新しません。新しいシークレット値のクラスターを更新するには、ヘッドノードから次のコマンドを実行します。

```
$ sudo /opt/parallelcluster/scripts/slurm/update_slurm_database_password.sh
```

**警告**  
財務データが失われないように、コンピューティングフリートが停止している場合にのみデータベースパスワードを変更することをお勧めします。

### データベースのモニタリング
<a name="slurm-accounting-considerations-updates-monitoring-v3"></a>

 AWS データベースサービスのモニタリング機能を有効にすることをお勧めします。詳細については、「[Amazon RDS のモニタリング](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Monitoring.html)」または「[Amazon Aurora のモニタリング](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/MonitoringAurora.html)」のドキュメントを参照してください。