Облачная платформаAdvanced

Управление SFS Turbo+OBS взаимодействием хранилищ

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

В сценариях, таких как обучение и инференс AI, высокопроизводительная предобработка данных, EDA, рендеринг и моделирование, вы можете использовать файловые системы SFS Turbo для ускорения доступа к вашим данным в OBS. SFS Turbo поддерживает бесшовный доступ к объектам, хранящимся в OBS бакетах. Вы можете привязать каталог в вашей файловой системе SFS Turbo к OBS бакету, а затем создать задачи импорта и экспорта для синхронизации данных между файловой системой и бакетом. Перед запуском задач обучения верхнего уровня вы можете предзагрузить данные из вашего OBS бакета в SFS Turbo, чтобы ускорить доступ к данным. Промежуточные данные и результирующие данные, генерируемые этими задачами, затем могут быть записаны в SFS Turbo на высокой скорости. Нижестоящие сервисы могут читать и обрабатывать промежуточные данные, а результирующие данные могут асинхронно экспортироваться в OBS бакеты для долгосрочного, недорогого хранения. Кроме того, SFS Turbo позволяет настроить время выселения холодных данных для автоматического удаления данных, к которым долго не обращались, чтобы освободить кеш‑пространство.

Ограничения

  • Вы можете настроить взаимодействие хранилищ для следующих типов файловых систем SFS Turbo: 20 MB/s/TiB, 40 MB/s/TiB, 125 MB/s/TiB, 250 MB/s/TiB.
  • После привязки каталога в файловой системе SFS Turbo к OBS бакету следующие операции не поддерживаются: создание жёстких ссылок, установка квот на каталоги и переименование каталогов.
  • Вы можете настроить максимум 16 каталогов взаимодействия для одной файловой системы SFS Turbo.
  • Добавление OBS бакетов в качестве бекендов хранилища зависит от сервиса OBS, поэтому у вас должно быть OBS Administrator permission.
  • Файлы и каталоги с одинаковым именем не могут сосуществовать в каталогах одного уровня.
  • Ультра‑длинные пути не поддерживаются. Максимальная допустимая длина пути — 1 023 символа.
  • Для задач импорта длина имени файла или подпапки не может превышать 255 байт.
  • Если в OBS бакете включён режим WORM, вы можете только импортировать данные из OBS в SFS Turbo, но не можете экспортировать данные из SFS Turbo в OBS.
  • OBS бакеты, настроенные с серверным шифрованием, и OBS parallel file systems не могут быть добавлены в качестве бекендов хранилища.

