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

Du kan automatisera skapandet av ett Azure Managed Lustre-filsystem med hjälp av ARM-mallar (Azure Resource Manager). Den här artikeln förklarar den grundläggande proceduren och ger exempel på de filer som du behöver.

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

  • Använd JSON för att skapa ARM-mallar direkt. Mer information finns i JSON-mallsyntax.
  • Använd Bicep, som använder enklare syntax för att ange konfigurationsinformationen. När du distribuerar mallen konverteras Bicep-filerna till ARM-mallfiler. Mer information finns i Bicep-dokumentationen.

Mer information om de här alternativen 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 en SKU för att definiera den grundläggande typen av Azure Managed Lustre-filsystem som ska skapas. SKU:n representerar en produktnivå. Den anger systemkvaliteter som typ av diskar, mängden lagringsutrymme som stöds och den maximala dataflödeskapaciteten. Om du använder Azure-portalen för att skapa ditt Azure Managed Lustre-filsystem anger du systemtypen indirekt genom att välja dess funktioner.

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

SKU Dataflöde per TiB-lagring Lagringsminimum Maximal lagring Stegvis
AMLFS-Durable-Premium-40 40 Mbit/s 48 TB 768 TB 48 TB
AMLFS-Durable-Premium-125 125 Mbit/s 16 TB 128 TB 16 TB
AMLFS-Durable-Premium-250 250 Mbit/s 8 TB 128 TB 8 TB
AMLFS-Durable-Premium-500 500 Mbit/s 4 TB 128 TB 4 TB

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.

Om du vill kontrollera SKU-funktionerna kan du använda arbetsflödet för att skapa ett Hanterat Lustre-filsystem med hjälp av Azure-portalen. SKU-specifika inställningar finns på fliken Grundläggande under Information om filsystem.

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.

Egenskapsvärden för mallar

Om du vill skapa ett Azure Managed Lustre-filsystem med hjälp av en ARM-mall måste du inkludera följande information i mallfilen. Den exakta syntaxen skiljer sig mellan Bicep och JSON, så se exemplen för literalvärdena.

Filsystem

Name Beskrivning Värde
type Vilken typ av resurs som ska skapas. Microsoft.StorageCache/amlFileSystems
apiVersion Den version av Azure Managed Lustre-API:et som ska användas. Använd den aktuella API-versionen, till exempel 2024-03-01
name Ett unikt namn för Azure Managed Lustre-filsystemet. sträng (krävs)
plats Den geo-plats där resursen finns. Använd det korta namnet i stället för visningsnamnet, till exempel i eastus stället för East US. sträng (krävs)
taggar Resurstaggar för filsystemet. Ordlista med taggnamn och -värden; se Taggar i mallar
sku Prestanda-SKU för resursen. Se SKU-namn
identitet Den hanterade identitet som ska användas för filsystemet, om den är konfigurerad. Se Identitet
egenskaper Egenskaper för filsystemet. Se Egenskaper
Zoner Tillgänglighetszoner för resurser. Det här fältet får bara innehålla ett enda element i matrisen. string[]

Identitet

Name Beskrivning Värde
type Den typ av identitet som används för resursen. None, UserAssigned
userAssignedIdentities En ordlista där varje nyckel är ett användartilldelat identitetsresurs-ID och varje nyckels värde är en tom ordlista. Se malldokument

Egenskaper

Name Beskrivning Värde
encryptionSettings Krypteringsinställningarna för filsystemet. Se Krypteringsinställningar
filesystemSubnet Det undernät som filsystemet använder. sträng (krävs)
Hsm Containerinställningarna för Blob Storage för filsystemet. Se HSM-inställningar
underhållWindow Anger dag och tid när systemuppdateringar kan ske. Se Underhållsperiod (krävs)
rootSquashSettings Anger rot squash-inställningar för filsystemet. Se Inställningar för rot squash
storageCapacityTiB Filsystemets storlek i TiB. Mer information om de tillåtna värdena för det här fältet baserat på SKU finns i Välj filsystemtyp och storlek. int (krävs)

Krypteringsinställningar

