Оптимизация структуры файлов и каталогов в Azure Managed Lustre

В этой статье содержатся сведения о масштабировании макетов файлов и каталогов для обеспечения максимальной производительности с помощью AMLFS.

Обзор

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

Полосность файлов и каталогов в AMLFS

Ключевая функция производительности Lustre (и, следовательно, AMLFS) — это возможность распределять (или разбивать) файлы и каталоги между несколькими ресурсами хранения для балансировки и оптимизации возможностей системы. Количество целевых объектов (OSTs) и целевых серверов метаданных (MDTS), развернутых с помощью экземпляра AMLFS, определяет, как распределяются файлы и каталоги. ** Более крупные развертывания AMLFS обычно имеют большее количество OSTs и MDTs, что увеличивает как емкость, так и параллельную производительность.

Чтобы просмотреть количество OST и MDTs в вашей системе, выполните следующую команду на любом клиентском узле со смонтированной Lustre:

lfs df -h

Макеты файлов по умолчанию в AMLFS

По умолчанию AMLFS использует прогрессивный макет файлов (PFL) для всех файлов. PFL адаптирует полосатое распределение, учитывая размер файла, чтобы сбалансировать производительность и использование ресурсов. Макет предустановлен в корне файловой системы с помощью следующей команды:

lfs setstripe -E 1G -c 1 -E 100G -c 5 -E 500G -c 10 -E -1 -c -1 [/lustrefs]
  • Файлы размером менее 1 ГБ хранятся на одном OST, минимизируя затраты и повышая производительность для небольших файлов.
  • Данные объемом от 1 ГБ до 101 ГБ распределены по 5 OST.
  • Данные от 101 ГБ до 601 ГБ распределяются по 10 OST.
  • Данные размером более 601 ГБ распределяются по всем доступным OST, максимизируя пропускную способность для больших файлов.
  • Если количество OSTs при развертывании менее 10, AMLFS использует максимальное доступное число в соответствии с размерами, указанными ранее.

Этот макет по умолчанию подходит для большинства вариантов использования. Опытные пользователи могут настроить разбиение файлов на полосы для конкретных требований к производительности с помощью команды lfs setstripe. Например, чтобы максимизировать параллельную пропускную способность для одного большого файла, всегда распределяя его по всем объектам хранилища (OSTs), попробуйте создать файл, используя:

lfs setstripe -c -1 [file]

Файл автоматически размещается на всех доступных OST независимо от размера файла.

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

Не рекомендуется использовать в небольших файлах.

Замечание

Изменение параметров чередования является сложной операцией. Неправильное использование может повлиять на производительность или эффективность хранилища. Ознакомьтесь с руководством Lustre и используйте lfs setstripe -h, чтобы увидеть подробные параметры. Тестирование новых конфигураций перед применением их в рабочих средах.

Размер каталога и организация

Lustre поддерживает иерархические пространства имен, которые отличаются от систем хранения неструктурированных объектов, таких как хранилище BLOB-объектов. При планировании структур каталогов следует учитывать следующие рекомендации.

  • Упорядочение данных в иерархические структуры с несколькими каталогами, а не одним, большим каталогом. Эта структура с несколькими каталогами сокращает количество разных рабочих нагрузок и повышает общую производительность метаданных.
  • Хотя Lustre может технически управлять сотнями миллионов записей в одном каталоге и более, большие каталоги могут привести к снижению производительности или конфликту блокировок, если требуется доступ к метаданным высокой параллельности или операции сканирования каталогов (например, с ls -lR или rm -Rf).
  • Свести к минимуму повторную параллельную проверку больших каталогов, особенно сканирование, включающее операцию статистики Linux, например ls -l, чтобы избежать узких мест метаданных.

Оптимизация макетов каталогов с несколькими метаданными (MDTs)

Крупные развертывания AMLFS (более 1 PiB на многих SKU или 2.5 PiB на других устройствах) подготавливаются с несколькими MDTs для масштабирования операций метаданных и количества файлов. Каждый MDT может линейно масштабировать максимальное количество операций метаданных в секунду и максимальное число файлов при правильной настройке и в зависимости от средних размеров файлов.

Чтобы проверить количество доступных MDT, выполните следующую команду из подключенного клиента:

lfs df -h

Если в развертывании имеется только один MDT, оптимизация макета по умолчанию достаточна при условии соблюдения рекомендаций из предыдущего раздела о размере каталога. При использовании нескольких MDTs, AMLFS автоматически распределяет каталоги по круговому алгоритму между MDTs, используя следующую команду корневого уровня по умолчанию, которая выполняется при первом развертывании AMLFS.

lfs setdirstripe -D -i -1 -c 1 --max-inherit=-1 --max-inherit-rr=-1 [/lustrefs]
  • Это устанавливает методику размещения каталогов циклического перебора для всех каталогов, созданных под корневым каталогом, равномерно распределяя их между МДТ для балансировки производительности.
  • Рабочие нагрузки с большим количеством каталогов в иерархической структуре автоматически получают выгоду от этого макета, повышая пропускную способность метаданных и масштабируемость.

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

Дополнительные параметры макета каталога

Расширенные пользователи могут дополнительно настроить размещение каталогов с помощью lfs setdirstripe с любого клиента Lustre следующим образом:

  • Распределите один большой каталог по нескольким MDT для повышения производительности метаданных с помощью параметра -clfs setdirstripe. Это может увеличить параллельный доступ к файлу большого каталога, разделив его по нескольким MDT, но может оказаться не полезным для параллельного сканирования каталогов.
  • Назначьте конкретные MDT критически важным или высокопроизводительным каталогам.
  • Перебалансировать каталоги после их создания с помощью lfs migrate.

Это важно

Эти оптимизации являются продвинутыми и к ним следует подходить с осторожностью. Ознакомьтесь с руководством Lustre и воспользуйтесь lfs setdirstripe -h справкой, прежде чем вносить изменения в конфигурацию по умолчанию. Прежде чем развертывать их на рабочих нагрузках, обязательно проведите бенчмарк всех изменений.

Дальнейшие шаги

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