Share via


Create un file system lustre gestito di Azure usando i modelli di Azure Resource Manager

È possibile automatizzare la creazione del file system di Lustre gestito di Azure usando i modelli di Azure Resource Manager. Questo articolo illustra la procedura di base e fornisce esempi dei file necessari.

Per altre informazioni sui modelli, vedere Modelli di Azure Resource Manager.

Questo articolo offre esempi di due metodi diversi per la creazione di modelli di azure Resource Manager:

  • Usare JSON per creare direttamente modelli di Resource Manager di Azure. 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 Azure Resource Manager. Vedere la documentazione di Bicep.

Per altre informazioni sulle 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 installazione in Create un file system lustre gestito di Azure.

Quando si usa un modello, specificare un nome SKU per definire il tipo di base del sistema Lustre gestito di Azure da creare. Se si usa il portale di Azure per creare il lustre gestito di Azure, specificare indirettamente il tipo di sistema selezionandone le funzionalità.

In Azure il termine SKU definisce un set di funzionalità per la risorsa creata. Per un file system lustre gestito di Azure, lo SKU imposta le qualità di sistema, ad esempio il tipo di dischi usati, la quantità di spazio di archiviazione supportata e la capacità massima di velocità effettiva.

Attualmente sono supportati gli SKU seguenti:

  • AMLFS-Durable-Premium-40
  • AMLFS-Durable-Premium-125
  • AMLFS-Durable-Premium-250
  • AMLFS-Durable-Premium-500

Questi SKU creano un file system che usa l'archiviazione SSD durevole. La tabella seguente illustra i valori di velocità effettiva e dimensione di archiviazione per ogni SKU:

SKU Velocità effettiva per archiviazione TiB Min di archiviazione Spazio di archiviazione massimo1 Incremento valore Identity
AMLFS-Durable-Premium-40 40 MB al secondo 48 TB 768 TB 48 TB
AMLFS-Durable-Premium-125 125 MB al secondo 16 TB 128 TB 16 TB
AMLFS-Durable-Premium-250 250 MB al secondo 8 TB 128 TB 8 TB
AMLFS-Durable-Premium-500 500 MB al secondo 4 TB 128 TB 4 TB

1 Se sono necessari valori di archiviazione superiori al valore massimo elencato, è possibile aprire un ticket di supporto per esplorare le opzioni.

È possibile usare il flusso di lavoro di creazione in portale di Azure per controllare le funzionalità dello SKU. Le impostazioni specifiche dello SKU si trovano nella scheda Informazioni di base in Dettagli del file system.

Suggerimento

Vedere Informazioni necessarie per un comando che è possibile usare per controllare i nomi di SKU disponibili.

Create 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. Questa sezione illustra le informazioni obbligatorie e facoltative da includere nel file modello.

Per i file di esempio che contengono tutte le opzioni di configurazione possibili, vedere File JSON di esempio e file Bicep di esempio.

Informazioni necessarie