Добавление OBS бакета

  1. Откройте страницу списка файловых систем SFS Turbo.
  2. В списке файловых систем нажмите название нужной файловой системы, чтобы перейти на её страницу деталей.
  3. На вкладке Storage Backends нажмите Add OBS Bucket.

    Рисунок 1 Add OBS Bucket


  4. В диалоговом окне Add OBS Bucket, отображаемом справа, укажите следующие параметры.

    Table 1 Требуемые параметры для добавления OBS bucket

    Parameter

    Description

    Constraints

    Can Be Modified

    Interworking Directory Name

    SFS Turbo создаст подкаталог с этим именем в корневом каталоге файловой системы и привяжет этот подкаталог к указанному OBS bucket, поэтому имя должно быть уникальным.

    • Имя подкаталога должно быть уникальным.
    • Имя подкаталога должно быть каталогом, который отсутствует в корневом каталоге файловой системы.
    • Имя подкаталога не может быть точкой (.) или двумя точками (..).

    No

    OBS Endpoint

    Конечная точка OBS.

    Чтобы просмотреть конечную точку OBS, см. раздел "Viewing Bucket Information" в Object Storage Service User Guide.

    -

    Нет

    Имя бакета

    Имя OBS бакета.

    Чтобы просмотреть имя OBS бакета, см. раздел "Viewing Bucket Information" в Object Storage Service User Guide.

    • Бакет, который будет добавлен, должен быть доступен.
    • OBS бакеты, настроенные с шифрованием на стороне сервера и OBS parallel file systems, не могут быть добавлены в качестве хранилищ.

    Нет

    Разрешения на файлы для импорта

    Разрешения на файлы, которые будут импортированы. Введите трёхзначное число. Одна цифра слева направо представляет разрешения владельца, группы и остальных пользователей. Каждая цифра является суммой числовых значений разрешений. Разрешение на чтение обозначается значением 4, запись — 2, выполнение — 1, отсутствие разрешения — 0.

    Этот параметр необязателен. Введите трёхзначное число, каждая цифра которого находится в диапазоне от 0 до 7.

    Да

    Разрешения на каталоги для импорта

    Разрешения на каталоги, которые будут импортированы. Введите трёхзначное число. Одна цифра слева направо представляет разрешения владельца, группы и остальных пользователей. Каждая цифра является суммой числовых значений разрешений. Разрешение на чтение обозначается значением 4, запись — 2, выполнение — 1, отсутствие разрешения — 0.

    Этот параметр необязателен. Введите трехзначное число, каждая цифра которого находится в диапазоне от 0 до 7.

    Yes

    User ID

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

    Этот параметр необязателен. Введите целое число в диапазоне от 0 до 4294967294 (2^32 – 2).

    Yes

    User Group ID

    Идентификатор группы пользователей, к которой принадлежат файлы или каталоги для импорта.

    Этот параметр необязателен. Введите целое число в диапазоне от 0 до 4294967294 (2^32 – 2).

    Yes

    Auto Export

    Если включено, все изменения, внесённые в файловую систему, будут автоматически экспортированы в OBS bucket.

    -

    Yes

    Data to Export

    Этот параметр отображается, если вы включите Auto Export.

    Выберите тип обновлённых данных для экспорта в OBS bucket. Поддерживаемые типы включают New, Changed и Deleted. Данные экспортируются из SFS Turbo в OBS асинхронно.

    New: Файлы, созданные, а затем изменённые в каталоге взаимодействия SFS Turbo. Любые изменения данных или метаданных будут автоматически синхронизированы с OBS bucket.

    Changed: Файлы, ранее импортированные из OBS bucket и затем изменённые в каталоге взаимодействия SFS Turbo. Любые изменения данных или метаданных будут автоматически синхронизированы с OBS bucket.

    Deleted: Файлы, удалённые из каталога взаимодействия SFS Turbo. Удаления будут автоматически синхронизированы с OBS bucket, и будут удалены только те файлы, которые ранее были экспортированы в bucket.

    -

    Yes

  5. Выберите "Grant SFS Turbo the read/write permissions on the OBS bucket using a bucket policy" и нажмите OK.
Note
  • OBS bucket, настроенные с server-side encryption и OBS parallel file systems, не могут быть добавлены в качестве storage backend.
  • При добавлении OBS bucket в качестве storage backend автоматически создаётся bucket policy для bucket, при этом параметр Sid устанавливается в PolicyAddedBySFSTurbo. Не изменяйте и не удаляйте эту политику, иначе функция взаимодействия не будет работать нормально.
  • Если вы добавили OBS bucket в качестве storage backend для одной или нескольких файловых систем SFS Turbo, перед удалением любой файловой системы или удалением bucket не удаляйте bucket. В противном случае функция взаимодействия не будет работать нормально.

Auto Synchronization

Вы можете настроить auto synchronization при добавлении OBS storage backend или после его добавления.

Если включить auto export, SFS Turbo будет асинхронно экспортировать данные в OBS в зависимости от выбранных типов данных.

Поддерживаемые типы включают New, Changed и Deleted.

  • New: Файлы, созданные, а затем изменённые в каталоге взаимодействия SFS Turbo. Любые изменения данных или метаданных будут автоматически синхронизированы с OBS bucket.
  • Changed: Файлы, ранее импортированные из OBS bucket и затем изменённые в каталоге взаимодействия SFS Turbo. Любые изменения данных или метаданных будут автоматически синхронизированы с OBS bucket.
  • Deleted: Файлы, удалённые из каталога взаимодействия SFS Turbo. Удаления будут автоматически синхронизированы с OBS bucket, и будут удалены только те файлы, которые ранее были экспортированы в bucket.

Чтобы настроить автоматическую синхронизацию при добавлении OBS bucket, см. Adding an OBS Bucket.

