

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用外部Slurmdbd會計建立叢集
<a name="external-slurmdb-accounting"></a>

了解如何設定和建立具有外部Slurmdbd會計的叢集。如需詳細資訊，請參閱[Slurm使用 進行會計 AWS ParallelCluster](slurm-accounting-v3.md)。

使用 AWS ParallelCluster 命令列界面 (CLI) 或 API 時，您只需為 AWS 建立或更新 AWS ParallelCluster 映像和叢集時建立的資源付費。如需詳細資訊，請參閱 [AWS 所使用的服務 AWS ParallelCluster](aws-services-v3.md)。

UI AWS ParallelCluster 是以無伺服器架構為基礎，在大多數情況下，您可以在 AWS Free Tier類別中使用它。如需詳細資訊，請參閱 [AWS ParallelCluster UI 成本](install-pcui-costs-v3.md)。

在本教學課程中，您會使用 AWS CloudFormation 快速建立範本來建立必要的元件，以在與叢集相同的 VPC 上部署 Slurmdbd 執行個體。範本會為叢集與資料庫之間的連線建立基本聯網和安全性組態。

**注意**  
從 開始`version 3.10.0`， 使用叢集組態參數 AWS ParallelCluster 支援外部 Slurmdbd`SlurmSettings / ExternelSlurmdbd`。

**注意**  
快速建立範本做為範例。此範本未涵蓋所有可能的使用案例。您有責任使用適合您生產工作負載的組態和容量建立外部 Slurmdbd。

**事前準備：**
+ AWS ParallelCluster [已安裝 ](install-v3-parallelcluster.md)。
+  AWS CLI [已安裝並設定 。](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
+ 您有 [Amazon Elastic Compute Cloud 金鑰對](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)。
+ 您的 AWS Identity and Access Management 角色具有執行 CLI [`pcluster`](pcluster-v3.md) 所需的[許可](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-example-user-policies)。
+ 您有Slurm會計資料庫。若要逐步完成建立Slurm會計資料庫的教學課程，請遵循[建立 Slurm 會計資料庫堆疊](tutorials_07_slurm-accounting-v3.md)中的步驟 1 和 2。

## 步驟 1：建立 Slurmdbd 堆疊
<a name="external-slurmdb-accounting-step1"></a>

在本教學課程中，使用 [CloudFormation 快速建立範本 (`us-east-1`)](https://us-east-1.console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/create/review?stackName=pcluster-slurm-dbd&templateURL=https://us-east-1-aws-parallelcluster.s3.amazonaws.com/templates/1-click/external-slurmdbd.json) 來建立 Slurmdbd 堆疊。範本需要以下輸入：

**聯網**
+ **VPCId**：啟動 Slurmdbd 執行個體的 VPC ID。
+ **SubnetId**：啟動 Slurmdbd 執行個體的子網路 ID。
+ **PrivatePrefix**：VPC 的 CIDR 字首。
+ **PrivateIp**：指派給 Slurmdbd 執行個體的次要私有 IP。

**資料庫連線**
+ **DBMSClientSG**：要連接到 Slurmdbd 執行個體的安全群組。此安全群組應允許資料庫伺服器與 Slurmdbd 執行個體之間的連線。
+ **DBMSDatabaseName**：資料庫的名稱。
+ **DBMSUsername**：資料庫的使用者名稱。
+ **DBMSPasswordSecretArn**：包含資料庫密碼的秘密。
+ **DBMSUri**：資料庫伺服器的 URI。

**執行個體設定**
+ **InstanceType**：用於 slurmdbd 執行個體的執行個體類型。
+ **KeyName**：用於 slurmdbd 執行個體的 Amazon EC2 金鑰對。

**Slurmdbd 設定**
+ **AMIID**：Slurmdbd 執行個體的 AMI。AMI 應為 ParallelCluster AMI。ParallelCluster AMI 的版本會決定 Slurmdbd 的版本。
+ **MungeKeySecretArn**：包含 munge 金鑰的秘密，用於驗證 Slurmdbd 和叢集之間的通訊。
+ **SlurmdbdPort**：slurmdbd 使用的連接埠號碼。
+ **EnableSlurmdbdSystemService**：啟用 slurmdbd 做為系統服務，並在執行個體啟動時執行。

**警告**  
如果資料庫是由不同版本的 所建立SlurmDB，請勿使用 Slurmdbd做為系統服務。  
如果資料庫包含大量項目， Slurm Database Daemon (SlurmDBD)可能需要數十分鐘才能更新資料庫，而且在此時間間隔內不會回應。  
升級 之前SlurmDB，請先備份資料庫。如需詳細資訊，請參閱 [Slurm 文件](https://slurm.schedmd.com/quickstart_admin.html#upgrade)。

## 步驟 2：建立Slurmdbd已啟用外部的叢集
<a name="external-slurmdb-accounting-step2"></a>

提供的 CloudFormation 範本會產生具有一些已定義輸出的 CloudFormation 堆疊。

從 AWS 管理主控台檢視 CloudFormation 堆疊中的**輸出**索引標籤，以檢閱建立的實體。若要啟用 Slurm會計，必須在 AWS ParallelCluster 組態檔案中使用其中一些輸出：
+ **SlurmdbdPrivateIp**：用於 [SlurmSettings](Scheduling-v3.md#Scheduling-v3-SlurmSettings)/[ExternalSlurmdbd](Scheduling-v3.md#Scheduling-v3-SlurmSettings-ExternalSlurmdbd)/[主機叢集組態](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-ExternalSlurmdbd-Host)參數。
+ **SlurmdbdPort**：用於 [ SlurmSettings](Scheduling-v3.md#Scheduling-v3-SlurmSettings)/[ExternalSlurmdbd](Scheduling-v3.md#Scheduling-v3-SlurmSettings-ExternalSlurmdbd)/[連接埠](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-ExternalSlurmdbd-Port)叢集組態參數值。
+ **AccountingClientSecurityGroup**：這是連接到叢集前端節點的安全群組，其定義在 [HeadNode](HeadNode-v3.md) / [Networking](HeadNode-v3.md#HeadNode-v3-Networking) / [AdditionalSecurityGroups](HeadNode-v3.md#yaml-HeadNode-Networking-AdditionalSecurityGroups) 組態參數中。

此外，從 CloudFormation 堆疊檢視中的**參數**索引標籤：
+ **MungeKeySecretArn**：用於 [SlurmSettings](Scheduling-v3.md#Scheduling-v3-SlurmSettings) / [MungeKeySecretArn](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-MungeKeySecretArn) 叢集組態參數值。

使用輸出值更新您的叢集組態檔案資料庫參數。使用叢集 AWS CLI 來建立叢集。

```
$  pcluster create-cluster -n cluster-3.x-c path/to/cluster-config.yaml
```

建立叢集之後，您可以開始使用Slurm會計命令，例如 `sacctmgr`或 `sacct`。

**警告**  
`ParallelCluster` 與外部 之間的流量SlurmDB不會加密。建議在信任的網路SlurmDB中執行叢集和外部 。



