本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为服务管理的车队提供永久存储
AWS Deadline Cloud(Deadline Cloud)永久存储将专用的亚马逊弹性区块存储 (Amazon EBS) Elastic Block Store gp3 卷连接到服务管理的车队员工。这些卷可跨工作线程生命周期事件保存 conda 软件包安装、应用程序缓存和版本控制工作区等数据。有关概念性概述,请参阅 De AWS adline Cloud 用户指南中的服务管理队列的永久存储。
实例集配置
要启用永久存储,请在调用CreateFleet或serviceManagedEc2FleetConfiguration时将persistentVolumeConfiguration对象包含在中UpdateFleet。
配置参数
该persistentVolumeConfiguration对象接受以下参数。有关有效范围和默认值,请参阅 De adline Cloud API 参考CreateFleet中的。
| 参数 | Type | 必需 | 说明 |
|---|---|---|---|
sizeGiB |
整数 | 否 | 永久卷的大小,以 GiB 为单位。 |
iops |
整数 | 否 | gp3 卷的预配置 IOPS。 |
throughputMiB |
整数 | 否 | gp3 卷的 MiB/s 预配置吞吐量。 |
mountPath |
字符串 | 是 | 工作器上的安装位置。对于Linux,请指定绝对路径(例如,/mnt/persistent)。对于Windows,请指定驱动器号(例如,D:)。 |
lastUsedTtlHours |
整数 | 否 | 在自动清理之前上次使用卷后的小时数。 |
创建具有永久存储空间的舰队
以下 AWS CLI 示例创建了一个启用了永久存储的服务托管队列:
aws deadline create-fleet \ --farm-idfarm-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 } } }'
更新永久存储配置
以下 AWS CLI 示例向现有队列添加永久存储:
aws deadline update-fleet \ --farm-idfarm-0123456789abcdef0\ --fleet-idfleet-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 会自动清理这些卷。
卷管理操作
您可以使用以下操作来管理永久卷:
GetVolume
检索有关特定永久卷的详细信息。
请求
aws deadline get-volume \ --farm-idfarm-0123456789abcdef0\ --fleet-idfleet-0123456789abcdef0\ --volume-idvolume-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— 该卷已标记为删除。
环境变量
成功安装永久存储后,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
配置更改行为
下表描述了配置更改如何影响现有的永久性卷:
| 更改 | 行为 |
|---|---|
| 提高 IOPS 或吞吐量 | Deadline Cloud 会在下一卷附加之前应用更改。 |
| 降低 IOPS 或吞吐量 | Deadline Cloud 会在下一卷附加之前应用更改。 |
| 增加音量大小 | Deadline Cloud 会在下一个附件之前放大音量,并在工作器启动期间自动扩展文件系统。 |
| 减小音量大小 | 不支持。无法缩小 Amazon EBS 卷的大小。 |
| 更改装载路径 | 仅适用于新员工。现有工作人员保留其当前的挂载路径。 |
| 移除永久存储 | Deadline Cloud 会将现有卷标记为待删除,并在这些卷不再连接到工作线程时将其清理。 |