Share via


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

Sie können die Erstellung von Azure Managed Lustre-Dateisystemen mithilfe von Azure Resource Manager-Vorlagen automatisieren. In diesem Artikel wird das grundlegende Verfahren erläutert, und es werden Beispiele für die benötigten Dateien aufgeführt.

Weitere Informationen zu den Vorlagen finden Sie unter Azure Resource Manager-Vorlagen.

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

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

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

Auswählen von Dateisystemtyp und -größe

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 Create eines Azure Managed Lustre-Dateisystems.

Wenn Sie eine Vorlage verwenden, geben Sie einen SKU-Namen an, um den grundlegenden Typ des zu erstellenden Azure Managed Lustre-Systems zu definieren. Wenn Sie die Azure-Portal verwenden, um Ihr Azure Managed Lustre zu erstellen, geben Sie den Systemtyp indirekt an, indem Sie dessen Funktionen auswählen.

In Azure definiert der Begriff SKU eine Reihe von Features für die ressource, die erstellt wird. Für ein Azure Managed Lustre-Dateisystem legt die SKU Systemqualitäten fest, z. B. den Typ der verwendeten Datenträger, die unterstützte Speichermenge und die maximale Durchsatzkapazität.

Derzeit werden die folgenden SKUs unterstützt:

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

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

SKU Durchsatz pro TiB-Speicher Mindestspeicher Max. Speicher1 Increment
AMLFS-Durable-Premium-40 40 MB/Sekunde 48 TB 768 TB 48 TB
AMLFS-Durable-Premium-125 125 MB/Sekunde 16 TB 128 TB 16 TB
AMLFS-Durable-Premium-250 250 MB/Sekunde 8 TB 128 TB 8 TB
AMLFS-Durable-Premium-500 500 MB/Sekunde 4 TB 128 TB 4 TB

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

Sie können den Erstellungsworkflow in Azure-Portal verwenden, um die SKU-Funktionen zu überprüfen. SKU-spezifische Einstellungen befinden sich auf der Registerkarte Grundlagen unter Dateisystemdetails.

Tipp

Informationen zu einem Befehl, mit dem Sie die verfügbaren SKU-Namen überprüfen können, finden Sie unter Erforderliche Informationen .

Create einer Vorlagendatei

Nachdem Sie sich für 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. In diesem Abschnitt werden die erforderlichen und optionalen Informationen erläutert, die in Ihre Vorlagendatei aufgenommen werden sollen.

Beispieldateien, die alle möglichen Konfigurationsoptionen enthalten, finden Sie unter JSON-Beispieldateien und Bicep-Beispieldatei.

Erforderliche Informationen

In diesem Abschnitt werden die Informationen erläutert, die Sie in Ihre Azure Resource Manager-Vorlagendateien einfügen müssen, um ein Azure Managed Lustre-Dateisystem zu erstellen. Die genaue Syntax unterscheidet sich zwischen Bicep und JSON. Lesen Sie daher die Beispiele für jeden Sprachtyp für die Literalwerte.

  • Zu erstellende Ressourcentyp: Dieser Wert teilt Azure Resource Manager mit, dass Sie ein Azure Managed Lustre-Dateisystem erstellen, indem Sie eine Kombination aus dem Wert Microsoft.StorageCache/amlFileSystems und der API-Version übergeben.

    Es gibt mehrere Möglichkeiten, den Ressourcentyp zu erstellen:

    • Im JSON-Beispiel dieses Artikels wird der Wert des Ressourcentyps wörtlich in der template.json-Datei übergeben, aber der WERT der API-Version wird aus der parameters.json-Datei gelesen.
    • Im Bicep-Beispiel werden der Ressourcentyp und die API-Version am Anfang der Vorlagendatei übergeben.
  • API-Version : Die zu erstellende Version von Azure Managed Lustre.

    So suchen Sie die aktuelle API-Version:

    az provider show --namespace Microsoft.StorageCache --query "resourceTypes[?resourceType=='amlFilesystems'].apiVersions" --out table
    
  • SKU-Name : Das Leistungsmodell für das Dateisystem, entweder AMLFS-Durable-Premium-125 oder AMLFS-Durable-Premium-250.

    Verwenden Sie den folgenden Befehl, um verfügbare SKUs zu suchen (verwenden Sie die aktuelle API-Version):

    az rest --url https://management.azure.com/subscriptions/<subscription_id>/providers/Microsoft.StorageCache/skus/?api-version=<version> | jq '.value[].name' | grep AMLFS| uniq
    
  • Speicherort : Der Name der Azure-Region, in der das Dateisystem erstellt wird.

    So finden Sie die Regionen und Verfügbarkeitszonen, in denen Azure Managed Lustre unterstützt wird:

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

    Hinweis

    Dieser Befehl gibt die Anzeigenamen der Azure-Regionen aus. Sie sollten den kürzeren name Wert verwenden (z. B. "eastus" anstelle von "USA, Osten").

    Dieser Befehl gibt den Kurznamen aus dem Anzeigenamen zurück. Usa, Westen ist ein Beispiel; Dieser Befehl gibt zurück westus:

    az account list-locations --query "[?displayName=='West US'].name" --output tsv
    
  • Verfügbarkeitszone : Die Verfügbarkeitszone, die innerhalb der Azure-Region verwendet werden soll.

    Verwenden Sie den vorherigen Befehl unter Speicherort , um Verfügbarkeitszonen zu suchen. Geben Sie eine einzelne Verfügbarkeitszone für Ihr System an.

  • Dateisystemname : Der vom Benutzer sichtbare Name für dieses Azure Managed Lustre-Dateisystem.

  • Dateisystemsubnetz : Das Subnetz, das vom Dateisystem verwendet wird. Geben Sie den Subnetz-URI an. beispiel: /subscriptions/<SubscriptionID>/resourceGroups/<VnetResourceGroupName>/providers/Microsoft.Network/virtualNetworks/<VnetName>/subnets/<SubnetName>.

  • Speicherkapazität : Die Größe Ihres Azure Managed Lustre-Clusters in TiB. Die Werte hängen von der SKU ab. Weitere Informationen finden Sie unter Auswählen von Dateisystemtyp und -größe.

  • Wartungszeitraum : Erfordert zwei Werte, die den Wartungszeitraum festlegen. Diese Werte definieren einen wöchentlichen Zeitraum von 30 Minuten, in dem Systemupdates durchgeführt werden können.

    • Wochentag (z. B Sunday. )
    • Uhrzeit (UTC) (z. B. 22:00)

