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 ARM (Azure Resource Manager). Este artigo explica o procedimento básico e fornece exemplos dos arquivos necessários.
Este artigo fornece exemplos de dois métodos diferentes para criar modelos do ARM:
- Use JSON para criar modelos do ARM diretamente. Para saber mais, consulte Sintaxe do modelo JSON.
- Use o Bicep, que usa uma sintaxe mais simples para fornecer os detalhes da configuração. Quando você implanta o modelo, os arquivos Bicep são convertidos em arquivos de modelo do 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 o sistema de arquivos do Azure Managed Lustre. Para saber mais sobre as opções de configuração, consulte os detalhes de configuração em Criar um sistema de arquivos do Azure Managed Lustre.
Ao usar um modelo, especifique um 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 de armazenamento com suporte 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 com suporte. Esses SKUs criam um sistema de arquivos que usa armazenamento SSD durável.
SKU | Taxa de transferência por TiB de armazenamento | 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 | Até 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 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 do 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 do sistema de arquivos do Azure Managed Lustre.
Valores de propriedade do modelo
Para criar um sistema de arquivos do Azure Managed Lustre usando um modelo do ARM, você precisa incluir as informações a seguir em seu arquivo de modelo. A sintaxe exata é diferente entre Bicep e JSON, portanto, consulte os exemplos para obter os valores literais.
Sistema de arquivos
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 |
name | Um nome exclusivo para o sistema de arquivos do Azure Managed Lustre. | string (obrigatório) |
local | A localização geográfica onde o recurso reside. Use o nome curto em vez do nome de exibição, por exemplo, use eastus em vez de East US . |
string (obrigatório) |
marcas | Marcas de recursos para o sistema de arquivos. | Dicionário de nomes e valores de tags; veja Tags em modelos |
sku | SKU de desempenho para o recurso. | Veja o nome do SKU |
identity | A identidade gerenciada a ser usada para o sistema de arquivos, se configurada. | Veja Identidade |
properties | Propriedades do sistema de arquivos. | Ver Propriedades |
zonas | Zonas de disponibilidade para 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 em que cada chave é uma ID de recurso de identidade atribuída pelo usuário e o valor de cada chave é um dicionário vazio. | Veja os documentos do modelo |
Propriedades
Nome | Descrição | Valor |
---|---|---|
encryptionSettings | As configurações de criptografia para o sistema de arquivos. | Consulte Configurações de criptografia |
sistema de arquivosSub-rede | A sub-rede que o sistema de arquivos usa. | string (obrigatório) |
Hsm | As configurações do contêiner do Armazenamento de Blobs 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 Janela de manutenção (obrigatório) |
rootSquashSettings | Especifica as configurações de squash raiz para o sistema de arquivos. | Consulte Configurações de squash raiz |
storageCapacityTiB | O tamanho do sistema de arquivos, em TiB. Para saber mais sobre os valores permitidos para esse campo com base no SKU, consulte Escolher o tipo e o 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 Key Vault. | Veja os documentos do modelo |
Configurações do HSM
Nome | Descrição | Valor |
---|---|---|
contêiner | ID do recurso do contêiner de armazenamento usado para hidratar o namespace e arquivar do namespace. O provedor de recursos deve ter permissão para criar tokens SAS na conta de armazenamento. | string (obrigatório) |
importPrefixo | Somente blobs no contêiner que não é de 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 do Azure Managed Lustre. | string |
importPrefixesInicial | Somente blobs no contêiner sem 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 contêiner separado na mesma conta de armazenamento que o contêiner de hidratação e arquivamento. O provedor de recursos deve ter permissão para criar tokens SAS na conta de armazenamento. | string (obrigatório) |
Observação
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 Prefixo de importação.
Janela de manutenção
Nome | Descrição | Valor |
---|---|---|
dayOfWeek | 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) em que a janela de manutenção pode ocorrer. | Exemplo de cadeia de caracteres : 22:30 |
A timeOfDayUTC
propriedade utiliza 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 |
---|---|---|
mode | Modo de squash do sistema de arquivos AML. 'Todos': os IDs de usuário e grupo em arquivos são combinados com os valores fornecidos para todos os usuários em sistemas não confiáveis. 'RootOnly': as IDs de usuário e grupo em arquivos são combinadas com valores fornecidos apenas para o usuário raiz em sistemas não confiáveis. 'Nenhum': nenhuma combinação de IDs de usuário e grupo é executada para nenhum usuário em nenhum sistema. | All , None , RootOnly |
noSquashNidLists | Lista de endereços IP NID separada por ponto-e-vírgula a ser adicionada ao TrustedSystems. | string |
de abóboraGID | ID do grupo para esmagar. | int |
squashUID | ID do usuário para comprimir. | int |
Nome do SKU
Nome | Descrição | Valor |
---|---|---|
name | Nome do 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 atender a 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 o sistema de arquivos do 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 de modelo.
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 vários arquivos. Para obter mais informações e ver a sintaxe exata de cada opção, consulte a documentação do modelo do 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 do 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 seus próprios.
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'
]
}