

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

# 为服务管理的车队提供永久存储
<a name="smf-persistent-storage-dev"></a>

AWS Deadline Cloud（Deadline Cloud）永久存储将专用的亚马逊弹性区块存储 (Amazon EBS) Elastic Block Store gp3 卷连接到服务管理的车队员工。这些卷可跨工作线程生命周期事件保存 conda 软件包安装、应用程序缓存和版本控制工作区等数据。有关概念性概述，请参阅 De *AWS adline Cloud 用户*指南中的[服务管理队列的永久存储](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/volumes.html)。

## 实例集配置
<a name="smf-persistent-storage-dev-fleet-config"></a>

要启用永久存储，请在调用`CreateFleet`或`serviceManagedEc2FleetConfiguration`时将`persistentVolumeConfiguration`对象包含在中`UpdateFleet`。

### 配置参数
<a name="smf-persistent-storage-dev-params"></a>

该`persistentVolumeConfiguration`对象接受以下参数。有关有效范围和默认值，请参阅 De *adline Cloud API 参考[CreateFleet](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_CreateFleet.html)*中的。


| 参数 | Type | 必需 | 说明 | 
| --- | --- | --- | --- | 
| sizeGiB | 整数 | 否 | 永久卷的大小，以 GiB 为单位。 | 
| iops | 整数 | 否 | gp3 卷的预配置 IOPS。 | 
| throughputMiB | 整数 | 否 | gp3 卷的 MiB/s 预配置吞吐量。 | 
| mountPath | 字符串 | 是 | 工作器上的安装位置。对于Linux，请指定绝对路径（例如，/mnt/persistent）。对于Windows，请指定驱动器号（例如，D:）。 | 
| lastUsedTtlHours | 整数 | 否 | 在自动清理之前上次使用卷后的小时数。 | 

### 创建具有永久存储空间的舰队
<a name="smf-persistent-storage-dev-create-example"></a>

以下 AWS CLI 示例创建了一个启用了永久存储的服务托管队列：

```
aws deadline create-fleet \
    --farm-id {{farm-0123456789abcdef0}} \
    --display-name "Rendering Fleet" \
    --max-worker-count 20 \
    --configuration '{
      "serviceManagedEc2FleetConfiguration": {
        "instanceCapabilities": {
          "vCpuCount": {"min": 4, "max": 16},
          "memoryMiB": {"min": 16384, "max": 65536},
          "osFamily": "LINUX",
          "rootEbsVolume": {"sizeGiB": 250}
        },
        "instanceMarketOptions": {"type": "spot"},
        "persistentVolumeConfiguration": {
          "sizeGiB": 2048,
          "iops": 16000,
          "throughputMiB": 500,
          "mountPath": "/mnt/persistent",
          "lastUsedTtlHours": 168
        }
      }
    }'
```

### 更新永久存储配置
<a name="smf-persistent-storage-dev-update-example"></a>

以下 AWS CLI 示例向现有队列添加永久存储：

```
aws deadline update-fleet \
    --farm-id {{farm-0123456789abcdef0}} \
    --fleet-id {{fleet-0123456789abcdef0}} \
    --configuration '{
      "serviceManagedEc2FleetConfiguration": {
        "instanceCapabilities": {
          "vCpuCount": {"min": 4, "max": 16},
          "memoryMiB": {"min": 16384, "max": 65536},
          "osFamily": "LINUX",
          "rootEbsVolume": {"sizeGiB": 250}
        },
        "instanceMarketOptions": {"type": "spot"},
        "persistentVolumeConfiguration": {
          "sizeGiB": 2048,
          "iops": 16000,
          "throughputMiB": 500,
          "mountPath": "/mnt/persistent",
          "lastUsedTtlHours": 168
        }
      }
    }'
```

要禁用永久存储，请在`UpdateFleet`调用中从队列配置中省略该`persistentVolumeConfiguration`对象。当现有卷不再与工作人员连接时，Deadline Cloud 会自动清理这些卷。

## 卷管理操作
<a name="smf-persistent-storage-dev-volume-apis"></a>

您可以使用以下操作来管理永久卷：

### GetVolume
<a name="smf-persistent-storage-dev-get-volume"></a>

检索有关特定永久卷的详细信息。

**请求**

```
aws deadline get-volume \
    --farm-id {{farm-0123456789abcdef0}} \
    --fleet-id {{fleet-0123456789abcdef0}} \
    --volume-id {{volume-0123456789abcdef0}}
```

**响应**

```
{
  "volumeId": "volume-0123456789abcdef0",
  "fleetId": "fleet-0123456789abcdef0",
  "farmId": "farm-0123456789abcdef0",
  "state": "AVAILABLE",
  "volumeType": "gp3",
  "sizeGiB": 2048,
  "iops": 16000,
  "throughputMiB": 500,
  "availabilityZone": "us-west-2a",
  "attachedWorkerId": null,
  "createdAt": "2024-01-15T10:30:00Z",
  "lastAttachedAt": "2024-11-15T14:22:00Z",
  "ttl": "2024-11-22T14:22:00Z"
}
```

该`state`字段表示当前的音量状态。可能的值有：
+ `AVAILABLE`— 卷已拆下，可以安装了。
+ `IN_USE`— 该卷当前已连接到工作人员。
+ `PENDING_CREATION`— 正在创建卷。
+ `PENDING_ATTACHMENT`— 该卷是为连接至工作人员而保留的。
+ `PENDING_DELETION`— 该卷已标记为删除。

## 环境变量
<a name="smf-persistent-storage-dev-env-var"></a>

成功安装永久存储后，Deadline Cloud 会在工作器上设置以下环境变量：

```
DEADLINE_PERSISTENT_MOUNT={{/mnt/persistent}}
```

环境变量的值是您在舰队配置中指定的挂载路径。此环境变量可供工作器上运行的所有作业进程使用，包括主机配置脚本和作业模板操作。

当环境变量存在时，以下运行时使用者会自动使用永久存储：
+ **Conda 队列环境** — 将安装的软件包存储在永久卷上。
+ **VFS 不可变缓存** — 将资产缓存存储在永久卷上。

您可以在 Open Job Description 作业模板中引用环境变量，将自定义数据存储在永久卷上。以下示例显示了将输出写入永久存储的步骤：

```
steps:
  - name: ProcessAssets
    script:
      actions:
        onRun:
          command: bash
          args:
            - "-c"
            - |
              CACHE_DIR="${DEADLINE_PERSISTENT_MOUNT}/my-app-cache"
              mkdir -p "$CACHE_DIR"
              # Your processing logic here
```

## 配置更改行为
<a name="smf-persistent-storage-dev-config-changes"></a>

下表描述了配置更改如何影响现有的永久性卷：


| 更改 | 行为 | 
| --- | --- | 
| 提高 IOPS 或吞吐量 | Deadline Cloud 会在下一卷附加之前应用更改。 | 
| 降低 IOPS 或吞吐量 | Deadline Cloud 会在下一卷附加之前应用更改。 | 
| 增加音量大小 | Deadline Cloud 会在下一个附件之前放大音量，并在工作器启动期间自动扩展文件系统。 | 
| 减小音量大小 | 不支持。无法缩小 Amazon EBS 卷的大小。 | 
| 更改装载路径 | 仅适用于新员工。现有工作人员保留其当前的挂载路径。 | 
| 移除永久存储 | Deadline Cloud 会将现有卷标记为待删除，并在这些卷不再连接到工作线程时将其清理。 | 