Creare un file system lustre gestito di Azure usando i modelli di Azure Resource Manager
È possibile automatizzare la creazione di un file system lustre gestito di Azure usando i modelli di Azure Resource Manager (ARM). Questo articolo illustra la procedura di base e fornisce esempi dei file necessari.
Questo articolo offre esempi di due metodi diversi per la creazione di modelli di Resource Manager:
- Usare JSON per creare direttamente modelli di Resource Manager. Per altre informazioni, vedere sintassi del modello JSON.
- Usare Bicep, che usa una sintassi più semplice per fornire i dettagli di configurazione. Quando si distribuisce il modello, i file Bicep vengono convertiti in file modello di Resource Manager. Per altre informazioni, vedere la documentazione di Bicep.
Per altre informazioni su queste opzioni, vedere Confronto tra JSON e Bicep per i modelli.
Scegliere il tipo e le dimensioni del file system
Prima di scrivere un modello, è necessario prendere alcune decisioni sul file system lustre gestito di Azure. Per altre informazioni sulle opzioni di configurazione, vedere i dettagli di configurazione in Creare un file system lustre gestito di Azure.
Quando si usa un modello, specificare uno SKU per definire il tipo di base del file system lustre gestito di Azure da creare. Lo SKU rappresenta un livello di prodotto. Imposta qualità di sistema, ad esempio il tipo di dischi, la quantità di spazio di archiviazione supportata e la capacità massima di velocità effettiva. Se si usa il portale di Azure per creare il file system lustre gestito di Azure, specificare indirettamente il tipo di sistema selezionandone le funzionalità.
La tabella seguente illustra i valori per la velocità effettiva e le dimensioni di archiviazione in ogni SKU supportato. Questi SKU creano un file system che usa l'archiviazione SSD durevole.
SKU | Velocità effettiva per TiB | Capacità di archiviazione minima | Capacità di archiviazione massima | Incremento valore Identity |
---|---|---|---|---|
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 |
Se sono necessari valori di archiviazione superiori al massimo elencato, è possibile aprire un ticket di supporto per esplorare le opzioni.
Per controllare le funzionalità dello SKU, è possibile usare il flusso di lavoro per la creazione di un file system Lustre gestito usando il portale di Azure. Le impostazioni specifiche dello SKU sono disponibili nella scheda Informazioni di base in Dettagli del file system.
Creare un file modello
Dopo aver deciso le opzioni di configurazione, è possibile creare un file modello. Il file modello è un file JSON o Bicep che contiene i dettagli di configurazione per il file system lustre gestito di Azure.
Valori delle proprietà modello
Per creare un file system lustre gestito di Azure usando un modello di Resource Manager, è necessario includere le informazioni seguenti nel file modello. La sintassi esatta è diversa tra Bicep e JSON, quindi consultare gli esempi per i valori letterali.
File system
Nome | Descrizione | valore |
---|---|---|
type | Tipo di risorsa da creare. | Microsoft.StorageCache/amlFileSystems |
apiVersion | Versione dell'API Lustre gestita di Azure da usare. | Usare la versione dell'API corrente, ad esempio 2024-03-01 |
name | Nome univoco per il file system Lustre gestito di Azure. | stringa (obbligatorio) |
location | Posizione geografica in cui risiede la risorsa. Usare il nome breve anziché il nome visualizzato, ad esempio usare eastus anziché East US . |
stringa (obbligatorio) |
tag | Tag di risorsa per il file system. | Dizionario di nomi e valori di tag; vedere Tag nei modelli |
sku | SKU delle prestazioni per la risorsa. | Vedere il nome dello SKU |
identity | Identità gestita da usare per il file system, se configurata. | Vedere Identità |
proprietà | Proprietà per il file system. | Vedere Proprietà |
zone | Zone di disponibilità per le risorse. Questo campo deve contenere solo un singolo elemento nella matrice. | string[] |
Identità
Nome | Descrizione | valore |
---|---|---|
type | Tipo di identità usata per la risorsa. | None , UserAssigned |
userAssignedIdentities | Dizionario in cui ogni chiave è un ID risorsa identità assegnata dall'utente e il valore di ogni chiave è un dizionario vuoto. | Vedere la documentazione del modello |
Proprietà
Nome | Descrizione | valore |
---|---|---|
encryptionSettings | Impostazioni di crittografia per il file system. | Vedere Impostazioni di crittografia |
filesystemSubnet | Subnet usata dal file system. | stringa (obbligatorio) |
Hsm | Impostazioni del contenitore di Archiviazione BLOB per il file system. | Vedere Impostazioni del modulo di protezione hardware |
maintenanceWindow | Specifica il giorno e l'ora in cui possono verificarsi gli aggiornamenti del sistema. | Vedere Finestra manutenzione (obbligatorio) |
rootSquashSettings | Specifica le impostazioni di squash radice per il file system. | Vedi Impostazioni di squash radice |
storageCapacityTiB | Dimensioni del file system, in TiB. Per altre informazioni sui valori consentiti per questo campo in base allo SKU, vedere Scegliere il tipo e le dimensioni del file system. | int (obbligatorio) |
Impostazioni di crittografia
Nome | Descrizione | valore |
---|---|---|
keyEncryptionKey | Specifica il percorso della chiave di crittografia in Key Vault. | Vedere la documentazione del modello |
Impostazioni del modulo di protezione hardware
Nome | Descrizione | valore |
---|---|---|
container | ID risorsa del contenitore di archiviazione usato per idratare lo spazio dei nomi e l'archiviazione dallo spazio dei nomi. Il provider di risorse deve disporre dell'autorizzazione per creare token di firma di accesso condiviso nell'account di archiviazione. | stringa (obbligatorio) |
importPrefix | Solo i BLOB nel contenitore non di registrazione che iniziano con questo percorso/prefisso vengono importati nello spazio dei nomi del cluster. Questa operazione viene usata solo durante la creazione iniziale del file system lustre gestito di Azure. | string |
importPrefixesInitial | Solo i BLOB nel contenitore non di registrazione che iniziano con uno dei percorsi/prefissi in questa matrice vengono importati nello spazio dei nomi del cluster. Questo valore viene usato solo durante la creazione iniziale del file system lustre gestito di Azure e ha "/" come valore predefinito. | string[] |
loggingContainer | ID risorsa del contenitore di archiviazione usato per registrare eventi ed errori. Deve essere un contenitore separato nello stesso account di archiviazione dell'idratazione e del contenitore di archiviazione. Il provider di risorse deve disporre dell'autorizzazione per creare token di firma di accesso condiviso nell'account di archiviazione. | stringa (obbligatorio) |
Nota
La importPrefixesInitial
proprietà consente di specificare più prefissi per l'importazione di dati nel file system, mentre importPrefix
consente di specificare un singolo prefisso. Il valore predefinito per entrambe le proprietà è /
. Se si definisce una delle proprietà, non è possibile definire l'altra. Se si definiscono entrambe le proprietà, la distribuzione ha esito negativo.
Per altre informazioni, vedere Importare il prefisso.
Finestra di manutenzione
Nome | Descrizione | valore |
---|---|---|
dayOfWeek | Giorno della settimana in cui può verificarsi la finestra di manutenzione. | Sunday , Monday , Tuesday , Wednesday Thursday , , Friday Saturday |
timeOfDayUTC | L'ora del giorno (in formato UTC) può verificarsi la finestra di manutenzione. | Esempio stringa : 22:30 |
La timeOfDayUTC
proprietà utilizza un formato di orologio di 24 ore. Ad esempio, 22:30
rappresenta le 10:30 PM. Il modello è ^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
.
Impostazioni di squash radice
Nome | Descrizione | valore |
---|---|---|
mode | Modalità squash del file system AML. 'All': gli ID utente e gruppo nei file vengono inseriti nei valori forniti per tutti gli utenti in sistemi non attendibili. 'RootOnly': gli ID utente e gruppo nei file vengono compressi in base ai valori forniti esclusivamente per l'utente radice in sistemi non attendibili. 'Nessuno': nessuna modifica degli ID utente e gruppo viene eseguita per tutti gli utenti di qualsiasi sistema. | All , None , RootOnly |
noSquashNidLists | Elenco di indirizzi IP NID separati da punto e virgola da aggiungere a TrustedSystems. | string |
squashGID | ID gruppo a cui eseguire lo squash. | int |
squashUID | ID utente a cui eseguire lo squash. | int |
Nome SKU
Nome | Descrizione | Valore |
---|---|---|
name | Nome SKU per la risorsa. | AMLFS-Durable-Premium-40 , AMLFS-Durable-Premium-125 , AMLFS-Durable-Premium-250 AMLFS-Durable-Premium-500 |
Distribuire il file system usando il modello
I passaggi di esempio seguenti usano i comandi dell'interfaccia della riga di comando di Azure per creare un nuovo gruppo di risorse e creare un file system lustre gestito di Azure. I passaggi presuppongono che sia già stato scelto un tipo e dimensioni del file system e che sia stato creato un file modello, come descritto in precedenza in questo articolo. Assicurarsi anche di soddisfare tutti i prerequisiti.
Impostare la sottoscrizione predefinita:
az account set --subscription "<subscription-id>" az account show
Facoltativamente, creare un nuovo gruppo di risorse per il file system lustre gestito di Azure. Se si vuole usare un gruppo di risorse esistente, ignorare questo passaggio e specificare il nome del gruppo di risorse esistente quando si esegue il comando modello.
az group create --name <rg-name> --location <region-short-name>
Il file system può usare risorse esterne al proprio gruppo di risorse, purché si trovano nella stessa sottoscrizione.
Distribuire il file system lustre gestito di Azure usando il modello . La sintassi dipende dal fatto che si usino file JSON o Bicep, insieme al numero di file.
È possibile distribuire modelli Bicep e JSON come singoli file o più file. Per altre informazioni e per visualizzare la sintassi esatta per ogni opzione, vedere la documentazione del modello di Resource Manager.
Comando JSON di esempio:
az deployment group create \ --name <example-deployment> \ --resource-group <resource-group-name> \ --template-file azlustre-template.json
Comando Bicep di esempio:
az deployment group create \ --resource-group <ResourceGroupName> \ --template-file azlustre.bicep
Esempio di JSON
Questa sezione mostra il contenuto di esempio per un file modello JSON. È possibile rimuovere i parametri facoltativi durante la creazione di un modello di Resource Manager personalizzato.
{
"$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": {}
}
Esempio bicep
Questa sezione mostra il contenuto di esempio per un file Bicep. È possibile rimuovere i parametri facoltativi durante la creazione di parametri personalizzati.
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'
]
}