Skapa ett Azure Managed Lustre-filsystem med hjälp av Azure Resource Manager-mallar

Du kan automatisera skapandet av Azure Managed Lustre-filsystemet med hjälp av Azure Resource Manager-mallar. Den här artikeln beskriver den grundläggande proceduren och ger exempel på de filer du behöver.

Mer information om mallarna finns i Azure Resource Manager-mallar.

Den här artikeln innehåller exempel på två olika metoder för att skapa Azure Resource Manager-mallar:

  • Använd JSON för att skapa Azure Resource Manager-mallar direkt. Se JSON-mallsyntax.
  • Använd Bicep, som använder enklare syntax för att ange konfigurationsinformationen. När du distribuerar mallen konverteras Bicep-filerna till Azure Resource Manager-mallfiler. Se Bicep-dokumentationen.

Mer information om dina alternativ finns i Jämföra JSON och Bicep för mallar.

Välj filsystemtyp och storlek

Innan du skriver en mall måste du fatta några beslut om ditt Azure Managed Lustre-filsystem. Mer information om konfigurationsalternativen finns i konfigurationsinformationen i Skapa ett Azure Managed Lustre-filsystem.

När du använder en mall anger du ett SKU-namn för att definiera den grundläggande typen av Azure Managed Lustre-system som ska skapas. Om du använder Azure Portal för att skapa din Azure Managed Lustre anger du systemtypen indirekt genom att välja dess funktioner.

I Azure definierar termen SKU en uppsättning funktioner för resursen som skapas. För ett Azure Managed Lustre-filsystem anger SKU systemkvaliteter, till exempel vilken typ av diskar som används, mängden lagringsutrymme som stöds och den maximala dataflödeskapaciteten.

För närvarande stöds följande SKU:er:

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

Dessa SKU:er skapar ett filsystem som använder beständig SSD-lagring. I följande tabell visas värdena för dataflöde och lagringsstorlek för varje SKU:

SKU Dataflöde per TiB-lagring Lagringsmin min Maximalt lagringsutrymme1 Ökning
AMLFS-Durable-Premium-40 40 MB/sekund 48 TB 768 TB 48 TB
AMLFS-Durable-Premium-125 125 MB/sekund 16 TB 128 TB 16 TB
AMLFS-Durable-Premium-250 250 MB/sekund 8 TB 128 TB 8 TB
AMLFS-Durable-Premium-500 500 MB/sekund 4 TB 128 TB 4 TB

1 Om du behöver lagringsvärden som är större än det angivna maxvärdet kan du öppna ett supportärende för att utforska alternativ.

Du kan använda arbetsflödet skapa i Azure Portal för att kontrollera SKU-funktionerna. SKU-specifika inställningar finns på fliken Grundläggande under Information om filsystem.

Tips

Se Nödvändig information för ett kommando som du kan använda för att kontrollera tillgängliga SKU-namn.

Skapa en mallfil

När du har bestämt dig för konfigurationsalternativ kan du skapa en mallfil. Mallfilen är en JSON- eller Bicep-fil som innehåller konfigurationsinformationen för ditt Azure Managed Lustre-filsystem. I det här avsnittet beskrivs nödvändig och valfri information som ska ingå i mallfilen.

Exempelfiler som innehåller alla möjliga konfigurationsalternativ finns i Exempel på JSON-filer och Exempel på Bicep-fil.

Nödvändig information

Det här avsnittet beskriver den information som du behöver inkludera i dina Azure Resource Manager-mallfiler för att skapa ett Azure Managed Lustre-filsystem. Den exakta syntaxen skiljer sig mellan Bicep och JSON, så se exemplen för varje språktyp för literalvärdena.

  • Resurstyp som ska skapas – Det här värdet anger för Azure Resource Manager att du skapar ett Azure Managed Lustre-filsystem genom att skicka en kombination av värdet Microsoft.StorageCache/amlFileSystems och API-versionen.

    Det finns flera sätt att skapa resurstypen:

    • I den här artikelns JSON-exempel skickas värdet för resurstyp bokstavligen i template.json-filen , men API-versionsvärdet läse från parameters.json filen.
    • I Bicep-exemplet skickas resurstypen och API-versionen tillsammans i början av mallfilen.
  • API-version – Den version av Azure Managed Lustre som ska skapas.

    Så här hittar du den aktuella API-versionen:

    az provider show --namespace Microsoft.StorageCache --query "resourceTypes[?resourceType=='amlFilesystems'].apiVersions" --out table
    
  • SKU-namn – prestandamodellen för filsystemet, antingen AMLFS-Durable-Premium-125 eller AMLFS-Durable-Premium-250.

    Använd följande kommando för att hitta tillgängliga SKU:er (använd den aktuella API-versionen):

    az rest --url https://management.azure.com/subscriptions/<subscription_id>/providers/Microsoft.StorageCache/skus/?api-version=<version> | jq '.value[].name' | grep AMLFS| uniq
    
  • Plats – Namnet på den Azure-region där filsystemet skapas.

    Så här hittar du de regioner och tillgänglighetszoner där Azure Managed Lustre stöds:

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

    Anteckning

    Det här kommandot matar ut visningsnamnen för Azure-regioner. du bör använda det kortare name värdet (till exempel "eastus" i stället för "USA, östra").

    Det här kommandot returnerar det korta namnet från visningsnamnet. USA, västra är ett exempel. det här kommandot returnerar westus:

    az account list-locations --query "[?displayName=='West US'].name" --output tsv
    
  • Tillgänglighetszon – tillgänglighetszonen som ska användas i Azure-regionen.

    Använd föregående kommando i Plats för att hitta tillgänglighetszoner. Ange en enda tillgänglighetszon för systemet.

  • Filsystemnamn – Det användar synliga namnet för det här Azure Managed Lustre-filsystemet.

  • Filsystemundernät – det undernät som filsystemet använder. Ange undernäts-URI: till exempel /subscriptions/<SubscriptionID>/resourceGroups/<VnetResourceGroupName>/providers/Microsoft.Network/virtualNetworks/<VnetName>/subnets/<SubnetName>.

  • Lagringskapacitet – Storleken på ditt Azure Managed Lustre-kluster i TiB. Värdena beror på SKU:n. Mer information finns i Välj filsystemtyp och storlek.

  • Underhållsperiod – Kräver två värden som anger underhållsperioden. Dessa värden definierar en 30-minuters period varje vecka under vilken systemuppdateringar kan göras.

    • Veckodag (till exempel Sunday)
    • Tid på dagen (UTC) (till exempel 22:00)