Чтобы настроить автоматическую синхронизацию после добавления OBS bucket, выполните следующие действия:

  1. Найдите добавленный OBS bucket и нажмите Auto Synchronization в столбце Operation.

    Figure 2 Auto Synchronization


  2. Настройте Auto Export.

    Figure 3 Auto Export


    1. Включить или отключить auto export.
    2. Если auto export отключён, эта функция не поддерживается. После включения auto export выберите типы данных для экспорта. Поддерживаемые типы включают New, Changed и Deleted. Для получения дополнительной информации см. Table 1.

  3. Нажмите OK.

Metadata Import

После добавления OBS bucket в качестве хранилища вы можете использовать функцию metadata import.

Перед доступом к данным в вашем OBS bucket из SFS Turbo необходимо использовать metadata import для импорта метаданных объектов (имя, размер и время последнего изменения) из bucket в файловую систему. Доступ к данным в OBS bucket из каталога взаимодействия SFS Turbo возможен только после импорта метаданных. Эта операция импортирует только метаданные. Данные будут загружаться из bucket и кэшироваться в файловой системе при первом обращении. При последующих обращениях к тем же данным они будут получаться из файловой системы, а не из bucket.

SFS Turbo поддерживает два метода metadata import: quick import и additional metadata import. После завершения импорта метаданных вы можете просматривать импортированные каталоги и файлы в каталоге взаимодействия.

  • Quick import: Используйте quick import, если данные в bucket ранее не экспортировались из SFS Turbo. quick import импортирует только метаданные объектов (имя, размер и время последнего изменения). После завершения импорта SFS Turbo по умолчанию сгенерирует дополнительные метаданные (uid, gid, разрешения каталогов и файлов). quick import быстрее, поэтому рекомендуется использовать quick import.
  • Дополнительный импорт метаданных: используйте дополнительный импорт метаданных, если данные в бакете были экспортированы из SFS Turbo ранее. При дополнительном импорте метаданных будут импортированы как метаданные объекта (имя, размер и время последнего изменения), так и дополнительные метаданные (uid, gid и mode).
  1. Найдите добавленный OBS бакет и нажмите Import Metadata в столбце Operation.

    Рисунок 4 Import Metadata


  2. Установите Object Prefix в префикс объектов в OBS бакете. Это также может быть конкретное имя объекта. Чтобы импортировать метаданные всех объектов в OBS бакете, оставьте поле object prefix пустым.
  3. Выберите Import Additional Metadata для импорта дополнительных метаданных. Если эта опция не выбрана, система выполнит быстрый импорт.
  4. Нажмите OK.
Note
  • Перед импортом данных из OBS в SFS Turbo убедитесь, что все объекты полностью загружены в OBS бакет. Неполные загрузки или отсутствие метаданных приведут к сбою синхронизации данных с SFS Turbo.
  • После импорта данных из OBS в SFS Turbo, если в бакет записаны новые данные или существующие данные изменены, необходимо повторно импортировать данные в SFS Turbo.
  • Длина имени файла или подпапки не может превышать 255 байт.

Импорт данных

После добавления OBS бакета в качестве хранилища вы можете использовать функцию импорта данных.

По умолчанию после импорта метаданных данные не импортируются в файловую систему SFS Turbo. Вместо этого данные загружаются из бакета в файловую систему при первом обращении, что может занять некоторое время. Если ваши нагрузки чувствительны к задержкам и вы знаете, какие каталоги и файлы будут использоваться, например, обучение AI включает большое количество небольших файлов и сильно чувствительно к задержкам, вы можете заранее импортировать необходимые каталоги и файлы.