Questa sezione illustra le informazioni da includere nei file modello di Azure Resource Manager per creare un file system lustre gestito di Azure. La sintassi esatta è diversa tra Bicep e JSON, quindi consultare gli esempi per ogni tipo di linguaggio per i valori letterali.

  • Tipo di risorsa da creare: questo valore indica ad Azure Resource Manager che si sta creando un file system lustre gestito di Azure passando una combinazione del valore Microsoft.StorageCache/amlFileSystems e della versione dell'API.

    Esistono diversi modi per creare il tipo di risorsa:

    • Nell'esempio JSON di questo articolo il valore del tipo di risorsa viene passato letteralmente nel file template.json , ma il valore della versione dell'API viene letto dal file parameters.json .
    • Nell'esempio Bicep il tipo di risorsa e la versione dell'API vengono passati insieme all'inizio del file modello.
  • Versione dell'API : versione di Lustre gestita di Azure da creare.

    Per trovare la versione corrente dell'API:

    az provider show --namespace Microsoft.StorageCache --query "resourceTypes[?resourceType=='amlFilesystems'].apiVersions" --out table
    
  • Nome SKU : modello di prestazioni per il file system, AMLFS-Durable-Premium-125 o AMLFS-Durable-Premium-250.

    Usare il comando seguente per trovare gli SKU disponibili (usare la versione dell'API corrente):

    az rest --url https://management.azure.com/subscriptions/<subscription_id>/providers/Microsoft.StorageCache/skus/?api-version=<version> | jq '.value[].name' | grep AMLFS| uniq
    
  • Percorso : nome dell'area di Azure in cui viene creato il file system.

    Per trovare le aree e le zone di disponibilità in cui è supportato Lustre gestito di Azure:

    az provider show --namespace Microsoft.StorageCache --query "resourceTypes[?resourceType=='amlFilesystems'].zoneMappings[].{location: location, zones: to_string(zones)}" --out table
    

    Nota

    Questo comando restituisce i nomi visualizzati delle aree di Azure; è consigliabile usare il valore più name breve(ad esempio, usare "eastus" anziché "Stati Uniti orientali").

    Questo comando restituisce il nome breve dal nome visualizzato. Stati Uniti occidentali è un esempio; questo comando restituisce westus:

    az account list-locations --query "[?displayName=='West US'].name" --output tsv
    
  • Zona di disponibilità: zona di disponibilità da usare all'interno dell'area di Azure.

    Usare il comando precedente in Località per trovare le zone di disponibilità. Specificare una singola zona di disponibilità per il sistema.

  • Nome del file system : nome visibile dall'utente per questo file system lustre gestito di Azure.

  • Subnet del file system : subnet usata dal file system. Specificare l'URI della subnet; ad esempio . /subscriptions/<SubscriptionID>/resourceGroups/<VnetResourceGroupName>/providers/Microsoft.Network/virtualNetworks/<VnetName>/subnets/<SubnetName>

  • Capacità di archiviazione : dimensioni del cluster Lustre gestito di Azure, in TiB. I valori dipendono dallo SKU. Per altre informazioni, vedere Scegliere il tipo e le dimensioni del file system.

  • Periodo di manutenzione : richiede due valori che impostano il periodo di manutenzione. Questi valori definiscono un periodo di 30 minuti settimanale durante il quale è possibile eseguire gli aggiornamenti di sistema.

    • Giorno della settimana (ad esempio, Sunday)
    • Ora del giorno (UTC) (ad esempio, 22:00)

Informazioni facoltative

I parametri in questa sezione sono facoltativi o obbligatori solo se si usano funzionalità specifiche.

  • Tag : usare questa opzione se si vogliono impostare i tag dei metadati delle risorse di Azure.

  • Impostazioni di integrazione BLOB : specificare questi valori per usare un contenitore di archiviazione BLOB integrato con questo file system. Per altre informazioni, vedere Integrazione blob.

    • Contenitore : ID risorsa del contenitore BLOB da usare per la gestione dell'archiviazione gerarchica Lustre.
    • Contenitore di registrazione : ID risorsa di un contenitore separato per contenere i log di importazione ed esportazione. Il contenitore di registrazione deve trovarsi nello stesso account di archiviazione del contenitore di dati.
    • Prefisso di importazione (facoltativo): se questo valore viene fornito, solo i BLOB che iniziano con la stringa di prefisso di importazione vengono importati nel file system lustre gestito di Azure. Se non lo si specifica, il valore predefinito è /, che specifica che tutti i BLOB nel contenitore vengono importati.
  • Impostazioni della chiave gestita dal cliente: specificare questi valori se si vuole usare un Key Vault di Azure per controllare le chiavi di crittografia usate per crittografare i dati nel sistema Lustre gestito di Azure. Per impostazione predefinita, i dati vengono crittografati usando chiavi di crittografia gestite da Microsoft.

    • Tipo di identità : impostarlo su UserAssigned per attivare le chiavi gestite dal cliente.
    • Crittografia Key Vault: ID risorsa dell'Key Vault di Azure che archivia le chiavi di crittografia.
    • URL della chiave di crittografia : identificatore della chiave da usare per crittografare i dati.
    • Identità gestita: un'identità gestita assegnata dall'utente usata dal file system lustre di Azure per accedere al Key Vault di Azure. Per altre informazioni, vedere Usare chiavi di crittografia gestite dal cliente.

Distribuire il file system usando il modello

Questi passaggi di esempio 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.

Prima di distribuire, assicurarsi di completare la procedura seguente:

Seguire questa procedura per distribuire il file system usando il modello:

  1. Impostare la sottoscrizione predefinita:

    az account set --subscription "<SubscriptionID>"
    az account show
    
  2. 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 <ResourceGroupName> --location <RegionShortname>
    

    Il file system può usare risorse esterne al proprio gruppo di risorse purché si trovino nella stessa sottoscrizione.

  3. Distribuire il file system lustre gestito di Azure usando il modello. La sintassi è diversa a seconda che si usino file JSON o Bicep e il numero di file usati.

    È 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 dei modelli di Azure Resource Manager.

    Comando JSON di esempio:

    az deployment group create \
      --name <ExampleDeployment> \
      --resource-group <ResourceGroupName> \
      --template-file azlustre-template.json \
      --parameters @azlustre-parameters.json
    

    Comando Bicep di esempio:

    az deployment group create \
     --resource-group <ResourceGroupName> \
     --template-file azlustre.bicep
    

File JSON di esempio

Questa sezione mostra il contenuto di esempio per un file modello e un file di parametri separato. Questi file contengono tutte le possibili opzioni di configurazione. È possibile rimuovere parametri facoltativi durante la creazione di un modello di azure Resource Manager.

File modello

Questa sezione mostra il contenuto di esempio di un file modello:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "location": {
            "type": "String"
        },
        "apiVersion": {
            "type": "String"
        },
        "fileSystemName": {
            "type": "String"
        },
        "availabilityZone": {
            "type": "Array"
        },
        "subnetId": {
            "type": "String"
        },
        "storageCapacityTiB": {
            "type": "Int"
        },
        "container": {
            "type": "String"
        },
        "loggingContainer": {
            "type": "String"
        },
        "importPrefix": {
            "type": "String"
        },
        "dayOfWeek": {
            "type": "String"
        },
        "timeOfDay": {
            "type": "String"
        },
        "encryptionKeyUrl": {
            "type": "String"
        },
        "encryptionVault": {
            "type": "String"
        }
    },
    "resources": [
        {
            "type": "Microsoft.StorageCache/amlFileSystems",
            "apiVersion": "[parameters('apiVersion')]",
            "name": "[parameters('fileSystemName')]",
            "location": "[parameters('location')]",
            "tags": {
                "MyTagName": "TagValue"
            },
            "sku": {
                "name": "AMLFS-Durable-Premium-250"
            },
            "identity": {
                "type": "UserAssigned",
                "userAssignedIdentities": {
                    "/subscriptions/<subscription_id>/resourcegroups/<identity_resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<name_of_identity>": {}
                }
            },
            "properties": {
                "storageCapacityTiB": "[parameters('storageCapacityTiB')]",
                "zones": "[parameters('availabilityZone')]",
                "filesystemSubnet": "[parameters('subnetId')]",
                "hsm": {
                    "settings": {
                        "container": "[parameters('container')]",
                        "loggingContainer": "[parameters('loggingContainer')]",
                        "importPrefix": "[parameters('importPrefix')]"
                    }
                },
                "maintenanceWindow": {
                    "dayOfWeek": "[parameters('dayOfWeek')]",
                    "timeOfDay": "[parameters('timeOfDay')]"
                },
                "encryptionSettings": {
                    "keyEncryptionKey": {
                        "keyUrl": "[parameters('encryptionKeyUrl')]",
                        "sourceVault": {
                            "id": "[parameters('encryptionVault')]"
                        }
                    }
                }
            }
        }
    ],
    "outputs": {}
}

