Монтирование Azure Blob Storage в Linux — NetDrive на Ubuntu

4 мин чтения provider-guide azure linux
Casey
CaseyProduct Manager
Подключите контейнер Azure Blob Storage как точку монтирования Linux с помощью экспериментальной сборки NetDrive для Ubuntu — настройка, аутентификация и проверка.

Команда data engineering ежедневно ночью экспортирует отчётные файлы в контейнер Azure Blob Storage, и машине на Ubuntu, которая их обрабатывает, не нужно тащить Azure SDK в каждый скрипт только ради чтения файла. У команды уже есть cp, find и набор shell-пайплайнов, которые прекрасно работают с локальными путями. Сборка NetDrive для Linux монтирует контейнер как один из таких локальных путей, поэтому существующие скрипты продолжают работать без изменений.

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

Монтирование Azure Blob Storage в Ubuntu

NetDrive показывает Google Drive, OneDrive, S3, SFTP, WebDAV и другие хранилища как обычные диски в Windows и macOS — без синхронизации и полной загрузки файлов.

  • Работает на экспериментальной сборке NetDrive для Ubuntu
  • Существующие shell-скрипты читают и пишут через обычную точку монтирования
  • Фоновая загрузка не блокирует вызывающий процесс при работе с большими файлами
WindowsmacOS
Скачать NetDrive для Linux →

Бесплатный пробный период. Доступны бессрочная лицензия и подписка.

Почему монтирование лучше скриптов поверх Blob API

Работа с Azure Blob Storage напрямую означает подключение Azure SDK или команд az storage blob CLI, обработку истечения SAS-токенов и написание логики повторов на том языке, на котором написана конкретная задача. Для одного скрипта это терпимо, но становится обузой, когда десяток cron-задач и шагов CI требуют собственной копии одной и той же обвязки. Монтирование контейнера убирает этот слой — всё, что уже читает и пишет локальные пути, может обращаться к точке монтирования точно так же.

NetDrive добавил поддержку Azure Blob Storage в версии 3.11.204 (2020-07-22) — в том же релизе, что добавил Azure File Storage. В Linux этот тип подключения работает на экспериментальной сборке NetDrive для Ubuntu, а не на более тщательно протестированных релизах для Windows и macOS — это стоит учитывать до того, как направлять на неё продакшн-пайплайн, поскольку Linux несёт пометку «экспериментальная» на собственной сравнительной странице NetDrive.

Azure Blob Storage provider logo — NetDrive supports Azure Blob Storage on Windows, macOS, and Linux

Что понадобится из портала Azure

Соберите три значения перед тем, как открыть NetDrive:

  • Имя учётной записи хранения — на странице обзора ресурса Storage account в портале Azure.
  • Имя контейнера — конкретный Blob-контейнер для монтирования, например nightly-exports.
  • Учётные данные для аутентификации — либо первичный ключ учётной записи (портал Azure → Storage account → Security + networkingAccess keys), либо Shared Access Signature (SAS) токен, ограниченный контейнером. SAS-токен со сроком действия, согласованным с политикой ротации учётных данных, — более безопасный выбор для машины без присмотра.

Также понадобится Ubuntu 16.04 или новее с открытым исходящим доступом к конечной точке Azure Storage на файрволе машины.

Установка NetDrive на Ubuntu

NetDrive для Linux нет в стандартных репозиториях Ubuntu, поэтому установка идёт через GitHub, а не через apt:

  1. Перейдите на github.com/NetDrive/installer и скачайте релиз, соответствующий вашей версии Ubuntu.
  2. Перед установкой проверьте примечания к этому релизу — сначала должен загрузиться компонент драйвера, иначе подключения не смонтируются.
  3. Установите пакет, затем один раз запустите NetDrive, чтобы драйвер загрузился. Этот шаг может запросить sudo в зависимости от настройки машины.

Пошагово: подключение контейнера Azure Blob

  1. Откройте Drive Manager в NetDrive и нажмите + Add Drive.
  2. Выберите Azure Blob Storage из списка провайдеров.

NetDrive Drive Manager showing multiple cloud connections available to add

  1. Введите Account Name и Container, собранные в портале Azure.
  2. Вставьте ключ учётной записи или SAS-токен в поле аутентификации.
  3. Задайте точку монтирования, например /mnt/azure-exports, и нажмите Connect.

Проверка монтирования до того, как на нём завязана задача

Убедитесь, что монтирование действительно состоялось, прежде чем направлять на него задачу без присмотра:

# Confirm the mount is listed
mount | grep azure-exports

# Or just list it
ls /mnt/azure-exports

Confirming that a connected drive mounted successfully after setup

Если каталог оказывается пустым или точка монтирования вообще не появляется, сначала проверьте, разрешает ли файрвол машины исходящий трафик к конечной точке Azure Storage, а уже потом подозревайте неверные учётные данные — заблокированный порт подводит зарежимленные build-серверы чаще, чем плохой SAS-токен.

Checking that a network port is reachable when troubleshooting a failed connection

Что учитывать в сборке для Linux

  • Отдельный цикл выпуска релизов. Исправления, выходящие для Windows или macOS, не попадают автоматически в сборку для Linux в ту же неделю.
  • Нет интеграции с apt. Обновления приходят из релизов GitHub, а не из пакетного менеджера, поэтому отслеживание новых версий — ручной шаг.
  • Windows и macOS тестируются глубже. Ночная задача экспорта, читающая из Azure Blob Storage, — разумный сценарий для сборки под Linux; тщательно протестируйте её перед тем, как ставить за ней продакшн-пайплайн без присмотра.

Итог

Монтирование контейнера Azure Blob Storage в Ubuntu даёт машине на Linux такой же доступ в стиле диска, какой NetDrive обеспечивает в Windows и macOS, без переписывания скриптов под Azure SDK. Про тот же провайдер на более тщательно протестированных платформах см. Mount Azure Blob Storage on Windows или Mount Azure Blob Storage on macOS; о более широкой картине для Linux см. NetDrive on Ubuntu Linux.

— Casey, NetDrive