Во время импорта данных будут импортированы как данные, так и метаданные, при этом будет выполнен быстрый импорт метаданных, что означает, что дополнительные метаданные (например, uid, gid и mode) импортированы не будут.

  1. Найдите добавленный OBS бакет и нажмите Import Data в столбце Operation.

    Рисунок 5 Data import


  2. Установите Object Path в путь к объектам в OBS bucket (за исключением имени bucket).

    Note

    Если указываете путь к каталогу, завершайте его косой чертой (/).

    • Чтобы импортировать данные всех объектов в OBS bucket, оставьте поле object path пустым. SFS Turbo импортирует данные в директорию взаимодействия и гарантирует, что пути к файлам в директории взаимодействия совпадают с путями в OBS bucket.
    • Примеры пути к объекту: (/mnt/sfs_turbo — локальная точка монтирования, output-1 — имя директории взаимодействия.)
      • Если указать dir/ в качестве пути к объекту, данные будут импортированы в /mnt/sfs_turbo/output-1/dir.
      • Если указать dir/file в качестве пути к объекту, данные будут импортированы в /mnt/sfs_turbo/output-1/dir/file.
      • Если оставить поле object path пустым, данные будут импортированы в /mnt/sfs_turbo/output-1.

  3. Нажмите OK.
Note
  • Перед импортом данных из OBS в SFS Turbo убедитесь, что все объекты полностью загружены в OBS bucket. Неполные загрузки или отсутствие метаданных приведут к сбою синхронизации данных с SFS Turbo.
  • После импорта данных из OBS в SFS Turbo, если в bucket записаны новые данные или существующие данные изменены, необходимо повторно импортировать данные в SFS Turbo.
  • Подробную информацию о том, как использовать импорт данных через API, см. в разделе "Creating a Data Import or Export Task" в Scalable File Service Turbo API Reference.
  • Длина имени файла или подпапки не может превышать 255 байт.

Экспорт данных

После добавления OBS bucket в качестве хранилища для файловой системы SFS Turbo можно использовать функцию экспорта данных.

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

  1. Найдите добавленный OBS Бакет и нажмите Export в столбце Operation.

    Рисунок 6 Export


  2. Установите File Prefix в путь к каталогам или файлам (исключая имя взаимосвязанного каталога) или к конкретному файлу. Чтобы экспортировать все файлы из взаимосвязанного каталога в Бакет, оставьте поле префикса файла пустым.
  3. Нажмите OK.
Note
  • Перед экспортом данных SFS Turbo запускает асинхронные задачи для сканирования целевых каталогов. Если какой‑либо файл был обновлён в течение последних 10 секунд, он будет пропущен и не экспортирован.
  • Для конкретного файла, если с момента последнего экспорта в OBS не было изменений, он не будет экспортирован в следующей задаче экспорта, даже если ранее экспортированный файл был удалён из OBS Бакет.
  • После экспорта файлов в OBS любой метаданные SFS Turbo, имя которых начинается с x-obs-meta-sfsturbo-st-, будут включены в пользовательские метаданные объектов.
  • Максимальная длина пути к файлу, поддерживаемая для экспорта, составляет 1 023 символа.
  • Максимальный размер файла, поддерживаемый в файловой системе SFS Turbo, составляет 320 ТБ, а максимальный размер файла, который можно экспортировать, — 48,8 ТБ.
  • При экспорте больших файлов временные файлы, создаваемые во время экспорта, будут сохраняться в каталоге x-obs-upload-sfsturbo-temp-part в Бакете. После завершения экспорта SFS Turbo автоматически удалит этот каталог и временные файлы в нём.
  • Когда файл экспортируется из SFS Turbo в OBS:

    Если файл ранее был импортирован и затем изменён в SFS Turbo, он перезапишет свой объект‑партнёр в Бакете, если является более новым. В противном случае он не будет перезаписывать объект‑партнёр в Бакете. Во время процесса перезаписи объект‑партнёр файла в Бакете сначала удаляется, после чего обновлённый файл записывается в Бакет. Это может удалить объект‑партнёр, который всё ещё используется. Когда включён автоэкспорт, если файл в файловой системе SFS Turbo часто изменяется, рекомендуется избегать доступа к его объекту‑партнёру в OBS Бакете.

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

  • Если в OBS Бакете включён режим WORM, данные нельзя экспортировать.

Cold Data Eviction

После добавления OBS bucket в качестве хранилища для файловой системы SFS Turbo вы можете использовать функцию выселения холодных данных. Холодные данные — это файлы в файловой системе, к которым не обращались в течение определённого времени. Когда SFS Turbo обнаруживает такие данные, он выселяет их, сохраняя их метаданные. Выселенные данные больше не занимают место в файловой системе SFS Turbo. Когда к выселенному файлу позже обращаются, SFS Turbo загружает данные из OBS.

