Criar um sistema de arquivos do Azure Managed Lustre usando modelos do Azure Resource Manager
Você pode automatizar a criação de um sistema de arquivos do Azure Managed Lustre usando modelos do Azure Resource Manager (ARM). Este artigo explica o procedimento básico e dá exemplos dos ficheiros de que necessita.
Este artigo fornece exemplos de dois métodos diferentes para criar modelos ARM:
- Use JSON para criar modelos ARM diretamente. Para saber mais, consulte Sintaxe do modelo JSON.
- Use o Bicep, que usa sintaxe mais simples para fornecer os detalhes de configuração. Quando você implanta o modelo, os arquivos Bicep são convertidos em arquivos de modelo ARM. Para saber mais, consulte a documentação do Bicep.
Para saber mais sobre essas opções, consulte Comparando JSON e Bicep para modelos.
Escolha o tipo e o tamanho do sistema de arquivos
Antes de escrever um modelo, você deve tomar algumas decisões sobre seu sistema de arquivos do Azure Managed Lustre. Para saber mais sobre as opções de configuração, consulte os detalhes da instalação em Criar um sistema de arquivos do Azure Managed Lustre.
Ao usar um modelo, especifique uma SKU para definir o tipo básico de sistema de arquivos do Azure Managed Lustre a ser criado. O SKU representa uma camada de produto. Ele define as qualidades do sistema, como o tipo de discos, a quantidade suportada de armazenamento e a capacidade máxima de taxa de transferência. Se você usar o portal do Azure para criar seu sistema de arquivos do Azure Managed Lustre, especifique o tipo de sistema indiretamente selecionando seus recursos.
A tabela a seguir mostra os valores de taxa de transferência e tamanho de armazenamento em cada SKU suportada. Esses SKUs criam um sistema de arquivos que usa armazenamento SSD durável.
SKU | Taxa de transferência por armazenamento TiB | Armazenamento mínimo | Armazenamento máximo | Incremento |
---|---|---|---|---|
AMLFS-Durável-Premium-40 | 40 MBps | 48 TB | 768 TB | 48 TB |
AMLFS-Durável-Premium-125 | 125 MBps | 16 TB | 128 TB | 16 TB |
AMLFS-Durável-Premium-250 | 250 MBps | 8 TB | 128 TB | 8 TB |
AMLFS-Durável-Premium-500 | 500 MBps | 4 TB | 128 TB | 4 TB |
Se você precisar de valores de armazenamento maiores do que o máximo listado, poderá abrir um tíquete de suporte para explorar as opções.
Para verificar os recursos de SKU, você pode usar o fluxo de trabalho para criar um sistema de arquivos Managed Lustre usando o portal do Azure. As configurações específicas de SKU estão na guia Noções básicas em Detalhes do sistema de arquivos.
Criar um arquivo de modelo
Depois de decidir sobre as opções de configuração, você pode criar um arquivo de modelo. O arquivo de modelo é um arquivo JSON ou Bicep que contém os detalhes de configuração para seu sistema de arquivos do Azure Managed Lustre.
Valores de propriedade de modelo
Para criar um sistema de arquivos do Azure Managed Lustre usando um modelo ARM, você precisa incluir as seguintes informações em seu arquivo de modelo. A sintaxe exata é diferente entre Bicep e JSON, portanto, consulte os exemplos para os valores literais.
Sistema de ficheiros
Nome | Descrição | valor |
---|---|---|
tipo | O tipo de recurso a ser criado. | Microsoft.StorageCache/amlFileSystems |
apiVersion | A versão da API do Azure Managed Lustre a ser usada. | Use a versão atual da API, por exemplo, 2024-03-01 |
nome | Um nome exclusivo para o sistema de arquivos do Azure Managed Lustre. | string (obrigatório) |
localização | A geolocalização onde o recurso vive. Use o nome curto em vez do nome para exibição, por exemplo, use eastus em vez de East US . |
string (obrigatório) |
etiquetas | Tags de recursos para o sistema de arquivos. | Dicionário de nomes e valores de tags; ver Tags em modelos |
sku | SKU de desempenho para o recurso. | Ver nome da SKU |
de identidade | A identidade gerenciada a ser usada para o sistema de arquivos, se configurada. | Ver Identidade |
propriedades | Propriedades para o sistema de arquivos. | Ver Imóveis |
Zonas | Zonas de disponibilidade de recursos. Este campo deve conter apenas um único elemento na matriz. | string[] |
Identidade
Nome | Descrição | valor |
---|---|---|
tipo | O tipo de identidade usado para o recurso. | None , UserAssigned |
userAssignedIdentities | Um dicionário onde cada chave é um ID de recurso de identidade atribuído ao usuário e o valor de cada chave é um dicionário vazio. | Ver documentos de modelo |
Propriedades
Nome | Descrição | valor |
---|---|---|
criptografiaConfigurações | As configurações de criptografia para o sistema de arquivos. | Consulte Configurações de criptografia |
filesystemSubnet | A sub-rede que o sistema de arquivos usa. | string (obrigatório) |
HSM | As configurações do contêiner Armazenamento de Blob para o sistema de arquivos. | Consulte as configurações do HSM |
manutençãoJanela | Especifica o dia e a hora em que as atualizações do sistema podem ocorrer. | Consulte a janela Manutenção (obrigatório) |
rootSquashSettings | Especifica as configurações de squash raiz para o sistema de arquivos. | Consulte Configurações de squash raiz |
armazenamentoCapacidadeTiB | O tamanho do sistema de arquivos, em TiB. Para saber mais sobre os valores permitidos para este campo com base na SKU, consulte Escolher tipo e tamanho do sistema de arquivos. | int (obrigatório) |
Configurações de criptografia
Nome | Descrição | valor |
---|---|---|
chaveEncryptionKey | Especifica o local da chave de criptografia no Cofre da Chave. | Ver documentos de modelo |
Configurações do HSM
Nome | Descrição | valor |
---|---|---|
contentor | ID de recurso do contêiner de armazenamento usado para hidratar o namespace e arquivar a partir do namespace. O provedor de recursos deve ter permissão para criar tokens SAS na conta de armazenamento. | string (obrigatório) |
importPrefix | Somente blobs no contêiner sem registro em log que começam com esse caminho/prefixo são importados para o namespace do cluster. Isso só é usado durante a criação inicial do sistema de arquivos Azure Managed Lustre. | string |
importPrefixesInitial | Somente blobs no contêiner sem registro em log que começam com um dos caminhos/prefixos nessa matriz são importados para o namespace do cluster. Esse valor só é usado durante a criação inicial do sistema de arquivos do Azure Managed Lustre e tem '/' como o valor padrão. | string[] |
loggingContainer | ID do recurso do contêiner de armazenamento usado para registrar eventos e erros. Deve ser um recipiente separado na mesma conta de armazenamento que o recipiente de hidratação e arquivo. O provedor de recursos deve ter permissão para criar tokens SAS na conta de armazenamento. | string (obrigatório) |
Nota
A importPrefixesInitial
propriedade permite especificar vários prefixos para importar dados para o sistema de arquivos, enquanto importPrefix
permite especificar um único prefixo. O valor padrão para ambas as propriedades é /
. Se você definir uma das propriedades, não poderá definir a outra. Se você definir ambas as propriedades, a implantação falhará.
Para saber mais, consulte Importar prefixo.
Janela de manutenção
Nome | Descrição | valor |
---|---|---|
diadesemana | Dia da semana em que a janela de manutenção pode ocorrer. | Sunday , Monday , Tuesday , Wednesday , Thursday , Friday , Saturday |
timeOfDayUTC | A hora do dia (em UTC) a janela de manutenção pode ocorrer. | string Exemplo: 22:30 |
A timeOfDayUTC
propriedade usa um formato de relógio de 24 horas. Por exemplo, 22:30
representa 22h30. O padrão é ^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
.
Configurações de squash raiz
Nome | Descrição | valor |
---|---|---|
modo | Modo Squash do sistema de arquivos AML. 'Todos': IDs de usuário e grupo em arquivos são esmagados para os valores fornecidos para todos os usuários em sistemas não confiáveis. 'RootOnly': IDs de usuário e grupo em arquivos são esmagados para valores fornecidos apenas para o usuário root em sistemas não confiáveis. 'Nenhum': Nenhuma eliminação de IDs de Usuário e Grupo é realizada para quaisquer usuários em qualquer sistema. | All , None , RootOnly |
noSquashNidListas | Lista de endereços IP NID separados por ponto-e-vírgula a serem adicionados aos TrustedSystems. | string |
squashGID | ID de grupo para esmagar. | número inteiro |
squashUID | ID de usuário para esmagar. | número inteiro |
Nome da SKU
Nome | Descrição | Valor |
---|---|---|
nome | Nome da SKU para o recurso. | AMLFS-Durable-Premium-40 , AMLFS-Durable-Premium-125 , AMLFS-Durable-Premium-250 , AMLFS-Durable-Premium-500 |
Implantar o sistema de arquivos usando o modelo
As etapas de exemplo a seguir usam comandos da CLI do Azure para criar um novo grupo de recursos e criar um sistema de arquivos do Azure Managed Lustre nele. As etapas pressupõem que você já escolheu um tipo e tamanho de sistema de arquivos e criou um arquivo de modelo, conforme descrito anteriormente neste artigo. Certifique-se também de que cumpre todos os pré-requisitos.
Defina sua assinatura padrão:
az account set --subscription "<subscription-id>" az account show
Opcionalmente, crie um novo grupo de recursos para seu sistema de arquivos Azure Managed Lustre. Se você quiser usar um grupo de recursos existente, ignore esta etapa e forneça o nome do grupo de recursos existente ao executar o comando template.
az group create --name <rg-name> --location <region-short-name>
Seu sistema de arquivos pode usar recursos fora de seu próprio grupo de recursos, desde que estejam na mesma assinatura.
Implante o sistema de arquivos do Azure Managed Lustre usando o modelo. A sintaxe depende se você está usando arquivos JSON ou Bicep, juntamente com o número de arquivos.
Você pode implantar modelos Bicep e JSON como arquivos únicos ou múltiplos. Para obter mais informações e ver a sintaxe exata para cada opção, consulte a documentação do modelo ARM.
Exemplo de comando JSON:
az deployment group create \ --name <example-deployment> \ --resource-group <resource-group-name> \ --template-file azlustre-template.json
Exemplo de comando Bicep:
az deployment group create \ --resource-group <ResourceGroupName> \ --template-file azlustre.bicep
Exemplo de JSON
Esta seção mostra o conteúdo de exemplo de um arquivo de modelo JSON. Você pode remover parâmetros opcionais ao criar seu próprio modelo ARM.
{
"$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": {}
}
Exemplo de bíceps
Esta seção mostra o conteúdo de exemplo de um arquivo Bicep. Você pode remover parâmetros opcionais ao criar o seu próprio.
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'
]
}