Tilläggsinformation

Parametrarna i det här avsnittet är antingen valfria eller krävs bara om du använder specifika funktioner.

  • Taggar – Använd det här alternativet om du vill ange taggar för Azure-resursmetadata.

  • Inställningar för blobintegrering – Ange dessa värden för att använda en integrerad Blob Storage-container med det här systemet. Mer information finns i Blob-integrering.

    • Container – resurs-ID för blobcontainern som ska användas för Lustre hierarchical storage management (HSM).
    • Loggningscontainer – resurs-ID för en annan container som ska innehålla import- och exportloggar.
    • Importprefix (valfritt) – Om det här värdet anges importeras endast blobar som börjar med importprefixsträngen till Azure Managed Lustre-filsystemet. Om du inte anger det är /standardvärdet , som anger att alla blobar i containern importeras.
  • Inställningar för kundhanterad nyckel – Ange dessa värden om du vill använda en Azure-Key Vault för att styra de krypteringsnycklar som används för att kryptera dina data i Azure Managed Lustre-systemet. Som standard krypteras data med hjälp av Microsoft-hanterade krypteringsnycklar.

    • Identitetstyp – ange detta till UserAssigned för att aktivera kundhanterade nycklar.
    • Kryptering Key Vault – Resurs-ID för Azure-Key Vault som lagrar krypteringsnycklarna.
    • URL för krypteringsnyckel – identifieraren för nyckeln som ska användas för att kryptera dina data.
    • Hanterad identitet – En användartilldelad hanterad identitet som Azure Managed Lustre-filsystemet använder för att komma åt Azure-Key Vault. Mer information finns i Använda kundhanterade krypteringsnycklar.

Distribuera filsystemet med hjälp av mallen

De här exempelstegen använder Azure CLI-kommandon för att skapa en ny resursgrupp och skapa ett Azure Managed Lustre-filsystem i den.

Innan du distribuerar kontrollerar du att du slutför följande steg:

Följ dessa steg för att distribuera filsystemet med hjälp av mallen:

  1. Ange din standardprenumeration:

    az account set --subscription "<SubscriptionID>"
    az account show
    
  2. Du kan också skapa en ny resursgrupp för ditt Azure Managed Lustre-filsystem. Om du vill använda en befintlig resursgrupp hoppar du över det här steget och anger namnet på den befintliga resursgruppen när du kör mallkommandot.

    az group create --name <ResourceGroupName> --location <RegionShortname>
    

    Filsystemet kan använda resurser utanför sin egen resursgrupp så länge de finns i samma prenumeration.

  3. Distribuera Azure Managed Lustre-filsystemet med hjälp av mallen. Syntaxen skiljer sig beroende på om du använder JSON- eller Bicep-filer och antalet filer som du använder.

    Du kan distribuera både Bicep- och JSON-mallar som enskilda filer eller flera filer. Mer information och om du vill se den exakta syntaxen för varje alternativ finns i dokumentationen om Azure Resource Manager-mallar.

    Exempel på JSON-kommando:

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

    Exempel på Bicep-kommando:

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

Exempel på JSON-filer

Det här avsnittet visar exempelinnehåll för en mallfil och en separat parameterfil. Dessa filer innehåller alla möjliga konfigurationsalternativ. Du kan ta bort valfria parametrar när du skapar en egen Azure Resource Manager-mall.

Mallfil

Det här avsnittet visar exempelinnehållet i en mallfil:

{
    "$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": {}
}

Parameterfil

Det här avsnittet visar exempelinnehållet i en parameterfil:

{
    "$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>"
        }
    }
}

Exempel på Bicep-fil

Det här exemplet innehåller alla möjliga värden i en Azure Managed Lustre-mall. När du skapar mallen tar du bort valfria värden som du inte vill ha.

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>'
        }
      }
    }
  }
}

Nästa steg