使用 Azure Resource Manager 樣本建立 Azure 受控 Lustre 文件系統
您可以使用 Azure Resource Manager (ARM) 範本,自動建立 Azure 受控 Lustre 文件系統。 本文說明基本程式,並提供您需要的檔案範例。
本文提供兩種不同的方法來建立ARM範例:
- 使用 JSON 直接建立 ARM 範本。 若要深入瞭解,請參閱 JSON 範本語法。
- 使用 Bicep,其使用更簡單的語法來提供組態詳細數據。 當您部署範本時,Bicep 檔案會轉換成 ARM 範本檔案。 若要深入瞭解,請參閱 Bicep 檔。
若要深入了解這些選項,請參閱 比較範本的 JSON 和 Bicep。
選擇檔案系統類型和大小
在撰寫範本之前,您必須對 Azure 受控 Lustre 文件系統做出一些決策。 若要深入瞭解組態選項,請參閱建立 Azure 受控 Lustre 文件系統中的設定詳細數據。
當您使用範本時,請指定要定義要建立之 Azure Managed Lustre 檔案系統基本類型的 SKU。 SKU 代表產品層。 它會設定系統品質,例如磁碟類型、支援的記憶體數量,以及最大輸送量容量。 如果您使用 Azure 入口網站 來建立 Azure 受控 Lustre 檔案系統,您可以選取其功能來間接指定系統類型。
下表顯示每個支援的 SKU 中的輸送量和記憶體大小值。 這些 SKU 會建立使用長期 SSD 記憶體的檔案系統。
SKU | 每 TiB 儲存體的輸送量 | 儲存體下限 | 儲存體上限 | [遞增] |
---|---|---|---|---|
AMLFS-Durable-Premium-40 | 40 MBps | 48 TB | 768 TB | 48 TB |
AMLFS-Durable-Premium-125 | 125 MBps | 16 TB | 128 TB | 16 TB |
AMLFS-Durable-Premium-250 | 250 MBps | 8 TB | 128 TB | 8 TB |
AMLFS-Durable-Premium-500 | 500 MBps | 4 TB | 128 TB | 4 TB |
如果您需要大於所列最大值的記憶體值,您可以 開啟支援票證 來探索選項。
若要檢查 SKU 功能,您可以使用工作流程來建立受控 Lustre 文件系統,方法是使用 Azure 入口網站。 SKU 特定設定位於 [檔案系統詳細資料] 下的 [基本] 索引標籤上。
建立範本檔案
決定組態選項之後,您可以建立範本檔案。 範本檔案是 JSON 或 Bicep 檔案,其中包含 Azure 受控 Lustre 檔系統的組態詳細數據。
範本屬性值
若要使用 ARM 範本建立 Azure 受控 Lustre 文件系統,您需要在範本檔案中包含下列資訊。 Bicep 和 JSON 之間的確切語法不同,因此請參閱常值範例。
檔案系統
名稱 | 描述 | 值 |
---|---|---|
type | 要建立的資源類型。 | Microsoft.StorageCache/amlFileSystems |
apiVersion | 要使用的 Azure 受控 Lustre API 版本。 | 使用目前的 API 版本,例如 2024-03-01 |
NAME | Azure 受控 Lustre 檔案系統的唯一名稱。 | 字串 (必要) |
location | 資源所在的地理位置。 例如,使用簡短名稱而非顯示名稱,請使用 eastus 而非 East US 。 |
字串 (必要) |
tags | 檔案系統的資源標記。 | 標記名稱和值的字典;請參閱 範本中的標記 |
SKU | 資源的效能 SKU。 | 請參閱 SKU 名稱 |
identity | 如果已設定,則為文件系統使用的受控識別。 | 請參閱 身分識別 |
內容 | 檔案系統的屬性。 | 請參閱 屬性 |
區域 | 資源的可用性區域。 此欄位只應包含數位中的單一元素。 | string[] |
身分識別
名稱 | 描述 | 值 |
---|---|---|
type | 用於資源的身分識別類型。 | None , UserAssigned |
userAssignedIdentities | 字典,其中每個索引鍵都是使用者指派的身分識別資源標識符,而每個索引鍵的值都是空的字典。 | 請參閱 範本檔 |
屬性
名稱 | 描述 | 值 |
---|---|---|
encryptionSettings | 檔案系統的加密設定。 | 請參閱 加密設定 |
filesystemSubnet | 文件系統使用的子網。 | 字串 (必要) |
hsm | 檔系統的 Blob 記憶體容器設定。 | 請參閱 HSM 設定 |
maintenanceWindow | 指定系統更新可能發生的日期和時間。 | 請參閱 維護期間 (必要) |
rootSquashSettings | 指定文件系統的根壁球設定。 | 請參閱 根壁球設定 |
storageCapacityTiB | 在 TiB 中檔案系統的大小。 若要深入瞭解此欄位根據 SKU 允許的值,請參閱 選擇檔案系統類型和大小。 | int (必要) |
加密設定
名稱 | 描述 | 值 |
---|---|---|
keyEncryptionKey | 指定 金鑰保存庫 中加密金鑰的位置。 | 請參閱 範本檔 |
HSM 設定
名稱 | 描述 | 值 |
---|---|---|
容器 | 用來將命名空間和封存從命名空間凍結的記憶體容器資源標識碼。 資源提供者必須具有在記憶體帳戶上建立 SAS 令牌的許可權。 | 字串 (必要) |
importPrefix | 只有以此路徑/前置詞開頭的非記錄容器中的 Blob 會匯入叢集命名空間。 這隻會在初始建立 Azure 受控 Lustre 檔案系統期間使用。 | 字串 |
importPrefixesInitial | 只有以這個陣列中其中一個路徑/前置詞開頭的非記錄容器中的 Blob 會匯入叢集命名空間。 只有在初始建立 Azure Managed Lustre 文件系統時,才會使用此值,且 『/』 作為預設值。 | string[] |
loggingContainer | 用於記錄事件和錯誤的記憶體容器資源標識碼。 必須與凍結和封存容器位於相同記憶體帳戶中的個別容器。 資源提供者必須具有在記憶體帳戶上建立 SAS 令牌的許可權。 | 字串 (必要) |
注意
屬性 importPrefixesInitial
可讓您指定多個前置詞,以便將數據匯入文件系統,同時 importPrefix
可讓您指定單一前置詞。 這兩個屬性的預設值為 /
。 如果您定義其中一個屬性,則無法定義另一個屬性。 如果您定義這兩個屬性,部署就會失敗。
若要深入瞭解,請參閱 彙入前置詞。
維護時間範圍
名稱 | 描述 | 值 |
---|---|---|
dayOfWeek | 維護期間可能發生的一周中的一天。 | Sunday 、Monday 、、Wednesday Tuesday 、Thursday 、、、 Friday Saturday |
timeOfDayUTC | 維護期間可能會發生一天(UTC) 的時間。 | 字串 範例: 22:30 |
屬性 timeOfDayUTC
會使用 24 小時制格式。 例如, 22:30
表示下午 10:30。 模式為 ^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
。
根壓縮設定
名稱 | 描述 | 值 |
---|---|---|
mode | AML 檔系統的壁球模式。 「全部」:檔案上的使用者和群組標識符會壓縮為非受信任系統上所有使用者所提供的值。 'RootOnly':檔案上的使用者和群組標識符會壓縮為僅針對非信任系統上的根使用者提供值。 「無」:不會針對任何系統上的任何使用者執行使用者和群組標識符的壓縮。 | All 、 、 None RootOnly |
noSquashNidLists | 要新增至 TrustedSystems 的分號分隔 NID IP 位址清單。 | 字串 |
squashGID | 要壓縮的群組標識碼。 | int |
squashUID | 要壓縮的使用者識別碼。 | int |
SKU 名稱
名稱 | 描述 | 值 |
---|---|---|
NAME | 資源的 SKU 名稱。 | AMLFS-Durable-Premium-40 、 、 AMLFS-Durable-Premium-125 、 AMLFS-Durable-Premium-250 AMLFS-Durable-Premium-500 |
使用範本部署檔系統
下列範例步驟會使用 Azure CLI 命令來建立新的資源群組,並在其中建立 Azure 受控 Lustre 文件系統。 這些步驟假設您已 選擇文件系統類型和大小 ,並 建立範本檔案,如本文稍早所述。 也請確定您符合所有 必要條件。
設定您的預設訂用帳戶:
az account set --subscription "<subscription-id>" az account show
或者,為 Azure 受控 Lustre 文件系統建立新的資源群組。 如果您想要使用現有的資源群組,請略過此步驟,並在執行範本命令時提供現有資源群組的名稱。
az group create --name <rg-name> --location <region-short-name>
只要資源位於相同的訂用帳戶中,您的文件系統就可以在自己的資源群組外部使用資源。
使用範本部署 Azure 受控 Lustre 檔案系統。 語法取決於您使用的是 JSON 或 Bicep 檔案,以及檔案數目。
您可以將 Bicep 和 JSON 範本部署為單一檔案或多個檔案。 如需詳細資訊,並查看每個選項的確切語法,請參閱 ARM範本檔。
範例 JSON 命令:
az deployment group create \ --name <example-deployment> \ --resource-group <resource-group-name> \ --template-file azlustre-template.json
範例 Bicep 命令:
az deployment group create \ --resource-group <ResourceGroupName> \ --template-file azlustre.bicep
JSON 範例
本節顯示 JSON 範例內容。 您可以在建立自己的 ARM 樣本時移除選擇性參數。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.StorageCache/amlFilesystems",
"apiVersion": "2024-03-01",
"name": "amlfs-example",
"location": "eastus",
"tags": {
"Dept": "ContosoAds"
},
"sku": {
"name": "AMLFS-Durable-Premium-250"
},
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-name>": {}
}
},
"properties": {
"encryptionSettings": {
"keyEncryptionKey": {
"keyUrl": "https://<keyvault-name>.vault.azure.net/keys/kvk/<key>",
"sourceVault": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<keyvault-name>"
}
}
},
"filesystemSubnet": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.Network/virtualNetworks/<vnet-name>/subnets/<subnet-name>",
"hsm": {
"settings": {
"container": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>",
"loggingContainer": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<logging-container-name>",
"importPrefixesInitial": [
"/"
]
}
},
"maintenanceWindow": {
"dayOfWeek": "Saturday",
"timeOfDayUTC": "22:00"
},
"rootSquashSettings": {
"mode": "All",
"noSquashNidLists": "10.0.0.[5-6]@tcp;10.0.1.2@tcp",
"squashGID": "99",
"squashUID": "99"
},
"storageCapacityTiB": "16"
},
"zones": [
"1"
],
}
],
"outputs": {}
}
Bicep 範例
本節顯示 Bicep 檔案的範例內容。 您可以在建立自己的參數時移除選擇性參數。
resource filesystem 'Microsoft.StorageCache/amlFilesystems@2024-03-01' = {
name: 'amlfs-example'
location: 'eastus'
tags: {
Dept: 'ContosoAds'
}
sku: {
name: 'AMLFS-Durable-Premium-250'
}
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-name>': {}
}
}
properties: {
encryptionSettings: {
keyEncryptionKey: {
keyUrl: 'https://<keyvault-name>.vault.azure.net/keys/kvk/<key>'
sourceVault: {
id: '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<keyvault-name>'
}
}
}
filesystemSubnet: '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.Network/virtualNetworks/<vnet-name>/subnets/<subnet-name>'
hsm: {
settings: {
container: '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>'
importPrefixesInitial: [
'/'
]
loggingContainer: '/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rg-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<logging-container-name>'
}
}
maintenanceWindow: {
dayOfWeek: 'Saturday'
timeOfDayUTC: '22:00'
}
rootSquashSettings: {
mode: 'All'
noSquashNidLists: '10.0.0.[5-6]@tcp;10.0.1.2@tcp'
squashGID: 99
squashUID: 99
}
storageCapacityTiB: 16
}
zones: [
'1'
]
}