

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

# 服務受管機群的持久性儲存
<a name="smf-persistent-storage-dev"></a>

AWS Deadline Cloud (Deadline Cloud) 持久性儲存會將專用 Amazon Elastic Block Store (Amazon EBS) gp3 磁碟區連接至服務受管機群工作者。這些磁碟區會保留資料，例如跨工作者生命週期事件的 conda 套件安裝、應用程式快取和版本控制工作區。如需概念性概觀，請參閱*AWS 《截止日期雲端使用者指南*》中的[服務受管機群的持久性儲存](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` 物件接受下列參數。如需有效範圍和預設值，請參閱*《截止日期雲端 API 參考*》中的 [CreateFleet](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_CreateFleet.html)。


| 參數 | Type | 必要 | 說明 | 
| --- | --- | --- | --- | 
| sizeGiB | Integer | 否 | 持久性磁碟區的大小，以 GiB 為單位。 | 
| iops | Integer | 否 | gp3 磁碟區的佈建 IOPS。 | 
| throughputMiB | Integer | 否 | gp3 磁碟區的佈建輸送量，以 MiB/s 為單位。 | 
| mountPath | String | 是 | 工作者上的掛載位置。針對 Linux，指定絕對路徑 （例如 /mnt/persistent)。針對 Windows，指定磁碟機代號 （例如 D:)。 | 
| lastUsedTtlHours | Integer | 否 | 磁碟區上次使用之後自動清除之前的小時數。 | 

### 建立具有持久性儲存的機群
<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>

下表說明組態變更如何影響現有的持久性磁碟區：


| 變更 | Behavior (行為) | 
| --- | --- | 
| 增加 IOPS 或輸送量 | 截止日期 雲端會在下一個磁碟區連接之前套用變更。 | 
| 減少 IOPS 或輸送量 | 截止日期 雲端會在下一個磁碟區連接之前套用變更。 | 
| 增加磁碟區大小 | Deadline Cloud 會在下一個連接之前擴大磁碟區，並在工作者啟動期間自動擴展檔案系統。 | 
| 減少磁碟區大小 | 不支援。Amazon EBS 磁碟區無法縮減大小。 | 
| 變更掛載路徑 | 僅適用於新工作者。現有的工作者會保留其目前的掛載路徑。 | 
| 移除持久性儲存 | Deadline Cloud 會將現有磁碟區標記為刪除，並在不再連接至工作者時將其清除。 | 