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

Управление SFS Turbo+OBS Storage Interworking

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

В сценариях, таких как обучение и инференс AI, высокопроизводительная предобработка данных, EDA, рендеринг и моделирование, вы можете использовать файловые системы SFS Turbo для ускорения доступа к вашим данным в OBS. SFS Turbo поддерживает бесшовный доступ к объектам, хранящимся в бакетах OBS. Вы можете привязать каталог в вашей файловой системе SFS Turbo к бакету OBS, а затем создать задачи import и export для синхронизации данных между файловой системой и бакетом. Перед запуском задач обучения верхнего уровня вы можете предварительно загрузить данные из вашего бакета 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.
  • После настройки взаимодействия хранилищ между OBS и каталогом в SFS Turbo операции, такие как создание hard links, настройка ограничений квоты каталога и переименование, более не поддерживаются.
  • Вы можете настроить максимум 16 каталогов взаимодействия для одной файловой системы SFS Turbo.
  • Добавление бакетов OBS в качестве бекендов хранилища зависит от сервиса OBS, поэтому у вас должны быть права OBS Administrator.
  • Файлы и каталоги с одинаковым именем не могут сосуществовать в каталогах одного уровня.
  • Максимальная поддерживаемая длина пути составляет 1 023 символа.
  • Для задач импорта длина имени файла или подкаталога не может превышать 255 байт.
  • Если в бакете OBS включён WORM, вы можете только импортировать данные из OBS в SFS Turbo, но не можете экспортировать данные из SFS Turbo в OBS.
  • Бакеты OBS, настроенные с server-side encryption, и параллельные файловые системы OBS не могут быть добавлены в качестве бекендов хранилища.

Добавление OBS Bucket

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

    Рисунок 1 Add OBS Bucket


  4. На отображаемой странице Add OBS Bucket укажите следующие параметры.

    Table 1 Параметры, необходимые для добавления OBS bucket

    Параметр

    Описание

    Ограничения

    Можно изменить

    Interworking Directory Name

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

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

    Нет

    OBS Endpoint

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

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

    OBS bucket и файловая система SFS Turbo должны находиться в одном регионе.

    No

    Bucket Name

    Имя OBS bucket.

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

    • Добавляемый bucket должен быть доступен.
    • OBS bucket, настроенные с шифрованием на стороне сервера, и OBS parallel file systems не могут быть добавлены в качестве storage backends.

    No

    Permissions on Files to Import

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

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

    Yes

    Permissions on Directories to Import

    Разрешения для импортируемых каталогов. Введите трёхзначное число. Одна цифра слева направо представляет разрешения владельца, группы и остальных пользователей. Каждая цифра является суммой числовых значений разрешений. Разрешение на чтение обозначается значением 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 Бакет. Поддерживаемые типы включают New, Changed и Deleted. Данные экспортируются из SFS Turbo в OBS асинхронно.

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

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

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

    -

    Да

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

Auto Synchronization

Вы можете настроить авто‑синхронизацию при добавлении OBS хранилищного бэкенда или после его добавления.

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

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

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

Чтобы настроить auto synchronization при добавлении OBS bucket, см. Adding an OBS Bucket.

Чтобы настроить auto synchronization после добавления 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 из interworking directory SFS Turbo возможен только после импорта метаданных. Эта операция импортирует только метаданные. Данные будут загружаться из bucket и кэшироваться в файловой системе при первом обращении. При последующих обращениях к тем же данным они будут получаться из файловой системы, а не из bucket.

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

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

    Figure 4 Import Metadata


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

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

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

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

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

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

    Figure 5 Data import


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

    Note

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

    • Чтобы импортировать данные всех объектов в OBS bucket, оставьте поле пути к объекту пустым. 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.
      • Если оставить поле пути к объекту пустым, данные будут импортированы в /mnt/sfs_turbo/output-1.

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

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

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

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

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

    Рисунок 6 Export


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

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

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

  • Если в OBS bucket включён режим WORM, данные не могут быть экспортированы.

Cold Data Eviction

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

Выгрузка по времени

После добавления OBS bucket вы можете настроить cold data eviction duration для удаления данных из кэша по времени. Файлы, к которым не обращались в течение указанного периода, будут выгружены.

Процедура выглядит следующим образом:

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

    Рисунок 7 Настройка cold data eviction duration


Выгрузка на основе ёмкости

Файловые системы SFS Turbo также поддерживают выгрузку данных на основе ёмкости.

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

Note
  • Данные могут быть выгружены по времени или по ёмкости в зависимости от того, какое правило сработает первым.
  • Cold data eviction включён по умолчанию, а длительность по умолчанию составляет 60 часов. Чтобы настроить cold data eviction duration через API, см. раздел "Updating the Cold Data Eviction Duration of a File System" в Scalable File Service API Reference.
  • Сервисы будут затронуты, если ёмкость файловой системы SFS Turbo будет исчерпана, поэтому рекомендуется настроить правило тревоги в Cloud Eye для мониторинга использования ёмкости файловой системы.
  • Когда генерируется тревога о ёмкости файловой системы, измените cold data eviction duration на более короткую, например, с 60 часов до 40 часов, чтобы ускорить выгрузку данных, либо просто увеличьте ёмкость файловой системы.
  • В сценариях высокой производительности рекомендуется настроить относительно длительную длительность выгрузки, чтобы избежать высокой задержки, вызванной частой загрузкой данных из OBS.

FAQs

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

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

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

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

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

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

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

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

    No.

  • Почему мой файл не экспортируется после редактирования в vim, хотя auto synchronization настроена на экспорт changed data?

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