Erstellen eines Azure Managed Lustre-Dateisystems mithilfe von Azure Resource Manager-Vorlagen

Sie können die Erstellung eines Azure Managed Lustre-Dateisystems automatisieren, indem Sie Azure Resource Manager (ARM)-Vorlagen verwenden. In diesem Artikel wird das grundlegende Verfahren erläutert und Beispiele für die benötigten Dateien bereitgestellt.

Dieser Artikel enthält Beispiele für zwei verschiedene Methoden zum Erstellen von ARM-Vorlagen:

  • Verwenden Sie JSON, um ARM-Vorlagen direkt zu erstellen. Weitere Informationen finden Sie unter JSON-Vorlagensyntax.
  • Verwenden Sie Bicep, die eine einfachere Syntax verwendet, um die Konfigurationsdetails zu liefern. Wenn Sie die Vorlage bereitstellen, werden die Bicep-Dateien in ARM-Vorlagendateien konvertiert. Weitere Informationen finden Sie in der Bicep-Dokumentation.

Weitere Informationen zu diesen Optionen finden Sie unter Vergleich von JSON und Bicep für Vorlagen.

Dateisystemtyp und -größe auswählen

Bevor Sie eine Vorlage schreiben, müssen Sie einige Entscheidungen zu Ihrem Azure Managed Lustre-Dateisystem treffen. Weitere Informationen zu den Konfigurationsoptionen finden Sie in den Setupdetails unter Erstellen eines Azure Managed Lustre-Dateisystems.

Wenn Sie eine Vorlage verwenden, geben Sie eine SKU an, um den grundlegenden Typ des zu erstellenden Azure Managed Lustre-Dateisystems zu definieren. Die SKU stellt eine Produktebene dar. Es legt Systemqualitäten wie den Typ der Datenträger, die unterstützte Speichermenge und die maximale Durchsatzkapazität fest. Wenn Sie das Azure-Portal verwenden, um Ihr Azure Managed Lustre-Dateisystem zu erstellen, geben Sie den Systemtyp indirekt an, indem Sie dessen Funktionen auswählen.

In der folgenden Tabelle sind die Werte für Durchsatz und Speichergröße in jeder unterstützten SKU aufgeführt. Diese SKUs erstellen ein Dateisystem, das dauerhaften SSD-Speicher verwendet.

SKU Durchsatz pro TiB Speicher Mindestspeicher Maximaler Speicher Increment
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

Wenn Sie Speicherwerte benötigen, die größer als das aufgeführte Maximum sind, können Sie ein Supportticket öffnen, um Optionen zu erkunden.

Um SKU-Funktionen zu überprüfen, können Sie den Workflow zum Erstellen eines Managed Lustre-Dateisystems mithilfe der Azure-Portal verwenden. SKU-spezifische Einstellungen befinden sich auf der Registerkarte "Grundlagen " unter "Dateisystemdetails".

Erstellen einer Vorlagendatei

Nachdem Sie sich für Die Konfigurationsoptionen entschieden haben, können Sie eine Vorlagendatei erstellen. Die Vorlagendatei ist eine JSON- oder Bicep-Datei, die die Konfigurationsdetails für Ihr Azure Managed Lustre-Dateisystem enthält.

Vorlageneigenschaftenwerte

Um ein Azure Managed Lustre-Dateisystem mithilfe einer ARM-Vorlage zu erstellen, müssen Sie die folgenden Informationen in die Vorlagendatei aufnehmen. Die genaue Syntax unterscheidet sich zwischen Bicep und JSON. Lesen Sie daher die Beispiele für die Literalwerte.

Dateisystem

Name Beschreibung Wert
Typ Der Typ der zu erstellenden Ressource. Microsoft.StorageCache/amlFileSystems
apiVersion Die zu verwendende Version der Azure Managed Lustre-API. Verwenden Der aktuellen API-Version, z. B. 2024-03-01
name Ein eindeutiger Name für das Azure Managed Lustre-Dateisystem. Zeichenfolge (erforderlich)
location Der geografische Standort, an dem sich die Ressource befindet. Verwenden Sie den Kurznamen anstelle des Anzeigenamens, z. B. anstelle eastus von East US. Zeichenfolge (erforderlich)
Tags Ressourcentags für das Dateisystem. Wörterbuch von Tagnamen und Werten; siehe Kategorien in Vorlagen
sku Leistungs-SKU für die Ressource. Siehe SKU-Name
identity Die verwaltete Identität, die für das Dateisystem verwendet werden soll, falls konfiguriert. Identität anzeigen
properties Eigenschaften für das Dateisystem. Eigenschaften anzeigen
zonen Verfügbarkeitszonen für Ressourcen. Dieses Feld darf nur ein einzelnes Element im Array enthalten. string[]