Name Beskrivning Värde
keyEncryptionKey Anger platsen för krypteringsnyckeln i Key Vault. Se malldokument

HSM-inställningar

Name Beskrivning Värde
container Resurs-ID för lagringscontainer som används för att hydratisera namnområdet och arkivering från namnområdet. Resursprovidern måste ha behörighet att skapa SAS-token på lagringskontot. sträng (krävs)
importPrefix Endast blobar i containern som inte loggar som börjar med den här sökvägen/prefixet importeras till klusternamnområdet. Detta används endast när Azure Managed Lustre-filsystemet skapas. sträng
importPrefixesInitial Endast blobar i containern som inte loggar som börjar med någon av sökvägarna/prefixen i den här matrisen importeras till klusternamnområdet. Det här värdet används endast när Azure Managed Lustre-filsystemet skapas och har /som standardvärde. string[]
loggingContainer Resurs-ID för lagringscontainer som används för loggning av händelser och fel. Måste vara en separat container i samma lagringskonto som hydrerings- och arkivcontainern. Resursprovidern måste ha behörighet att skapa SAS-token på lagringskontot. sträng (krävs)

Kommentar

Med importPrefixesInitial egenskapen kan du ange flera prefix för att importera data till filsystemet, samtidigt importPrefix som du kan ange ett enda prefix. Standardvärdet för båda egenskaperna är /. Om du definierar en av egenskaperna kan du inte definiera den andra. Om du definierar båda egenskaperna misslyckas distributionen.

Mer information finns i Importera prefix.

Underhållsperiod

Name Beskrivning Värde
dayOfWeek Dag i veckan då underhållsfönstret kan inträffa. Sunday, Monday, Tuesday, Wednesday, Thursday, , , FridaySaturday
timeOfDayUTC Tid på dagen (i UTC) underhållsfönstret kan inträffa. strängExempel
: 22:30

Egenskapen timeOfDayUTC använder ett 24-timmars klockformat. Representerar till exempel 22:30 22:30. Mönstret är ^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$.

Inställningar för rot squash

Name Beskrivning Värde
läge Squash-läge för AML-filsystemet. "Alla": Användar- och grupp-ID:t för filer är krossade till de angivna värdena för alla användare i icke-betrodda system. "RootOnly": Användar- och grupp-ID:t för filer krossas till angivna värden enbart för rotanvändaren i icke-betrodda system. "Ingen": Ingen squashing av användar- och grupp-ID:n utförs för alla användare i några system. All, , NoneRootOnly
noSquashNidLists Semikolonavgränsad NID IP-adresslista som ska läggas till i TrustedSystems. sträng
squashGID Grupp-ID att mosa till. heltal
squashUID Användar-ID att mosa till. heltal

SKU-namn

Name Beskrivning Värde
name SKU-namn för resursen. AMLFS-Durable-Premium-40, AMLFS-Durable-Premium-125, , AMLFS-Durable-Premium-250AMLFS-Durable-Premium-500

Distribuera filsystemet med hjälp av mallen

Följande exempelsteg använder Azure CLI-kommandon för att skapa en ny resursgrupp och skapa ett Azure Managed Lustre-filsystem i den. Stegen förutsätter att du redan har valt en filsystemtyp och storlek och skapat en mallfil enligt beskrivningen tidigare i den här artikeln. Se också till att du uppfyller alla krav.

  1. Ange din standardprenumeration:

    az account set --subscription "<subscription-id>"
    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 <rg-name> --location <region-short-name>
    

    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 beror på om du använder JSON- eller Bicep-filer, tillsammans med antalet filer.

    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 för ARM-mallen.

    Exempel på JSON-kommando:

    az deployment group create \
      --name <example-deployment> \
      --resource-group <resource-group-name> \
      --template-file azlustre-template.json
    

    Exempel på Bicep-kommando:

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

JSON-exempel

Det här avsnittet visar exempelinnehåll för en JSON-mallfil. Du kan ta bort valfria parametrar när du skapar en egen ARM-mall.

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

Det här avsnittet visar exempelinnehåll för en Bicep-fil. Du kan ta bort valfria parametrar när du skapar egna.

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