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


Поддержка протокола NFS 3.0 для Azure Blob Storage

Хранилище BLOB-объектов Azure теперь поддерживает протокол NFS 3.0. Эта поддержка обеспечивает совместимость файловой системы Linux в рамках масштаба и стоимости хранилища объектов и позволяет пользователям Linux подключать контейнер в хранилище BLOB-объектов из виртуальной машины Azure или локального компьютера на месте.

Это проблема для выполнения крупномасштабных устаревших рабочих нагрузок, таких как высокопроизводительные вычисления (HPC) в облаке. Одна из причин заключается в том, что приложения часто используют традиционные протоколы файлов, такие как NFS, для доступа к данным. Кроме того, собственные облачные службы хранилища, ориентированные на хранилище объектов, имеют плоское пространство имен и обширные метаданные вместо файловых систем, которые обеспечивают иерархическое пространство имен и эффективные операции метаданных.

Хранилище BLOB-объектов теперь поддерживает иерархическое пространство имен. В сочетании с поддержкой протокола NFS 3.0 Azure упрощает выполнение устаревших приложений на основе масштабируемого облачного хранилища объектов.

Приложения и рабочие нагрузки, подходящие для использования NFS 3.0 с Blob Storage

Функция протокола NFS 3.0 оптимизирована для высокопроизводительных, крупномасштабных рабочих нагрузок с большим количеством операций чтения с последовательным вводом-выводом. Это идеально подходит для сценариев, которые включают несколько читателей и многочисленные потоки, где пропускная способность является более критической, чем низкая задержка. Распространенные примеры:

  • Высокопроизводительные вычисления: задания HPC часто включают тысячи ядер, считывающих одни и те же большие наборы данных одновременно. Функция протокола NFS 3.0 использует пропускную способность хранилища объектов для устранения традиционных узких мест файлового сервера. Ниже приведены некоторые примеры.

    • Секвенирование геномов: обработка крупных наборов данных ДНК.
    • Моделирование финансовых рисков: использование моделирования Монте-Карло на исторических данных.
    • Сейсмический анализ: анализ геологических данных для разведки нефти и газа.
    • Прогнозирование погоды: моделирование атмосферных данных для прогнозирования климата и шторма.
  • Большие данные и аналитика (озера данных): для многих средств аналитики требуются иерархические каталоги. BlobNFS (через Azure Data Lake Storage Gen2) обеспечивает эту структуру при поддержке стандартных протоколов файлов. Ниже приведены некоторые примеры.

    • Машинное обучение: передача обучающих данных в кластеры GPU с помощью стандартного ввода-вывода файлов.
    • Log Analytics: агрегирование журналов из тысяч источников.
  • Расширенные системы поддержки драйверов (ADAS): рабочие процессы ADAS создают петабайты последовательных данных датчика, такие как облака точек LiDAR и каналы камер с высоким разрешением. Данные должны эффективно обрабатываться и анализироваться в масштабе для моделирования и обучения моделей. Примером является хранение необработанных проверок LiDAR и многокамерных видеопотоков из автономных тестовых транспортных средств с помощью NFS 3.0, а затем выполнение крупномасштабных имитаций воспроизведения на тысячах вычислительных узлов для проверки алгоритмов восприятия.

  • Мультимедиа и развлечения: фермы рендеринга нуждаются в эффективном доступе к большим библиотекам данных. NFS 3.0 через blob предоставляет файловый интерфейс для устаревших инструментов рендеринга, ожидающих пути к файлам. Ниже приведены некоторые примеры.

    • Визуализация видео: чтение исходных ресурсов при помощи распределенных узлов.
    • Транскодирование. Преобразование больших необработанных видеофайлов в формат потоковой передачи.
  • Резервное копирование базы данных: экономичное, высокопроизводительное NFS 3.0 хранилище без сложных коннекторов или дорогостоящих моментальных снимков. Oracle RMAN может записывать большие резервные копии непосредственно для долгосрочного архивирования и включать прямое восстановление с любой виртуальной машины Linux, подключенной к NFS.

Если не использовать NFS 3.0 с Blob Storage

Избегайте использования общих папок общего назначения или транзакционных рабочих нагрузок из-за характеристик хранилища объектов:

Тип рабочей нагрузки Причина Более эффективная альтернатива
Базы данных транзакций Требует детализированной блокировки, задержки субмиллисекунда и частой случайной записи. Управляемые диски или Azure NetApp Files или Файлы Azure
Редактирование файла на месте Редактирование файлов вынуждает выполнять полную перезапись блобов, что делает эти операции неэффективными. Azure Files

Иерархическое пространство имен NFS 3.0

Поддержка протокола NFS 3.0 требует, чтобы BLOB-объекты были организованы в иерархическое пространство имен. Вы можете включить иерархическое пространство имен при создании учетной записи хранения.