Identität

Name Beschreibung Wert
Typ Der Identitätstyp, der für die Ressource verwendet wird. None, UserAssigned
userAssignedIdentities Ein Wörterbuch, bei dem es sich bei jedem Schlüssel um eine vom Benutzer zugewiesene Identitätsressourcen-ID handelt, und der Wert jedes Schlüssels ist ein leeres Wörterbuch. Vorlagendokumente anzeigen

Eigenschaften

Name des Dataflows Beschreibung Wert
encryptionSettings Die Verschlüsselungseinstellungen für das Dateisystem. Siehe Verschlüsselungseinstellungen
filesystemSubnet Das Subnetz, das vom Dateisystem verwendet wird. Zeichenfolge (erforderlich)
Hsm Die Blob Storage-Containereinstellungen für das Dateisystem. Siehe HSM-Einstellungen
maintenanceWindow Gibt Tag und Uhrzeit an, zu dem Systemupdates auftreten können. Siehe Wartungsfenster (erforderlich)
rootSquashSettings Gibt Stammeinstellungen für das Dateisystem an. Siehe Stamm-Root-Einstellungen
storageCapacityTiB Die Größe des Dateisystems in TiB. Weitere Informationen zu den zulässigen Werten für dieses Feld basierend auf der SKU finden Sie unter Auswählen des Dateisystemtyps und der Größe. int (erforderlich)

Verschlüsselungseinstellungen

Name Beschreibung Wert
keyEncryptionKey Gibt den Speicherort des Verschlüsselungsschlüssels im Key Vault an. Vorlagendokumente anzeigen

HSM-Einstellungen

Name Beschreibung Wert
Container Ressourcen-ID des Speichercontainers, der für die Hydratisierung des Namespace und die Archivierung aus dem Namespace verwendet wird. Der Ressourcenanbieter muss über die Berechtigung zum Erstellen von SAS-Token für das Speicherkonto verfügen. Zeichenfolge (erforderlich)
importPrefix Nur Blobs im Nichtprotokollierungscontainer, die mit diesem Pfad/Präfix beginnen, werden in den Clusternamespace importiert. Dies wird nur bei der ersten Erstellung des Azure Managed Lustre-Dateisystems verwendet. Zeichenfolge
importPrefixesInitial Nur Blobs im Nichtprotokollierungscontainer, die mit einem der Pfade/Präfixe in diesem Array beginnen, werden in den Clusternamespace importiert. Dieser Wert wird nur bei der ersten Erstellung des Azure Managed Lustre-Dateisystems verwendet und hat "/" als Standardwert. string[]
loggingContainer Ressourcen-ID des Speichercontainers, der zum Protokollieren von Ereignissen und Fehlern verwendet wird. Muss ein separater Container im selben Speicherkonto wie der Hydratations- und Archivcontainer sein. Der Ressourcenanbieter muss über die Berechtigung zum Erstellen von SAS-Token für das Speicherkonto verfügen. Zeichenfolge (erforderlich)

Hinweis

Mit der importPrefixesInitial Eigenschaft können Sie mehrere Präfixe für das Importieren von Daten in das Dateisystem angeben, während importPrefix Sie ein einzelnes Präfix angeben können. Der Standardwert für beide Eigenschaften lautet /. Wenn Sie eine der Eigenschaften definieren, können Sie die andere nicht definieren. Wenn Sie beide Eigenschaften definieren, schlägt die Bereitstellung fehl.

Weitere Informationen finden Sie unter "Präfix importieren".

Wartungsfenster

Name Beschreibung Wert
dayOfWeek Tag der Woche, an dem das Wartungsfenster auftreten kann. Sunday, , MondayTuesday, Wednesday, Thursday, , FridaySaturday
timeOfDayUTC Die Tageszeit (in UTC) kann das Wartungsfenster auftreten. Zeichenfolgenbeispiel
: 22:30

Die timeOfDayUTC Eigenschaft verwendet ein 24-Stunden-Format. Stellt beispielsweise 22:30 10:30 Uhr dar. Das Muster lautet ^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$.

Stamm-Root-Einstellungen