Выселение холодных данных может инициироваться на основе времени или ёмкости. Если оба метода работают, выселение происходит по тому условию, которое наступит первым.

Выселение по времени

После добавления OBS bucket в качестве хранилища для файловой системы SFS Turbo вы можете использовать выселение холодных данных по времени. Файлы, к которым не обращались в течение указанного периода, будут автоматически выселены. В сценариях с высокой производительностью рекомендуется задавать относительно длительный период выселения, чтобы избежать высокой задержки, вызванной частой загрузкой данных из OBS.

Функция выселения холодных данных включена по умолчанию, с периодом по умолчанию 60 часов. Вы можете настроить выселение по времени в консоли, выполнив указанные ниже шаги: Кроме того, можно использовать вызов API для настройки периода выселения холодных данных. Подробности см. в разделе "Updating a File System" в Scalable File Service API Reference.

  1. Откройте страницу списка файловых систем SFS Turbo.
  2. В списке файловых систем нажмите имя целевой файловой системы SFS Turbo, чтобы перейти на её страницу сведений.
  3. На вкладке Basic Info задайте период выселения холодных данных и нажмите OK.

    Figure 7 Настройка периода выселения холодных данных


Выселение по ёмкости

После добавления OBS bucket в качестве хранилища для файловой системы SFS Turbo вы можете обратиться в техническую поддержку и запросить включение выселения по ёмкости. Эта функция не может быть настроена через консоль или с помощью API. После включения, когда использование ёмкости достигает 95%, система автоматически инициирует выселение данных каждые 30 минут, пока использование ёмкости не опустится ниже 85%.

Если файловая система SFS Turbo заполнится, это повлияет на работу сервисов. Рекомендуется настроить правило тревоги в Cloud Eye для мониторинга использованной ёмкости файловой системы.

Когда генерируется тревога по ёмкости, рекомендуется принять одну из следующих мер:

  • Уменьшите период выселения холодных данных (например, с 60 часов до 40 часов), чтобы ускорить процесс выселения.
  • Увеличьте ёмкость файловой системы SFS Turbo, чтобы расширить доступное пространство.

FAQs

  • В каких случаях SFS Turbo будет выселять данные?

    Для файлов, импортированных из OBS в SFS Turbo, если они не запрашиваются в течение настроенного периода выселения, они будут выселены.

    Для файлов, созданных в SFS Turbo, они будут выселены только после экспорта в OBS и при соблюдении правила выселения. Если они не экспортированы, они не будут выселены.

  • Как импортировать выселенные данные обратно в мою файловую систему SFS Turbo?
    1. Когда файл читается или записывается, его данные загружаются из Бакета OBS обратно в файловую систему SFS Turbo.
    2. Вы можете использовать функцию импорта данных для ручной загрузки данных в файловую систему.
  • В каких сценариях импорт данных может завершиться неудачей?

    Когда файловая система SFS Turbo содержит только метаданные файлов (поскольку был импортирован только метаданные или произошло выселение данных) и объект в Бакете OBS был удалён, импорт данных или доступ к файлу завершатся неудачей.

  • Являются ли задачи импорта или экспорта синхронными или асинхронными?

    Задачи являются асинхронными. После отправки задачи вы можете запросить статус задачи по её ID.

  • Если я удалю файлы в каталоге взаимодействия SFS Turbo, будут ли объекты в Бакете OBS также удалены?

    No.

  • Почему мой файл не экспортируется после редактирования в vim, хотя автосинхронизация настроена на экспорт изменённых данных?

    В файловой системе SFS Turbo, когда вы редактируете файл (данные или метаданные) в vim, редактор не просто изменяет файл. Он фактически удаляет его и создаёт заново. Автосинхронизация рассматривает это как новый файл, а не как изменённый, поэтому изменения не могут быть экспортированы по политике "changed data". Чтобы исправить это, настройте автосинхронизацию на экспорт new data. Тогда файлы, отредактированные в vim, будут корректно экспортированы.