Подключение контейнера Хранилище BLOB-объектов Azure в Linux с помощью BLOBFuse2
В этой статье показано, как установить и настроить BLOBFuse2, подключить контейнер BLOB-объектов Azure и получить доступ к данным в контейнере. Основными шагами являются:
Установка BLOBFuse2
У вас есть два варианта установки BLOBFuse2:
- Установите BLOBFuse2 из репозиториев программного обеспечения Майкрософт для Linux . Это предпочтительный способ установки. BlobFuse2 доступен в репозиториях для нескольких распространенных дистрибутивов Linux.
- Создайте двоичные файлы BLOBFuse2 из исходного кода. Вы можете создать двоичные файлы BLOBFuse2 из исходного кода , если он недоступен в репозиториях для дистрибутива.
Вариант 1. Установка BLOBFuse2 из репозиториев программного обеспечения Майкрософт для Linux
Сведения о поддерживаемых дистрибутивах см. в выпусках BlobFuse2.
Сведения о поддержке libfuse см. в разделе BLOBFuse2 README.
Чтобы узнать используемую версию Linux, выполните следующую команду:
cat /etc/*-release
Если двоичные файлы недоступны для дистрибутива, можно выбрать вариант 2. Создание двоичных файлов из исходного кода.
Чтобы установить BLOBFuse2 из репозиториев, выполните следующие действия.
Настройка репозитория пакетов Майкрософт
Настройте репозиторий пакетов Linux для продуктов Майкрософт.
Например, в дистрибутиве Redhat Enterprise Linux 8:
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm
Аналогичным образом измените URL-адрес, чтобы .../rhel/7/...
указать на дистрибутив Redhat Enterprise Linux 7.
Установка BlobFuse2
Вариант 2. Создание двоичных файлов из исходного кода
Чтобы создать двоичные файлы BLOBFuse2 из исходного кода:
Установка зависимостей:
Установите Git:
sudo apt-get install git
Установите зависимости BLOBFuse2.
В Ubuntu:
sudo apt-get install libfuse3-dev fuse3 -y
Клонируйте репозиторий.
sudo git clone https://github.com/Azure/azure-storage-fuse/ sudo cd ./azure-storage-fuse sudo git checkout main
Сборка BLOBFuse2:
go get go build -tags=fuse3
Совет
Если вам нужно установить Go, см. статью "Скачать и установить Go".
Настройка BLOBFuse2
Вы можете настроить BLOBFuse2 с помощью различных параметров. Ниже приведены некоторые типичные параметры:
- Расположение и параметры ведения журнала
- Временный путь к файлу для кэширования
- Сведения об учетной записи хранения Azure и контейнере BLOB-объектов, который будет подключаться
Параметры можно настроить в файле конфигурации YAML, с помощью переменных среды или в качестве параметров, передаваемых командам BLOBFuse2. Предпочтительный способ — использовать файл конфигурации.
Дополнительные сведения о каждом из параметров конфигурации для BLOBFuse2 и их указании см. в следующих статьях:
- Настройка параметров для BLOBFuse2
- Файл конфигурации BLOBFuse2
- Переменные среды BLOBFuse2
- Команды подключения BLOBFuse2
Чтобы настроить BLOBFuse2 для подключения:
- Настройка кэширования.
- Создайте пустой каталог для подключения контейнера BLOB-объектов.
- Авторизация доступа к учетной записи хранения.
Настройка кэширования
BlobFuse2 обеспечивает собственную производительность с помощью локальных методов кэширования файлов. Конфигурация кэширования и поведение зависят от того, выполняется ли потоковая передача больших файлов или доступ к небольшим файлам.
Настройка кэширования для потоковой передачи больших файлов
BlobFuse2 поддерживает потоковую передачу операций чтения и записи в качестве альтернативы кэшированию дисков для файлов. В режиме потоковой передачи BLOBFuse2 кэширует блоки больших файлов в памяти как для чтения, так и записи. Параметры конфигурации, связанные с кэшированием для потоковой передачи, находятся в stream:
разделе параметров в файле конфигурации:
stream:
block-size-mb:
For read only mode, the size of each block to be cached in memory while streaming (in MB)
For read/write mode, the size of newly created blocks
max-buffers: The total number of buffers to store blocks in
buffer-size-mb: The size for each buffer
Настройка кэширования для небольших файлов
Небольшие файлы кэшируются во временный путь, указанный file_cache:
в файле конфигурации:
file_cache:
path: <path to local disk cache>
Примечание.
BlobFuse2 хранит все содержимое открытых файлов во временном пути. Убедитесь, что у вас достаточно места, чтобы содержать все открытые файлы.
Существует три распространенных варианта настройки временного пути для кэширования файлов:
Использование локального высокопроизводительного диска
Если вы используете существующий локальный диск для кэширования файлов, выберите диск, который обеспечивает лучшую производительность, например твердотельный диск (SSD).
Использование диска ОЗУ
В следующем примере создается диск ОЗУ размером 16 ГБ и каталог для BLOBFuse2. Выберите размер, соответствующий вашим требованиям. BlobFuse2 использует диск ОЗУ для открытия файлов размером до 16 ГБ.
sudo mkdir /mnt/ramdisk
sudo mount -t tmpfs -o size=16g tmpfs /mnt/ramdisk
sudo mkdir /mnt/ramdisk/blobfuse2tmp
sudo chown <youruser> /mnt/ramdisk/blobfuse2tmp
Использование SSD
В Azure можно использовать временные диски SSD, доступные на виртуальных машинах, чтобы обеспечить буфер с низкой задержкой для BLOBFuse2. В зависимости от используемого агента подготовки подключите временный диск на виртуальных машинах /mnt для cloud-init или /mnt/resource для виртуальных машин Microsoft Azure Linux Agent (waagent).
Убедитесь, что у пользователя есть доступ к временному пути:
sudo mkdir /mnt/resource/blobfuse2tmp -p
sudo chown <youruser> /mnt/resource/blobfuse2tmp
Создание пустого каталога для подключения контейнера BLOB-объектов
Чтобы создать пустой каталог для подключения контейнера BLOB-объектов:
mkdir ~/mycontainer
Предоставление доступа к учетной записи хранения
Необходимо предоставить доступ к учетной записи хранения для пользователя, который подключает контейнер. Наиболее распространенными способами предоставления доступа являются один из следующих вариантов:
- Ключ доступа к учетной записи хранения
- Подписанный URL-адрес
- Управляемое удостоверение
- Субъект-служба
Вы можете предоставить сведения о авторизации в файле конфигурации или в переменных среды. Дополнительные сведения см. в разделе "Настройка параметров для BLOBFuse2".
Подключение контейнера BLOB-объектов
Внимание
BlobFuse2 не поддерживает перекрывающиеся пути подключения. Если вы запускаете несколько экземпляров BLOBFuse2, убедитесь, что каждый экземпляр имеет уникальную и не перекрывающуюся точку подключения.
BlobFuse2 не поддерживает сосуществование с NFS на том же пути подключения. Результаты выполнения BLOBFuse2 на том же пути подключения, что и NFS, не определены и могут привести к повреждению данных.
Чтобы подключить контейнер BLOB-объектов Azure блочного объекта с помощью BlobFuse2, выполните следующую команду. Команда подключает контейнер, указанный в ./config.yaml
расположении ~/mycontainer
:
sudo blobfuse2 mount ~/mycontainer --config-file=./config.yaml
Примечание.
Полный список параметров подключения см. в разделе "Команды подключения BLOBFuse2".
Теперь вы сможете обращаться к блочным BLOB-объектам через обычные API файловой системы Linux. Чтобы протестировать развертывание, попробуйте создать новый каталог и файл:
cd ~/mycontainer
mkdir test
echo "hello world" > test/blob.txt
Как получить доступ к данным
В общем случае вы можете работать с подключенным хранилищем BlobFuse2, как с обычной файловой системой Linux. Он использует схему виртуального каталога с косой чертой (/
) в качестве разделителя в пути к файлу и поддерживает базовые операции файловой системы, такие как mkdir
, write
rmdir
opendir
readdir
unlink
close
truncate
read
create
open
и . stat
rename
Однако следует учитывать некоторые ключевые различия в функциональных возможностях:
Поддерживаемые компоненты
В этой таблице показано, как эта функция поддерживается в учетной записи и влияет на поддержку при включении определенных возможностей:
Storage account type | Служба хранилища BLOB-объектов (поддержка по умолчанию) | Data Lake Storage 1 | NFS 3.0 1 | SFTP 1 |
---|---|---|---|---|
Стандартная общего назначения версии 2 | ||||
Блочные BLOB-объекты (цен. категория "Премиум") |
1 Azure Data Lake Storage, сетевой файловой системы (NFS) 3.0 и SSH-протокол SFTP поддерживают все требования к учетной записи хранения с включенным иерархическим пространством имен.