Поделиться через


Создание управляемой файловой системы Lustre Azure с помощью шаблонов Azure Resource Manager

Вы можете автоматизировать создание управляемой файловой системы Lustre Azure с помощью шаблонов Azure Resource Manager (ARM). В этой статье описана базовая процедура и приведены примеры необходимых файлов.

В этой статье приведены примеры двух различных методов создания шаблонов ARM:

  • Используйте JSON для непосредственного создания шаблонов ARM. Дополнительные сведения см . в синтаксисе шаблона JSON.
  • Используйте Bicep, который использует более простой синтаксис для предоставления сведений о конфигурации. При развертывании шаблона файлы Bicep преобразуются в файлы шаблонов ARM. Дополнительные сведения см . в документации по Bicep.

Дополнительные сведения об этих параметрах см. в статье "Сравнение JSON и Bicep" для шаблонов.

Выбор типа файловой системы и размера

Прежде чем писать шаблон, необходимо принять некоторые решения об управляемой файловой системе Lustre Azure. Дополнительные сведения о параметрах конфигурации см. в статье "Создание управляемой файловой системы Lustre Azure".

При использовании шаблона укажите номер SKU для определения базового типа создаваемой файловой системы Azure Managed Lustre. Номер SKU представляет уровень продукта. Он задает системные качества, такие как тип дисков, поддерживаемый объем хранилища и максимальная пропускная способность. Если вы используете портал Azure для создания файловой системы Azure Managed Lustre, укажите тип системы косвенно, выбрав его возможности.

В следующей таблице показаны значения пропускной способности и размера хранилища в каждом поддерживаемом номере SKU. Эти номера SKU создают файловую систему, которая использует устойчивое хранилище SSD.

Номер SKU Пропускная способность для хранилища TiB Минимальный объем хранилища Максимальный объем хранилища Шаг
AMLFS-Durable-Premium-40 40 Мбит/с 48 ТБ 768 ТБ 48 ТБ
AMLFS-Durable-Premium-125 125 Мбит/с 16 ТБ 128 ТБ 16 ТБ
AMLFS-Durable-Premium-250 250 Мбит/с 8 ТБ 128 ТБ 8 ТБ
AMLFS-Durable-Premium-500 500 Мбит/с 4 ТБ 128 ТБ 4 ТБ

Если требуется, чтобы значения хранилища больше указанного максимума, можно открыть запрос в службу поддержки для изучения параметров.

Чтобы проверить возможности SKU, можно использовать рабочий процесс для создания управляемой файловой системы Lustre с помощью портал Azure. Параметры SKU находятся на вкладке "Основные сведения о файловой системе".

Создание файла шаблона

После выбора параметров конфигурации можно создать файл шаблона. Файл шаблона — это JSON или Bicep-файл, содержащий сведения о конфигурации для файловой системы Azure Managed Lustre.

Значения свойств шаблона

Чтобы создать управляемую файловую систему Lustre Azure с помощью шаблона ARM, необходимо включить в файл шаблона следующие сведения. Точный синтаксис отличается от Bicep и JSON, поэтому ознакомьтесь с примерами для литеральных значений.

Файловая система

Имя Описание Значение
type Тип создаваемого ресурса. Microsoft.StorageCache/amlFileSystems
версия_API Используемая версия API Управляемого Lustre Azure. Используйте текущую версию API, например 2024-03-01
name Уникальное имя управляемой файловой системы Lustre в Azure. строка (обязательно)
расположение Географическое расположение, в котором находится ресурс. Используйте короткое имя, а не отображаемое имя, например, используйте eastus вместо East USнего. строка (обязательно)
tags Теги ресурсов для файловой системы. Словарь имен и значений тегов; см . теги в шаблонах
sku Номер SKU производительности для ресурса. См. имя SKU
identity Управляемое удостоверение, используемое для файловой системы, если настроено. См. раздел "Удостоверение"
свойства Свойства файловой системы. См. статью "Свойства"
зоны Зоны доступности для ресурсов. Это поле должно содержать только один элемент в массиве. string[]

Идентификация

Имя Описание Значение
type Тип удостоверения, используемого для ресурса. None, UserAssigned
userAssignedIdentities Словарь, в котором каждый ключ является идентификатором ресурса удостоверения, назначенным пользователем, и значение каждого ключа является пустым словарем. См. документы по шаблону

Свойства

Имя Описание Значение
encryptionSettings Параметры шифрования файловой системы. См. раздел "Параметры шифрования"
filesystemSubnet Подсеть, которую использует файловая система. строка (обязательно)
hsm Параметры контейнера хранилища BLOB-объектов для файловой системы. См. раздел параметров HSM
обслуживаниеWindow Указывает день и время возникновения обновлений системы. См . окно обслуживания (обязательно)
rootSquashSettings Задает параметры корневого скваша для файловой системы. См. параметры корневого скваша
storageCapacityTiB Размер файловой системы в TiB. Дополнительные сведения о допустимых значениях этого поля на основе номера SKU см. в разделе "Выбор типа файловой системы" и размера. int (обязательно)