Optionale Informationen

Die Parameter in diesem Abschnitt sind entweder optional oder nur erforderlich, wenn Sie bestimmte Features verwenden.

  • Tags : Verwenden Sie diese Option, wenn Sie Tags für Azure-Ressourcenmetadaten festlegen möchten.

  • Blobintegrationseinstellungen : Geben Sie diese Werte an, um einen integrierten Blob Storage-Container mit diesem Dateisystem zu verwenden. Weitere Informationen finden Sie unter Blobintegration.

    • Container : Die Ressourcen-ID des Blobcontainers, der für die hierarchische Speicherverwaltung (HSM) von Lustre verwendet werden soll.
    • Protokollierungscontainer : Die Ressourcen-ID eines separaten Containers zum Speichern von Import- und Exportprotokollen. Der Protokollierungscontainer muss sich im gleichen Speicherkonto wie der Datencontainer befinden.
    • Importpräfix (optional): Wenn dieser Wert angegeben wird, werden nur Blobs, die mit der Importpräfixzeichenfolge beginnen, in das Azure Managed Lustre File System importiert. Wenn Sie dies nicht angeben, ist /der Standardwert , der angibt, dass alle Blobs im Container importiert werden.
  • Einstellungen für kundenseitig verwaltete Schlüssel: Geben Sie diese Werte an, wenn Sie eine Azure-Key Vault verwenden möchten, um die Verschlüsselungsschlüssel zu steuern, die zum Verschlüsseln Ihrer Daten im Azure Managed Lustre-System verwendet werden. Standardmäßig werden Daten mit von Microsoft verwalteten Verschlüsselungsschlüsseln verschlüsselt.

    • Identitätstyp : Legen Sie diesen Wert auf fest UserAssigned , um kundenseitig verwaltete Schlüssel zu aktivieren.
    • Verschlüsselung Key Vault: Die Ressourcen-ID des Azure-Key Vault, in dem die Verschlüsselungsschlüssel gespeichert werden.
    • Verschlüsselungsschlüssel-URL : Der Bezeichner für den Schlüssel, der zum Verschlüsseln Ihrer Daten verwendet werden soll.
    • Verwaltete Identität: Eine benutzerseitig zugewiesene verwaltete Identität, die vom Azure Managed Lustre-Dateisystem für den Zugriff auf die Azure-Key Vault verwendet wird. Weitere Informationen finden Sie unter Verwenden von kundenseitig verwalteten Verschlüsselungsschlüsseln.

Bereitstellen des Dateisystems mithilfe der Vorlage

In diesen Beispielschritten werden Azure CLI-Befehle verwendet, um eine neue Ressourcengruppe zu erstellen und darin ein Azure Managed Lustre-Dateisystem zu erstellen.

Führen Sie vor der Bereitstellung die folgenden Schritte aus:

Führen Sie die folgenden Schritte aus, um das Dateisystem mithilfe der Vorlage bereitzustellen:

  1. Legen Sie Ihr Standardabonnement fest:

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

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

  3. Stellen Sie das Azure Managed Lustre-Dateisystem mithilfe der Vorlage bereit. Die Syntax unterscheidet sich je nachdem, ob Sie JSON- oder Bicep-Dateien verwenden, und davon, wie viele Dateien Sie verwenden.

    Sie können sowohl Bicep- als auch JSON-Vorlagen als einzelne oder mehrere Dateien bereitstellen. Weitere Informationen und die genaue Syntax für jede Option finden Sie in der Dokumentation zu Azure Resource Manager-Vorlagen.

    JSON-Beispielbefehl:

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

    Bicep-Beispielbefehl:

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

JSON-Beispieldateien

In diesem Abschnitt werden Beispielinhalte für eine Vorlagendatei und eine separate Parameterdatei angezeigt. Diese Dateien enthalten alle möglichen Konfigurationsoptionen. Sie können optionale Parameter entfernen, wenn Sie Eine eigene Azure Resource Manager-Vorlage erstellen.

Vorlagendatei

In diesem Abschnitt wird der Beispielinhalt einer Vorlagendatei gezeigt:

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

Parameterdatei

In diesem Abschnitt wird der Beispielinhalt einer Parameterdatei gezeigt:

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

Bicep-Beispieldatei

Dieses Beispiel enthält alle möglichen Werte in einer Azure Managed Lustre-Vorlage. Entfernen Sie beim Erstellen Ihrer Vorlage alle optionalen Werte, die Sie nicht möchten.

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ächste Schritte