Name Beschreibung Wert
Modus Moderationsmodus des AML-Dateisystems. "Alle": Benutzer- und Gruppen-IDs für Dateien werden auf die bereitgestellten Werte für alle Benutzer auf nicht vertrauenswürdigen Systemen ausgerichtet. 'RootOnly': Benutzer- und Gruppen-IDs für Dateien werden auf bereitgestellte Werte für den Stammbenutzer auf nicht vertrauenswürdigen Systemen ausgerichtet. "Keine": Für Benutzer- und Gruppen-IDs auf allen Systemen wird keine Zwischenspeicherung durchgeführt. All, NoneRootOnly
noSquashNidLists Semikolonstrennte NID-IP-Adressliste, die der TrustedSystems hinzugefügt werden soll. Zeichenfolge
rückungGID Gruppen-ID, auf die sie eingerückt werden sollen. int
uiUID Benutzer-ID, auf die zu drücken ist. int

SKU-Name

Name Beschreibung Wert
name SKU-Name für die Ressource. AMLFS-Durable-Premium-40, , AMLFS-Durable-Premium-125AMLFS-Durable-Premium-250AMLFS-Durable-Premium-500

Bereitstellen des Dateisystems mithilfe der Vorlage

In den folgenden Beispielschritten werden Azure CLI-Befehle zum Erstellen einer neuen Ressourcengruppe und zum Erstellen eines Azure Managed Lustre-Dateisystems verwendet. Bei den Schritten wird davon ausgegangen, dass Sie bereits einen Dateisystemtyp und eine Größe ausgewählt und eine Vorlagendatei erstellt haben, wie weiter oben in diesem Artikel beschrieben. Stellen Sie außerdem sicher, dass Sie alle Voraussetzungen erfüllen.

  1. Legen Sie Ihr Standardabonnement fest:

    az account set --subscription "<subscription-id>"
    az account show
    
  2. Erstellen Sie optional eine neue Ressourcengruppe für Ihr Azure Managed Lustre-Dateisystem. Wenn Sie eine vorhandene Ressourcengruppe verwenden möchten, überspringen Sie diesen Schritt, und geben Sie den Namen der vorhandenen Ressourcengruppe an, wenn Sie den Vorlagenbefehl ausführen.

    az group create --name <rg-name> --location <region-short-name>
    

    Ihr Dateisystem kann Ressourcen außerhalb der eigenen Ressourcengruppe verwenden, solange sie sich im selben Abonnement befinden.

  3. Stellen Sie das Azure Managed Lustre-Dateisystem mithilfe der Vorlage bereit. Die Syntax hängt davon ab, ob Sie JSON- oder Bicep-Dateien zusammen mit der Anzahl der Dateien verwenden.

    Sie können Bicep- und JSON-Vorlagen als einzelne Dateien oder mehrere Dateien bereitstellen. Weitere Informationen und die genaue Syntax für jede Option finden Sie in der ARM-Vorlagendokumentation.

    Beispiel-JSON-Befehl:

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

    Beispielbefehl Bicep:

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

JSON-Beispiel

Dieser Abschnitt zeigt Beispielinhalte für eine JSON-Vorlagendatei. Sie können optionale Parameter entfernen, wenn Sie eine eigene ARM-Vorlage erstellen.

{
    "$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/00000000-0000-0000-0000-000000000000/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/00000000-0000-0000-0000-000000000000/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<keyvault-name>"
                  }
                }
              },
              "filesystemSubnet": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/<rg-name>/providers/Microsoft.Network/virtualNetworks/<vnet-name>/subnets/<subnet-name>",
              "hsm": {
                "settings": {
                  "container": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/<rg-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>",
                  "loggingContainer": "/subscriptions/00000000-0000-0000-0000-000000000000/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-Beispiele

Dieser Abschnitt zeigt Beispielinhalte für eine Bicep-Datei. Beim Erstellen eigener Parameter können Sie optionale Parameter entfernen.

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/00000000-0000-0000-0000-000000000000/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/00000000-0000-0000-0000-000000000000/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<keyvault-name>'
        }
      }
    }
    filesystemSubnet: '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/<rg-name>/providers/Microsoft.Network/virtualNetworks/<vnet-name>/subnets/<subnet-name>'
    hsm: {
      settings: {
        container: '/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/<rg-name>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>/blobServices/default/containers/<container-name>'
        importPrefixesInitial: [
          '/'
        ]
        loggingContainer: '/subscriptions/00000000-0000-0000-0000-000000000000/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'
  ]
}