Azure Data Lake Storage представила возможность использования иерархического пространства имен. Эта функция позволяет собирать объекты (файлы) и упорядочивать их в иерархию директорий и поддиректорий таким же образом, как организована файловая система на вашем компьютере. Иерархическое пространство имен масштабируется линейно и не снижает объем данных и производительность. Различные протоколы проистекают из иерархического пространства имен. Протокол NFS 3.0 является одним из доступных протоколов.

Схема с иерархическим пространством имен.

Данные, хранящиеся в виде блочных блобов

Когда ваше приложение выполняет запрос с помощью протокола NFS 3.0, этот запрос преобразуется в сочетание операций с блочными BLOB. Например, запросы на чтение удаленного вызова процедур (RPC) NFS 3.0 преобразуются в операции Get Blob. Запросы NFS 3.0 на запись RPC переводятся в виде комбинации команд Get Block List, Put Block и Put Block List.

Блочные BLOB-объекты оптимизируются для эффективной обработки больших объемов данных, предназначенных для чтения. Блочные BLOB-объекты состоят из блоков. Идентификатор блока определяет каждый блок. Блочный BLOB-объект может включать до 50 000 блоков. Каждый блок в BLOB может иметь разный размер, вплоть до максимального размера, разрешённого для используемой вашей учетной записью версии службы.

NFSv3 RPC Операция REST API
Метаданные и атрибуты
Nfs3GetAttr Get Blob Properties
Nfs3SetAttr Set Blob Properties (Если размер файла задан, Nfs3Write вызывается.)
Nfs3Lookup Get Blob Properties
Nfs3Access Get Blob Properties
Nfs3Readlink Get Blob Properties
Nfs3FsStat Get Blob Properties
Nfs3Fsinfo Get Blob Properties
Nfs3Pathconf Get Blob Properties
Перечисление каталогов
Nfs3ReadDir List Blobs
Nfs3ReadDirPlus List Blobs
Операции чтения
Nfs3Read Get Blob
Nfs3ReadLink Get Blob Properties + Get Blob базового файла.
Операции записи
NFs3Write Get Block List (1) + Put Block (x) + Put Block List (1)
Nfs3Commit Нет операции.
Жизненный цикл файлов
Nfs3Create Put Blob + Get Blob Properties
Nfs3Remove Delete Blob
Nfs3Rename Не поддерживается (не поддерживается сопоставление 1–1).
Nfs3Link Не поддерживается.
Управление каталогом
Nfs3MkDir Put Blob + Get Blob Properties
Nfs3RmDir Put Blob
Прочее
Nfs3SymLink Put Blob + Get Blob Properties
Nfs3MkNod Не поддерживается.
Nfs3Null Нет операции.

Результаты попадания или промаха в кэше могут активировать другие Get Blob Properties запросы для получения атрибутов до и после операции. Некоторые переменные влияют на количество транзакций в Blob Storage для операций полного цикла (например, чтения или записи файлов) и могут отличаться между итерациями. Чтобы оценить количество транзакций для репрезентативных рабочих нагрузок, используйте журналы Blob Storage для примеров сценариев.

Общий рабочий процесс: Подсоединение контейнера учетной записи хранилища

Клиенты Linux могут подключить контейнер в хранилище блоб-объектов из виртуальной машины Azure или локального компьютера. Чтобы подключить контейнер учетной записи хранения, выполните следующие задачи:

  1. создайте виртуальную сеть Azure;
  2. Настройка защиты сети.
  3. Создайте и настройте учетную запись хранения, которая принимает трафик только из виртуальной сети.
  4. Создайте контейнер в учетной записи хранения.
  5. Смонтируйте контейнер.

Пошаговые инструкции см. в Mount Blob Storage, используя протокол NFS 3.0.

Безопасность сети

Трафик должен исходить из виртуальной сети. Виртуальная сеть позволяет клиентам безопасно подключаться к учетной записи хранения. Единственным способом защиты данных в учетной записи является использование виртуальной сети и других параметров безопасности сети. Любое другое средство, используемое для защиты данных, включая авторизацию ключа учетной записи, безопасность Microsoft Entra и списки управления доступом (ACL), нельзя использовать для авторизации запроса NFS 3.0.

Дополнительные сведения см. в рекомендациях по безопасности сети для хранилища BLOB-объектов.

Замечание

Фильтрация общедоступных IP-адресов для доступа к учетной записи хранения не поддерживается.

Поддерживаемые сетевые подключения

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

Внимание

Протокол NFS 3.0 использует порты 111 и 2048. При подключении из локальной сети убедитесь, что клиент разрешает исходящий обмен данными через эти порты. Если вы предоставили доступ к определенным виртуальным сетям, убедитесь, что все группы безопасности сети, связанные с этими виртуальными сетями, не содержат правил безопасности, которые блокируют входящий обмен данными через эти порты.

Известные проблемы и ограничения

Полный список проблем и ограничений, связанных с текущим выпуском поддержки NFS 3.0, см. в разделе Известные проблемы.

Цены

Чтобы узнать о затратах на хранение данных и транзакции, смотрите страницу цены на Azure Blob Storage.