Параметры шифрования

Имя Описание Значение
keyEncryptionKey Указывает расположение ключа шифрования в Key Vault. См. документы по шаблону

Параметры HSM

Имя Описание Значение
контейнер Идентификатор ресурса контейнера хранилища, используемый для обработки пространства имен и архивации из пространства имен. Поставщик ресурсов должен иметь разрешение на создание маркеров SAS в учетной записи хранения. строка (обязательно)
importPrefix В пространство имен кластера импортируются только большие двоичные объекты в контейнере без ведения журнала, начинающиеся с этого пути или префикса. Это используется только во время первоначального создания управляемой файловой системы Lustre Azure. строка
importPrefixesInitial Только большие двоичные объекты в контейнере без ведения журнала, начинающиеся с одного из путей или префиксов в этом массиве, импортируются в пространство имен кластера. Это значение используется только во время первоначального создания управляемой файловой системы Lustre Azure и имеет значение по умолчанию ./. string[]
loggingContainer Идентификатор ресурса контейнера хранилища, используемого для ведения журнала событий и ошибок. Должен быть отдельным контейнером в той же учетной записи хранения, что и гидратация и архивный контейнер. Поставщик ресурсов должен иметь разрешение на создание маркеров SAS в учетной записи хранения. строка (обязательно)

Примечание.

Свойство importPrefixesInitial позволяет указать несколько префиксов для импорта данных в файловую систему, а importPrefix также указать один префикс. Значением по умолчанию для обоих свойств является /. Если определить одно из свойств, вы не можете определить другое. Если определить оба свойства, развертывание завершается сбоем.

Дополнительные сведения см. в разделе "Импорт префикса".

Период обслуживания

Имя Описание Значение
dayOfWeek День недели, на которой может произойти период обслуживания. Sunday, Monday, TuesdayWednesdayThursdayFridaySaturday
timeOfDayUTC Время дня (в формате UTC) может возникнуть период обслуживания. Пример строки
: 22:30

Свойство timeOfDayUTC использует 24-часовой формат часов. Например, 22:30 представляет 10:30 вечера. Шаблон — ^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$это .

Параметры корневого скваша

Имя Описание Значение
mode Режим Squash файловой системы AML. "Все": идентификаторы пользователей и групп в файлах сквиваются к предоставленным значениям для всех пользователей в ненадежных системах. RootOnly: идентификаторы пользователей и групп в файлах сквиваются для предоставления значений исключительно корневого пользователя в ненадежных системах. "Нет": для всех пользователей в любых системах не выполняется скваширование идентификаторов пользователей и групп. All, , NoneRootOnly
noSquashNidLists Список IP-адресов, разделенных точкой с запятой, добавляется в доверенные системы. строка
squashGID Идентификатор группы для скваша. INT
squashUID Идентификатор пользователя для сквошной черты. INT

Номер SKU

Имя Описание Значение
name Имя номера SKU для ресурса. AMLFS-Durable-Premium-40, , AMLFS-Durable-Premium-125AMLFS-Durable-Premium-250AMLFS-Durable-Premium-500

Развертывание файловой системы с помощью шаблона

В следующем примере используются команды Azure CLI для создания новой группы ресурсов и создания в ней файловой системы Azure Managed Lustre. В шагах предполагается, что вы уже выбрали тип файловой системы и размер и создали файл шаблона, как описано ранее в этой статье. Кроме того, убедитесь, что выполнены все предварительные требования.

  1. Задайте подписку по умолчанию:

    az account set --subscription "<subscription-id>"
    az account show
    
  2. При необходимости создайте новую группу ресурсов для управляемой файловой системы Lustre Azure. Если вы хотите использовать существующую группу ресурсов, пропустите этот шаг и укажите имя существующей группы ресурсов при выполнении команды шаблона.

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

    Файловая система может использовать ресурсы вне собственной группы ресурсов, если они находятся в той же подписке.

  3. Разверните файловую систему Azure Managed Lustre с помощью шаблона. Синтаксис зависит от того, используете ли вы файлы JSON или Bicep, а также количество файлов.

    Вы можете развертывать шаблоны Bicep и JSON в виде отдельных файлов или нескольких файлов. Дополнительные сведения и подробные сведения о синтаксисе каждого параметра см. в документации по шаблону ARM.

    Пример команды JSON:

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

    Пример команды Bicep:

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

Пример JSON

В этом разделе показан пример содержимого файла шаблона JSON. При создании собственного шаблона 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": {}
}

Пример Bicep

В этом разделе показан пример содержимого файла Bicep. При создании собственных можно удалить необязательные параметры.

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