

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用外部集群创建集群 Slurmdbd 会计
<a name="external-slurmdb-accounting"></a>

学习如何使用外部配置和创建集群 Slurmdbd 会计。有关更多信息，请参阅 [。Slurm 会计 Amazon ParallelCluster](slurm-accounting-v3.md)。

使用 Amazon ParallelCluster 命令行界面 (CLI) 或 API 时，您只需为创建或更新 Amazon ParallelCluster 映像和集群时创建的 Amazon 资源付费。有关更多信息，请参阅[使用的Amazon 服务 Amazon ParallelCluster](aws-services-v3.md)。

 Amazon ParallelCluster 用户界面基于无服务器架构构建，你可以在其中使用它 Amazon Free Tier 大多数情况下的类别。有关更多信息，请参阅 [Amazon ParallelCluster UI 成本](install-pcui-costs-v3.md)。

在本教程中，您将使用 Amazon CloudFormation 快速创建模板来创建必要的组件，以便在与集群相同的 VPC 上部署 Slurmdbd 实例。该模板会为集群与数据库之间的连接创建基本的联网和安全配置。

**注意**  
从开始`version 3.10.0`， Amazon ParallelCluster 支持带有集群配置参数的外部 Slurmdbd。`SlurmSettings / ExternelSlurmdbd`

**注意**  
快速创建模板用作一个示例。此模板并不涵盖所有可能的使用案例。您负责创建一个外部 Slurmdbd，其配置和容量应适合您的生产工作负载。

**先决条件：**
+ Amazon ParallelCluster [已安装](install-v3-parallelcluster.md)。
+  Amazon CLI [已安装并配置。](https://docs.amazonaws.cn/cli/latest/userguide/getting-started-install.html)
+ 您有一个 [Amazon Elastic Compute Cloud 密钥对](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/ec2-key-pairs.html)。
+ 您的 Amazon Identity and Access Management 角色具有运行 [`pcluster`](pcluster-v3.md) CLI 所需的[权限](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 实例之间的连接。
+ **DBMSDatabase名称**：数据库的名称。
+ **DBMSUsername**：数据库的用户名。
+ **DBMSPasswordSecretArn**：包含数据库密码的密钥。
+ **DBMSUri**：数据库服务器的 URI。

**实例设置**
+ **InstanceType**：用于 slurmdbd 实例的实例类型。
+ **KeyName**：用于 slurmdbd 实例的亚马逊密 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>

提供的 Amazon CloudFormation 模板会生成一个包含一些已定义输出的 Amazon CloudFormation 堆栈。

从中 Amazon Web Services 管理控制台，查看 Amazon CloudFormation 堆栈中的 “**输出**” 选项卡，查看创建的实体。要启用 Slurm 记账，其中一些输出必须在 Amazon 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)/P [ort](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-ExternalSlurmdbd-Port) 集群配置参数值。
+ **AccountingClientSecurityGroup**：这是附加到群集头节点的安全组，在 /Networking [HeadNode](HeadNode-v3.md)/配置参数[中](HeadNode-v3.md#HeadNode-v3-Networking)定义[AdditionalSecurityGroups](HeadNode-v3.md#yaml-HeadNode-Networking-AdditionalSecurityGroups)。

此外，在 Amazon CloudFormation 堆栈视图的 “**参数**” 选项卡中：
+ **MungeKeySecretArn**: 用于 [SlurmSettings](Scheduling-v3.md#Scheduling-v3-SlurmSettings)/cl [MungeKeySecretArn](Scheduling-v3.md#yaml-Scheduling-SlurmSettings-MungeKeySecretArn)uster 配置参数值。

使用输出值更新集群配置文件数据库参数。使用 pcluster Amazon CLI 创建集群。

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

创建集群后，您可以开始使用 Slurm 记账命令，例如`sacctmgr`或`sacct`。

**警告**  
和外部`ParallelCluster`之间的流量 SlurmDB 未加密。建议运行集群和外部集群 SlurmDB 在可信的网络中。