File dei parametri

Questa sezione mostra il contenuto di esempio di un file di parametri:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "location": {
            "value": "eastus"
        },
        "apiVersion": {
            "value": "2023-05-01"
        },
        "fileSystemName": {
            "value": "amlfs-example"
        },
        "availabilityZone": {
            "value": [
                "1"
            ]
        },
        "subnetId": {
            "value": "/subscriptions/<subscription_id>/resourceGroups/<vnet_resource_group>/providers/Microsoft.Network/virtualNetworks/<vnet>/subnets/<subnet>"
        },
        "storageCapacityTiB": {
            "value": 4
        },
        "container": {
            "value": "/subscriptions/<subscription_id>/resourceGroups/<storage_account_resource_group>/providers/Microsoft.Storage/storageAccounts/<storage_account_name>/blobServices/default/containers/<container_name>"
        },
        "loggingContainer": {
            "value": "/subscriptions/<subscription_id>/resourceGroups/<storage_account_resource_group>/providers/Microsoft.Storage/storageAccounts/<storage_account_name>/blobServices/default/containers/<log_container_name>"
        },
        "importPrefix": {
            "value": ""
        },
        "dayOfWeek": {
            "value": "Saturday"
        },
        "timeOfDay": {
            "value": "16:45"
        },
        "encryptionKeyUrl": {
            "value": "<encryption_key_URL>"
        },
        "encryptionVault": {
            "value": "/subscriptions/<subscription_id>/resourceGroups/<keyvault_resource_group>/providers/Microsoft.KeyVault/vaults/<keyvault_name>"
        }
    }
}

