Azure Resource Manager テンプレートを使用して Azure Managed Lustre ファイル システムを作成する
Azure Managed Lustre ファイル システムの作成は、 Azure Resource Manager (ARM) テンプレートを使用して自動化できます。 この記事では、基本的な手順について説明し、必要なファイルの例を示します。
この記事では、ARM テンプレートを作成するための 2 つの異なる方法の例を示します。
- JSON を使用して ARM テンプレートを直接作成します。 詳細については、 JSON テンプレートの構文を参照してください。
- Bicep を使用します。この構文では、より単純な構文を使用して構成の詳細を指定します。 テンプレートをデプロイすると、Bicep ファイルが ARM テンプレート ファイルに変換されます。 詳細については、 Bicep のドキュメントを参照してください。
これらのオプションの詳細については、「 テンプレートの JSON と Bicep の比較」を参照してください。
ファイル システムの種類とサイズを選択する
テンプレートを作成する前に、Azure Managed Lustre ファイル システムについていくつかの決定を行う必要があります。 構成オプションの詳細については、「 Azure Managed Lustre ファイル システムの作成」のセットアップの詳細を参照してください。
テンプレートを使用する場合は、作成する Azure Managed Lustre ファイル システムの基本的な種類を定義する SKU を指定します。 SKU は製品レベルを表します。 ディスクの種類、サポートされているストレージの量、最大スループット容量などのシステム品質を設定します。 Azure portal を使用して Azure Managed 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 の機能を確認するには、Azure portal を使用してマネージド Lustre ファイル システムを作成するための ワークフロー。 SKU 固有の設定は、 Basics タブの File システムの詳細にあります。
テンプレート ファイルを作成する
構成オプションを決定したら、テンプレート ファイルを作成できます。 テンプレート ファイルは、Azure Managed Lustre ファイル システムの構成の詳細を含む JSON または Bicep ファイルです。
テンプレート プロパティの値
ARM テンプレートを使用して Azure Managed Lustre ファイル システムを作成するには、テンプレート ファイルに次の情報を含める必要があります。 正確な構文は Bicep と JSON で異なるので、リテラル値の例を参照してください。
ファイル システム
名前 | Description | 値 |
---|---|---|
type | 作成するリソースの種類。 | Microsoft.StorageCache/amlFileSystems |
apiVersion | 使用する Azure Managed Lustre API のバージョン。 | たとえば、現在の API バージョンを使用します。 2024-03-01 |
name | Azure Managed Lustre ファイル システムの一意の名前。 | string (必須) |
location | リソースが存在する地理的な場所。 たとえば、表示名ではなく短い名前を使用します。たとえば、East US ではなくeastus を使用します。 |
string (必須) |
tags | ファイル システムのリソース タグ。 | タグ名と値のディクショナリ。テンプレートの タグを参照してください |
sku | リソースのパフォーマンス SKU。 | SKU 名を参照してください |
ID | ファイル システムに使用するマネージド ID (構成されている場合)。 | Identity を参照してください |
properties | ファイル システムのプロパティ。 | Properties を参照してください |
ゾーン | リソースの可用性ゾーン。 このフィールドには、配列内の 1 つの要素のみを含める必要があります。 | string[] |
ID
名前 | Description | 値 |
---|---|---|
type | リソースに使用される ID の種類。 | None , UserAssigned |
userAssignedIdentities | 各キーがユーザー割り当て ID リソース ID であり、各キーの値が空のディクショナリであるディクショナリ。 | template ドキュメントを参照してください |
プロパティ
件名 | Description | 値 |
---|---|---|
encryptionSettings | ファイル システムの暗号化設定。 | Encryption の設定を参照してください |
filesystemSubnet | ファイル システムが使用するサブネット。 | string (必須) |
hsm | ファイル システムの Blob Storage コンテナーの設定。 | HSM 設定を参照してください |
maintenanceWindow | システム更新が発生する可能性のある日時を指定します。 | 「< |
rootSquashSettings | ファイル システムのルート スカッシュ設定を指定します。 | Root スカッシュの設定を参照してください |
storageCapacityTiB | ファイル システムのサイズ (TiB 単位)。 SKU に基づくこのフィールドの許容値の詳細については、「 ファイル システムの種類とサイズを参照してください。 | int (必須) |
暗号化の設定
名前 | Description | 値 |
---|---|---|
keyEncryptionKey | Key Vault 内の暗号化キーの場所を指定します。 | template ドキュメントを参照してください |
HSM の設定
名前 | Description | 値 |
---|---|---|
container | 名前空間のハイドレートと名前空間からのアーカイブに使用されるストレージ コンテナーのリソース ID。 リソース プロバイダーには、ストレージ アカウントに SAS トークンを作成するためのアクセス許可が必要です。 | string (必須) |
importPrefix | このパス/プレフィックスで始まる非ログ コンテナー内の BLOB のみがクラスター名前空間にインポートされます。 これは、Azure Managed Lustre ファイル システムの初期作成時にのみ使用されます。 | string |
importPrefixesInitial | この配列内のいずれかのパス/プレフィックスで始まる非ログ コンテナー内の BLOB のみがクラスター名前空間にインポートされます。 この値は、Azure Managed Lustre ファイル システムの初期作成時にのみ使用され、既定値として '/' が使用されます。 | string[] |
loggingContainer | イベントとエラーのログ記録に使用されるストレージ コンテナーのリソース ID。 ハイドレーション コンテナーとアーカイブ コンテナーと同じストレージ アカウント内の別のコンテナーである必要があります。 リソース プロバイダーには、ストレージ アカウントに SAS トークンを作成するためのアクセス許可が必要です。 | string (必須) |
Note
importPrefixesInitial
プロパティを使用すると、ファイル システムにデータをインポートするための複数のプレフィックスを指定できますが、importPrefix
では 1 つのプレフィックスを指定できます。 両方のプロパティの既定値は /
です。 いずれかのプロパティを定義した場合、もう一方を定義することはできません。 両方のプロパティを定義すると、デプロイは失敗します。
詳細については、「 Import prefix」を参照してください。
メンテナンス期間
名前 | Description | 値 |
---|---|---|
dayOfWeek | メンテナンス期間が発生する曜日。 | Sunday 、 Monday 、 Tuesday 、 Wednesday 、 Thursday 、 Friday 、 Saturday |
timeOfDayUTC | メンテナンス期間が発生する可能性がある時刻 (UTC)。 | string Example: 22:30 |
timeOfDayUTC
プロパティは、24 時間制の形式を使用します。 たとえば、 22:30
は午後 10 時 30 分を表します。 パターンは ^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
。
ルート スカッシュ設定
名前 | Description | 値 |
---|---|---|
mode | AML ファイル システムのスカッシュ モード。 'All': ファイル上のユーザー ID とグループ ID は、信頼されていないシステム上のすべてのユーザーに対して指定された値にスカッシュされます。 'RootOnly': ファイル上のユーザー ID とグループ ID は、信頼されていないシステムのルート ユーザーのみに対して指定された値にスカッシュされます。 'None': システム上のユーザーに対してユーザー ID とグループ ID のスカッシュは実行されません。 | All 、 None 、 RootOnly |
noSquashNidLists | TrustedSystems に追加するセミコロンで区切られた NID IP アドレス一覧。 | string |
squashGID | スカッシュするグループ ID。 | int |
squashUID | スカッシュするユーザー ID。 | int |
SKU 名
名前 | Description | 値 |
---|---|---|
name | リソースの SKU 名。 | AMLFS-Durable-Premium-40 、 AMLFS-Durable-Premium-125 、 AMLFS-Durable-Premium-250 、 AMLFS-Durable-Premium-500 |
テンプレートを使用してファイル システムをデプロイする
次の手順の例では、Azure CLI コマンドを使用して新しいリソース グループを作成し、その中に Azure Managed Lustre ファイル システムを作成します。 この手順では、この記事で前述したように、既にファイル システムの種類とサイズを し テンプレート ファイルを 作成していることを前提としています。 また、すべての 前提条件を満たしていることを確認します。
既定のサブスクリプションを設定します。
az account set --subscription "<subscription-id>" az account show
必要に応じて、Azure Managed Lustre ファイル システム用の新しいリソース グループを作成します。 既存のリソース グループを使用する場合は、この手順をスキップし、テンプレート コマンドを実行するときに既存のリソース グループの名前を指定します。
az group create --name <rg-name> --location <region-short-name>
ファイル システムは、同じサブスクリプション内にある限り、独自のリソース グループ外のリソースを使用できます。
テンプレートを使用して Azure Managed Lustre ファイル システムをデプロイします。 構文は、JSON ファイルと Bicep ファイルのどちらを使用しているか、およびファイルの数によって異なります。
Bicep テンプレートと JSON テンプレートの両方を 1 つのファイルまたは複数のファイルとしてデプロイできます。 詳細および各オプションの正確な構文については、 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'
]
}