Partilhar via


Create um sistema de ficheiros do Azure Managed Lustre com modelos do Azure Resource Manager

Pode automatizar a criação do sistema de ficheiros Do Azure Managed Lustre com modelos do Azure Resource Manager. Este artigo explica o procedimento básico e dá exemplos dos ficheiros de que precisa.

Para obter mais informações sobre os modelos, veja Modelos de Resource Manager do Azure.

Este artigo fornece exemplos de dois métodos diferentes para criar modelos do Azure Resource Manager:

  • Utilize JSON para criar modelos do Azure Resource Manager diretamente. Veja Sintaxe do modelo JSON.
  • Utilize o Bicep, que utiliza sintaxe mais simples para fornecer os detalhes de configuração. Quando implementa o modelo, os ficheiros bicep são convertidos em ficheiros de modelo Resource Manager do Azure. Veja a documentação do Bicep.

Para saber mais sobre as suas opções, veja Comparar JSON e Bicep para modelos.

Escolher o tipo e o tamanho do sistema de ficheiros

Antes de escrever um modelo, tem de tomar algumas decisões sobre o seu sistema de ficheiros do Azure Managed Lustre. Para saber mais sobre as opções de configuração, veja os detalhes da configuração em Create um sistema de ficheiros do Azure Managed Lustre.

Quando utiliza um modelo, especifique um nome de SKU para definir o tipo básico de sistema Do Azure Managed Lustre a criar. Se utilizar o portal do Azure para criar o Azure Managed Lustre, especifique o tipo de sistema indiretamente ao selecionar as respetivas capacidades.

No Azure, o termo SKU define um conjunto de funcionalidades para o recurso que está a ser criado. Para um sistema de ficheiros Do Azure Managed Lustre, o SKU define as qualidades do sistema, como o tipo de discos utilizados, a quantidade de armazenamento suportado e a capacidade máxima de débito.

Atualmente, são suportados os seguintes SKUs:

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

Estes SKUs criam um sistema de ficheiros que utiliza o armazenamento SSD durável. A tabela seguinte mostra os valores de débito e tamanho de armazenamento para cada SKU:

SKU Débito por armazenamento TiB Mínimo de Armazenamento Máximo de Armazenamento1 Incremento
AMLFS-Durable-Premium-40 40 MB/segundo 48 TB 768 TB 48 TB
AMLFS-Durable-Premium-125 125 MB/segundo 16 TB 128 TB 16 TB
AMLFS-Durable-Premium-250 250 MB/segundo 8 TB 128 TB 8 TB
AMLFS-Durable-Premium-500 500 MB/segundo 4 TB 128 TB 4 TB

1 Se precisar de valores de armazenamento superiores ao máximo listado, pode abrir um pedido de suporte para explorar as opções.

Pode utilizar o fluxo de trabalho criar no portal do Azure para verificar as capacidades do SKU. As definições específicas do SKU estão no separador Noções básicas , em Detalhes do sistema de ficheiros.

Dica

Veja Informações necessárias para um comando que pode utilizar para verificar os nomes de SKU disponíveis.

Create um ficheiro de modelo

Assim que decidir as opções de configuração, pode criar um ficheiro de modelo. O ficheiro de modelo é um ficheiro JSON ou Bicep que contém os detalhes de configuração do seu sistema de ficheiros do Azure Managed Lustre. Esta secção explica as informações necessárias e opcionais a incluir no ficheiro de modelo.

Para obter ficheiros de exemplo que contêm todas as opções de configuração possíveis, veja Ficheiros JSON de exemplo e ficheiro Bicep de Exemplo.

Informações necessárias

Esta secção explica as informações que precisa de incluir nos ficheiros de modelo do Azure Resource Manager para criar um sistema de ficheiros do Azure Managed Lustre. A sintaxe exata é diferente entre Bicep e JSON, por isso, consulte os exemplos de cada tipo de idioma para obter os valores literais.

  • Tipo de recurso a criar – este valor indica ao Azure Resource Manager que está a criar um sistema de ficheiros do Azure Managed Lustre ao transmitir uma combinação do valor Microsoft.StorageCache/amlFileSystems e da versão da API.

    Existem várias formas de criar o tipo de recurso:

    • No exemplo JSON deste artigo, o valor do tipo de recurso é transmitido literalmente no ficheiro template.json , mas o valor da versão da API é lido a partir do ficheiro parameters.json .
    • No exemplo bicep, o tipo de recurso e a versão da API são transmitidos em conjunto no início do ficheiro de modelo.
  • Versão da API – a versão do Azure Managed Lustre a criar.

    Para encontrar a versão atual da API:

    az provider show --namespace Microsoft.StorageCache --query "resourceTypes[?resourceType=='amlFilesystems'].apiVersions" --out table
    
  • Nome do SKU – o modelo de desempenho do sistema de ficheiros, ou AMLFS-Durable-Premium-125AMLFS-Durable-Premium-250.

    Utilize o seguinte comando para localizar SKUs disponíveis (utilize a versão atual da API):

    az rest --url https://management.azure.com/subscriptions/<subscription_id>/providers/Microsoft.StorageCache/skus/?api-version=<version> | jq '.value[].name' | grep AMLFS| uniq
    
  • Localização – o nome da região do Azure onde o sistema de ficheiros é criado.

    Para encontrar as regiões e as zonas de disponibilidade onde o Azure Managed Lustre é suportado:

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

    Nota

    Este comando produz os nomes a apresentar das regiões do Azure; deve utilizar o valor mais curto name (por exemplo, utilize "eastus" em vez de "E.U.A. Leste").

    Este comando devolve o nome abreviado do nome a apresentar. E.U.A. Oeste é um exemplo; este comando devolve westus:

    az account list-locations --query "[?displayName=='West US'].name" --output tsv
    
  • Zona de disponibilidade – a zona de disponibilidade a utilizar na região do Azure.

    Utilize o comando anterior em Localização para encontrar zonas de disponibilidade. Especifique uma única zona de disponibilidade para o seu sistema.

  • Nome do sistema de ficheiros – o nome visível pelo utilizador para este sistema de ficheiros do Azure Managed Lustre.

  • Sub-rede do sistema de ficheiros – a sub-rede que o sistema de ficheiros utiliza. Indique o URI da sub-rede; por exemplo, /subscriptions/<SubscriptionID>/resourceGroups/<VnetResourceGroupName>/providers/Microsoft.Network/virtualNetworks/<VnetName>/subnets/<SubnetName>.

  • Capacidade de armazenamento – o tamanho do cluster do Azure Managed Lustre, no TiB. Os valores dependem do SKU. Para obter mais informações, veja Escolher o tipo e o tamanho do sistema de ficheiros.

  • Período de manutenção – requer dois valores que definem o período de manutenção. Estes valores definem um período semanal de 30 minutos durante o qual as atualizações do sistema podem ser feitas.

    • Dia da semana (por exemplo, Sunday)
    • Hora do dia (UTC) (por exemplo, 22:00)

