Créer un système de fichiers Azure Managed Lustre à l’aide de modèles Azure Resource Manager
Vous pouvez automatiser la création d’un système de fichiers Azure Managed Lustre à l’aide de modèles Azure Resource Manager (ARM). Cet article explique la procédure de base et fournit des exemples de fichiers dont vous avez besoin.
Cet article fournit des exemples de deux méthodes différentes pour créer des modèles ARM :
- Utilisez JSON pour créer des modèles ARM directement. Pour plus d’informations, consultez la syntaxe du modèle JSON.
- Utilisez Bicep, qui utilise une syntaxe plus simple pour fournir les détails de la configuration. Lorsque vous déployez le modèle, les fichiers Bicep sont convertis en fichiers de modèle ARM. Pour en savoir plus, consultez la documentation Bicep.
Pour en savoir plus sur ces options, consultez Comparaison de JSON et Bicep pour les modèles.
Choisir le type et la taille du système de fichiers
Avant d’écrire un modèle, vous devez prendre certaines décisions concernant votre système de fichiers Azure Managed Lustre. Pour en savoir plus sur les options de configuration, consultez les détails de la configuration dans Créer un système de fichiers Azure Managed Lustre.
Lorsque vous utilisez un modèle, spécifiez une référence SKU pour définir le type de base du système de fichiers Azure Managed Lustre à créer. La référence SKU représente un niveau de produit. Il définit des qualités système telles que le type de disques, la quantité de stockage prise en charge et la capacité de débit maximale. Si vous utilisez le Portail Azure pour créer votre système de fichiers Azure Managed Lustre, vous spécifiez indirectement le type de système en sélectionnant ses fonctionnalités.
Le tableau suivant présente les valeurs de débit et de taille de stockage dans chaque référence SKU prise en charge. Ces références SKU créent un système de fichiers qui utilise un stockage SSD durable.
Référence (SKU) | Débit par Tio de stockage | Stockage minimal | Stockage maximal | Incrément |
---|---|---|---|---|
AMLFS-Durable-Premium-40 | 40 Mbits/s | 48 To | 768 To | 48 To |
AMLFS-Durable-Premium-125 | 125 Mbits/s | 16 To | 128 To | 16 To |
AMLFS-Durable-Premium-250 | 250 Mbits/s | 8 To | 128 To | 8 To |
AMLFS-Durable-Premium-500 | 500 Mo/s | 4 To | 128 To | 4 To |
Si vous avez besoin de valeurs de stockage supérieures à la valeur maximale répertoriée, vous pouvez ouvrir un ticket de support pour explorer les options.
Pour vérifier les fonctionnalités de référence SKU, vous pouvez utiliser le flux de travail pour créer un système de fichiers Managed Lustre à l’aide du Portail Azure. Les paramètres spécifiques à la référence SKU se trouvent sous l’onglet Informations de base sous Détails du système de fichiers.
Créer un fichier de modèle
Après avoir choisi les options de configuration, vous pouvez créer un fichier de modèle. Le fichier de modèle est un fichier JSON ou Bicep qui contient les détails de configuration de votre système de fichiers Azure Managed Lustre.
Valeurs de propriété de modèle
Pour créer un système de fichiers Azure Managed Lustre à l’aide d’un modèle ARM, vous devez inclure les informations suivantes dans votre fichier de modèle. La syntaxe exacte est différente entre Bicep et JSON. Consultez les exemples des valeurs littérales.
Système de fichiers
Nom | Description | active |
---|---|---|
type | Type de ressource à créer. | Microsoft.StorageCache/amlFileSystems |
apiVersion | Version de l’API Azure Managed Lustre à utiliser. | Utilisez la version actuelle de l’API, par exemple, 2024-03-01 |
name | Nom unique du système de fichiers Azure Managed Lustre. | chaîne (obligatoire) |
location | Emplacement géographique où réside la ressource. Utilisez le nom court plutôt que le nom d’affichage, par exemple, utilisez eastus plutôt East US que . |
chaîne (obligatoire) |
tags | Balises de ressources pour le système de fichiers. | Dictionnaire de noms et de valeurs d’étiquettes ; voir Balises dans les modèles |
sku | Référence SKU de performances pour la ressource. | Voir le nom de la référence SKU |
identity | Identité managée à utiliser pour le système de fichiers, s’il est configuré. | Afficher l’identité |
properties | Propriétés du système de fichiers. | Afficher les propriétés |
zones | Zones de disponibilité pour les ressources. Ce champ ne doit contenir qu’un seul élément dans le tableau. | string[] |
Identité
Nom | Description | active |
---|---|---|
type | Type d’identité utilisé pour la ressource. | None , UserAssigned |
userAssignedIdentities | Dictionnaire où chaque clé est un ID de ressource d’identité attribué par l’utilisateur, et la valeur de chaque clé est un dictionnaire vide. | Voir la documentation du modèle |
Propriétés
Nom | Description | active |
---|---|---|
encryptionSettings | Paramètres de chiffrement du système de fichiers. | Afficher les paramètres de chiffrement |
filesystemSubnet | Sous-réseau que le système de fichiers utilise. | chaîne (obligatoire) |
Hsm | Paramètres du conteneur Stockage Blob pour le système de fichiers. | Voir les paramètres du module HSM |
maintenanceWindow | Spécifie le jour et l’heure à laquelle les mises à jour système peuvent se produire. | Voir la fenêtre Maintenance (obligatoire) |
rootSquashSettings | Spécifie les paramètres de courge racine pour le système de fichiers. | Voir les paramètres de courge racine |
storageCapacityTiB | Taille du système de fichiers, en Tio. Pour en savoir plus sur les valeurs autorisées pour ce champ en fonction de la référence SKU, consultez Choisir le type et la taille du système de fichiers. | int (obligatoire) |
Paramètres de chiffrement
Nom | Description | active |
---|---|---|
keyEncryptionKey | Spécifie l’emplacement de la clé de chiffrement dans Key Vault. | Voir la documentation du modèle |
Paramètres HSM
Nom | Description | active |
---|---|---|
container | ID de ressource du conteneur de stockage utilisé pour l’hydratage de l’espace de noms et l’archivage à partir de l’espace de noms. Le fournisseur de ressources doit avoir l’autorisation de créer des jetons SAP sur le compte de stockage. | chaîne (obligatoire) |
importPrefix | Seuls les objets blob du conteneur non journalisation qui commencent par ce chemin/préfixe sont importés dans l’espace de noms du cluster. Cela est utilisé uniquement lors de la création initiale du système de fichiers Azure Managed Lustre. | string |
importPrefixesInitial | Seuls les objets blob du conteneur qui commencent par l’un des chemins/préfixes de ce tableau sont importés dans l’espace de noms du cluster. Cette valeur est utilisée uniquement lors de la création initiale du système de fichiers Azure Managed Lustre et a la valeur par défaut « / ». | string[] |
loggingContainer | ID de ressource du conteneur de stockage utilisé pour la journalisation des événements et des erreurs. Doit être un conteneur distinct dans le même compte de stockage que le conteneur d’hydratation et d’archivage. Le fournisseur de ressources doit avoir l’autorisation de créer des jetons SAP sur le compte de stockage. | chaîne (obligatoire) |
Remarque
La importPrefixesInitial
propriété vous permet de spécifier plusieurs préfixes pour l’importation de données dans le système de fichiers, tout en importPrefix
vous permettant de spécifier un préfixe unique. La valeur par défaut pour les deux propriétés est /
. Si vous définissez l’une des propriétés, vous ne pouvez pas définir l’autre. Si vous définissez les deux propriétés, le déploiement échoue.
Pour en savoir plus, consultez Importer le préfixe.
Fenêtre de maintenance
Nom | Description | active |
---|---|---|
dayOfWeek | Jour de la semaine sur laquelle la fenêtre de maintenance peut se produire. | Sunday , Monday , , Wednesday Tuesday , Thursday , , Friday ,Saturday |
timeOfDayUTC | L’heure du jour (en UTC) de la fenêtre de maintenance peut se produire. | exemple de chaîne : 22:30 |
La timeOfDayUTC
propriété utilise un format d’horloge de 24 heures. Par exemple, 22:30
représente 10h30. Le modèle est ^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
.
Paramètres de squash racine
Nom | Description | active |
---|---|---|
mode | Mode Squash du système de fichiers AML. « Tout » : les ID d’utilisateur et de groupe sur les fichiers sont écrasés sur les valeurs fournies pour tous les utilisateurs sur des systèmes non approuvés. « RootOnly » : les ID d’utilisateur et de groupe sur les fichiers sont écrasés pour fournir des valeurs uniquement à l’utilisateur racine sur des systèmes non approuvés. « Aucun » : aucune suppression des ID d’utilisateur et de groupe n’est effectuée pour tous les utilisateurs sur tous les systèmes. | All , , None RootOnly |
noSquashNidLists | Liste d’adresses IP NID séparées par des points-virgules à ajouter aux systèmes de confiance. | string |
squashGID | ID de groupe vers lequel courge. | int |
squashUID | ID d’utilisateur vers qui courge. | int |
Nom du SKU
Nom | Description | Valeur |
---|---|---|
name | Nom de la référence SKU pour la ressource. | AMLFS-Durable-Premium-40 , , AMLFS-Durable-Premium-125 AMLFS-Durable-Premium-250 , ,AMLFS-Durable-Premium-500 |
Déployer le système de fichiers à l’aide du modèle
Les exemples d’étapes suivants utilisent des commandes Azure CLI pour créer un groupe de ressources et créer un système de fichiers Azure Managed Lustre dans celui-ci. Les étapes supposent que vous avez déjà choisi un type de système de fichiers et une taille et créé un fichier de modèle, comme décrit précédemment dans cet article. Veillez également à respecter toutes les conditions préalables.
Définissez votre abonnement par défaut :
az account set --subscription "<subscription-id>" az account show
Si vous le souhaitez, créez un groupe de ressources pour votre système de fichiers Azure Managed Lustre. Si vous souhaitez utiliser un groupe de ressources existant, ignorez cette étape et indiquez le nom du groupe de ressources existant lorsque vous exécutez la commande de modèle.
az group create --name <rg-name> --location <region-short-name>
Votre système de fichiers peut utiliser des ressources en dehors de son propre groupe de ressources, tant qu’elles se trouvent dans le même abonnement.
Déployez le système de fichiers Azure Managed Lustre à l’aide du modèle. La syntaxe dépend de l’utilisation de fichiers JSON ou Bicep, ainsi que du nombre de fichiers.
Vous pouvez déployer des modèles Bicep et JSON en tant que fichiers uniques ou plusieurs fichiers. Pour plus d’informations et pour afficher la syntaxe exacte de chaque option, consultez la documentation du modèle ARM.
Exemple de commande JSON :
az deployment group create \ --name <example-deployment> \ --resource-group <resource-group-name> \ --template-file azlustre-template.json
Exemple de commande Bicep :
az deployment group create \ --resource-group <ResourceGroupName> \ --template-file azlustre.bicep
Exemple JSON
Cette section présente des exemples de contenu pour un fichier de modèle JSON. Vous pouvez supprimer des paramètres facultatifs lors de la création de votre propre modèle 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": {}
}
Exemple Bicep
Cette section présente des exemples de contenu pour un fichier Bicep. Vous pouvez supprimer des paramètres facultatifs lors de la création de vos propres paramètres.
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'
]
}