Подключение Хранилище BLOB-объектов Azure в файловой системе с помощью BLOBFuse версии 1
Внимание
BlobFuse2 является последней версией BLOBFuse и имеет много существенных улучшений по сравнению с версией, описанной в этой статье, BLOBFuse версии 1. Дополнительные сведения об улучшениях, сделанных в BLOBFuse2, см . в списке улучшений BLOBFuse2.
BlobFuse — это драйвер виртуальной файловой системы для Хранилище BLOB-объектов Azure. BlobFuse позволяет получить доступ к имеющимся данным блочного BLOB-объекта в учетной записи хранения через файловую систему Linux. BlobFuse использует схему виртуального каталога с косой чертой (/) в качестве разделителя.
В этом руководстве показано, как использовать BLOBFuse версии 1 и подключить контейнер хранилища BLOB-объектов в Linux и получить доступ к данным. Дополнительные сведения о BLOBFuse версии 1 см. в разделе readme и wiki.
Предупреждение
BlobFuse не гарантирует полную совместимость с POSIX, он просто преобразует запросы в REST API больших двоичных объектов. Например, операции переименования в POSIX являются атомарными, а в BlobFuse — нет. Полный список различий между собственной файловой системой и BlobFuse см. в репозитории исходного кода BlobFuse.
Установка BLOBFuse версии 1 в Linux
Двоичные файлы BLOBFuse доступны в репозиториях программного обеспечения Майкрософт для Linux для Ubuntu, Debian, SUSE, Oracle Linux и RHEL. Чтобы установить BlobFuse в этих дистрибутивах, настройте один из репозиториев из списка. Вы также можете создавать двоичные файлы из исходного кода, следуя действиям по установке службы хранилища Azure, если для вашего дистрибутива нет двоичных файлов.
BlobFuse публикуется в репозитории Linux для версий Ubuntu: 16.04, 18.04 и 20.04, RHEL версии: 7.5, 7.8, 7.9, 8.0, 8.1, 8.2, Debian версии: 9.0, 10.0, SUSE версии: 15, Oracle Linux 8.1. Выполните следующую команду, чтобы убедиться в том, что у вас развернута одна из этих версий:
cat /etc/*-release
Настройка репозитория пакетов Майкрософт
Настройте репозиторий пакетов 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.
Установка BLOBFuse версии 1
Подготовка к подключению
Для BlobFuse требуется временный путь в файловой системе, чтобы поместить все открытые файлы в буфер и кэшировать их, что помогает обеспечить производительность, близкую к исходной. Для этого временного пути выберите самый высокопроизводительный диск или используйте электронный диск для достижения оптимальной производительности.
Примечание.
BlobFuse хранит все содержимое открытых файлов во временном пути. Убедитесь, что имеется достаточно места для всех открытых файлов.
Использование электронного диска для временного пути (необязательно)
В следующем примере создается RAM-диск на 16 ГБ и каталог для BlobFuse. Выберите размер в соответствии со своими потребностями. Такой RAM-диск позволяет BlobFuse открывать файлы размером до 16 ГБ.
sudo mkdir /mnt/ramdisk
sudo mount -t tmpfs -o size=16g tmpfs /mnt/ramdisk
sudo mkdir /mnt/ramdisk/blobfusetmp
sudo chown <youruser> /mnt/ramdisk/blobfusetmp
Использование диска SSD в качестве временного пути
В Azure можно использовать временные диски (SSD), доступные на виртуальной машине, чтобы обеспечить для BlobFuse буфер с малой задержкой. В зависимости от используемого агента подготовки временный диск для виртуальных машин waagent будет подключен в каталоге /mnt для cloud-init или /mnt/resource.
Для пользователя нужно настроить права доступа к временному пути:
sudo mkdir /mnt/resource/blobfusetmp -p
sudo chown <youruser> /mnt/resource/blobfusetmp
Предоставление доступа к учетной записи хранения
Вы можете авторизовать доступ к учетной записи хранения с помощью ключа доступа учетной записи, подписанного URL-адреса, управляемого удостоверения или субъекта-службы. Сведения об авторизации можно указать в командной строке, в файле конфигурации или в переменных среды. Дополнительные сведения см. в разделе Допустимые параметры проверки подлинности в файле сведений BlobFuse.
Например, предположим, что вы выполняете авторизацию с помощью ключей доступа к учетной записи и сохраняете их в файле конфигурации. Файл конфигурации должен иметь следующий формат:
accountName myaccount
accountKey storageaccesskey
containerName mycontainer
authType Key
accountName
— это имя учетной записи хранения, а не полный URL-адрес. Вам нужно обновить myaccount
storageaccesskey
данные хранилища и mycontainer
использовать их.
Создайте этот файл с помощью следующей команды:
sudo touch /path/to/fuse_connection.cfg
После создания и изменения этого файла ограничьте к нему доступ, чтобы никто не смог его прочитать.
sudo chmod 600 /path/to/fuse_connection.cfg
Примечание.
Если вы создали файл конфигурации в Windows, обязательно запустите dos2unix
, чтобы очистить данные и преобразовать файл в формат Unix.
Создание пустого каталога для подключения
sudo mkdir ~/mycontainer
Маунт
Примечание.
Полный список параметров подключения см. в репозитории BlobFuse.
Чтобы подключить BlobFuse, выполните следующую команду с использованием нужного профиля пользователя. Эта команда подключает контейнер, указанный в "/path/to/fuse_connection.cfg", к расположению "/mycontainer".
sudo blobfuse ~/mycontainer --tmp-path=/mnt/resource/blobfusetmp --config-file=/path/to/fuse_connection.cfg -o attr_timeout=240 -o entry_timeout=240 -o negative_timeout=120
Примечание.
При использовании учетной записи ADLS необходимо включить --use-adls=true
.
Теперь у вас должен быть доступ к блочным BLOB-объектам через обычные API файловой системы. Только тот пользователь, который подключает каталог, может пользоваться им по умолчанию, что обеспечивает безопасный доступ. Чтобы разрешить доступ всем пользователям, можно выполнить подключение через параметр -o allow_other
.
sudo cd ~/mycontainer
sudo mkdir test
sudo echo "hello world" > test/blob.txt
Сохранение подключения
Сведения о том, как сохранить подключение, см. в разделе Сохранение на вики-сайте BlobFuse.
Поддерживаемые компоненты
На поддержку данной функции может повлиять включение протокола Data Lake Storage 2-го поколения, протокола сетевой файловой системы (NFS) 3.0 или протокола SFTP. Если вы включили любую из этих возможностей, см. Сведения о поддержке функций хранилища BLOB-объектов в учетных записях хранения Azure, чтобы оценить поддержку данной функции.