Informações opcionais

Os parâmetros nesta secção são opcionais ou obrigatórios apenas se estiver a utilizar funcionalidades específicas.

  • Etiquetas – utilize esta opção se quiser definir etiquetas de metadados de recursos do Azure.

  • Definições de integração de blobs – forneça estes valores para utilizar um contentor de Armazenamento de Blobs integrado com este sistema de ficheiros. Para obter mais informações, veja Integração de blobs.

    • Contentor – o ID de recurso do contentor de blobs a utilizar para a gestão hierárquica de armazenamento (HSM) do Lustre.
    • Contentor de registo – o ID de recurso de um contentor separado para manter os registos de importação e exportação. O contentor de registo tem de estar na mesma conta de armazenamento que o contentor de dados.
    • Prefixo de importação (opcional) – se este valor for fornecido, apenas os blobs que começam com a cadeia de prefixo de importação são importados para o Sistema de Ficheiros Do Azure Managed Lustre. Se não o fornecer, o valor predefinido é /, que especifica que todos os blobs no contentor são importados.
  • Definições de chave geridas pelo cliente – forneça estes valores se quiser utilizar um Key Vault do Azure para controlar as chaves de encriptação utilizadas para encriptar os seus dados no sistema Azure Managed Lustre. Por predefinição, os dados são encriptados com chaves de encriptação geridas pela Microsoft.

    • Tipo de identidade – defina esta opção para UserAssigned ativar as chaves geridas pelo cliente.
    • Key Vault de encriptação – o ID de recurso do Key Vault do Azure que armazena as chaves de encriptação.
    • URL da chave de encriptação – o identificador da chave a utilizar para encriptar os seus dados.
    • Identidade gerida – uma identidade gerida atribuída pelo utilizador que o sistema de ficheiros do Azure Managed Lustre utiliza para aceder ao Key Vault do Azure. Para obter mais informações, veja Utilizar chaves de encriptação geridas pelo cliente.

Implementar o sistema de ficheiros com o modelo

Estes passos de exemplo utilizam comandos da CLI do Azure para criar um novo grupo de recursos e criar um sistema de ficheiros do Azure Managed Lustre no mesmo.

Antes de implementar, certifique-se de que conclui os seguintes passos:

Siga estes passos para implementar o sistema de ficheiros com o modelo:

  1. Defina a sua subscrição predefinida:

    az account set --subscription "<SubscriptionID>"
    az account show
    
  2. Opcionalmente, crie um novo grupo de recursos para o seu sistema de ficheiros do Azure Managed Lustre. Se quiser utilizar um grupo de recursos existente, ignore este passo e indique o nome do grupo de recursos existente quando executar o comando de modelo.

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

    O seu sistema de ficheiros pode utilizar recursos fora do seu próprio grupo de recursos, desde que estejam na mesma subscrição.

  3. Implemente o sistema de ficheiros do Azure Managed Lustre com o modelo . A sintaxe é diferente consoante esteja a utilizar ficheiros JSON ou Bicep e o número de ficheiros que utiliza.

    Pode implementar modelos Bicep e JSON como ficheiros individuais ou múltiplos ficheiros. Para obter mais informações e para ver a sintaxe exata de cada opção, veja a documentação do Azure Resource Manager modelos.

    Comando JSON de exemplo:

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

    Comando Bicep de exemplo:

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

Ficheiros JSON de exemplo

Esta secção mostra o conteúdo de exemplo de um ficheiro de modelo e um ficheiro de parâmetros separado. Estes ficheiros contêm todas as opções de configuração possíveis. Pode remover parâmetros opcionais ao criar o seu próprio modelo do Azure Resource Manager.

Ficheiro de modelo

Esta secção mostra conteúdos de exemplo de um ficheiro de modelo:

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

Ficheiro de parâmetros

Esta secção mostra conteúdos de exemplo de um ficheiro de parâmetros:

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

Ficheiro Bicep de exemplo

Este exemplo inclui todos os valores possíveis num modelo do Azure Managed Lustre. Ao criar o modelo, remova os valores opcionais que não pretender.

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

Passos seguintes