File Bicep di esempio

Questo esempio include tutti i valori possibili in un modello di Lustre gestito di Azure. Quando si crea il modello, rimuovere tutti i valori facoltativi, non si vuole.

resource fileSystem 'Microsoft.StorageCache/amlFileSystems@2023-05-01' = {
  name: 'fileSystemName'
  location: 'eastus'
  tags: {
    'test-tag': 'test'
  }
  sku: {
    name: 'AMLFS-Durable-Premium-250'
  }
  identity: {
    type: 'UserAssigned'
    userAssignedIdentities: {
      '/subscriptions/<subscription_id>/resourcegroups/<identity_resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<name_of_identity>': {
      }
    }
  }
  properties: {
    storageCapacityTiB: 8
    zones: [ 1 ]
    filesystemSubnet: '/subscriptions/<subscription_id>/resourceGroups/<vnet_resource_group>/providers/Microsoft.Network/virtualNetworks/<vnet>/subnets/<subnet>'
    hsm: {
      settings: {
        container: '/subscriptions/<subscription_id>/resourceGroups/<storage_account_resource_group>/providers/Microsoft.Storage/storageAccounts/<storage_account_name>/blobServices/default/containers/<container_name>'
        loggingContainer: '/subscriptions/<subscription_id>/resourceGroups/<storage_account_resource_group>/providers/Microsoft.Storage/storageAccounts/<storage_account_name>/blobServices/default/containers/<log_container_name>'
        importPrefix: ''
      }
    }
    maintenanceWindow: {
      dayOfWeek: 'Friday'
      timeOfDay: '21:00'
    }
    encryptionSettings: {
      keyEncryptionKey: {
        keyUrl: '<encryption_key_URL>'
        sourceVault: {
          id: '/subscriptions/<subscription_id>/resourceGroups/<keyvault_resource_group>/providers/Microsoft.KeyVault/vaults/<keyvault_name>'
        }
      }
    }
  }
}

Passaggi successivi