Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как установить и настроить 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 для продуктов Майкрософт.
Например, в дистрибутиве Red Hat Enterprise Linux 8:
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm
Аналогичным образом измените URL-адрес на .../rhel/7/...
, чтобы он указывал на дистрибутив Red Hat 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
Предоставление доступа к учетной записи хранения
Необходимо предоставить доступ к учетной записи хранения для пользователя, который подключает контейнер. Наиболее распространенными способами предоставления доступа являются один из следующих вариантов:
- Ключ доступа к учетной записи хранения
- Подписанный ключ доступа
- Управляемая идентификация
- Субъект-служба
Вы можете предоставить сведения о авторизации в файле конфигурации или в переменных среды. Дополнительные сведения см. в разделе "Настройка параметров для BLOBFuse2".
Как монтировать контейнер BLOB-объектов
Внимание
BlobFuse2 не поддерживает перекрывающиеся пути подключения. Если вы запускаете несколько экземпляров BLOBFuse2, убедитесь, что каждый экземпляр имеет уникальную и не перекрывающуюся точку подключения.
BlobFuse2 не поддерживает сосуществование с NFS на том же пути подключения. Результаты выполнения BLOBFuse2 на том же пути подключения, что и NFS, не определены и могут привести к повреждению данных.
Чтобы подключить блочный BLOB-контейнер Azure с помощью BlobFuse2, выполните следующую команду. Команда монтирует указанный контейнер в ./config.yaml
на расположение ~/mycontainer
.
sudo blobfuse2 mount ~/mycontainer --config-file=./config.yaml
Примечание.
Полный список параметров монтирования см. в разделе Команды монтирования BlobFuse2.
Теперь у вас должен быть доступ к блочным BLOB-объектам через файловую систему Linux и связанные API. Чтобы протестировать развертывание, попробуйте создать новый каталог и файл:
cd ~/mycontainer
mkdir test
echo "hello world" > test/blob.txt
Как получить доступ к данным
В общем случае вы можете работать с подключенным хранилищем BlobFuse2, как с обычной файловой системой Linux. Он использует схему виртуального каталога с косой чертой (/
) в качестве разделителя в пути к файлу и поддерживает базовые операции файловой системы, такие как mkdir
, opendir
readdir
rmdir
open
read
create
write
close
unlink
truncate
и . stat
rename
Однако следует учитывать некоторые ключевые различия в функциональных возможностях:
Поддержка функций
В этой таблице показано, как эта функция поддерживается в учетной записи и влияет на поддержку при включении определенных возможностей:
Тип учетной записи хранилища | Служба хранилища объектов Blob (поддержка по умолчанию) | Data Lake Storage 1 | NFS 3.0 1 | SFTP 1 |
---|---|---|---|---|
Стандартная общего назначения второго поколения |
![]() |
![]() |
![]() |
![]() |
Блочные BLOB-объекты "Премиум" |
![]() |
![]() |
![]() |
![]() |
1 Azure Data Lake Storage; протокол сетевой файловой системы (NFS) 3.0; и протокол передачи файлов SSH (SFTP) — все они требуют наличия учетной записи хранения с включенным иерархическим пространством имен.