Comment monter le Stockage Blob Azure en tant que système de fichiers avec BlobFuse v1

Attention

Cet article fait référence à CentOS, une distribution Linux proche de l’état EOL (End Of Life). Faites le point sur votre utilisation et organisez-vous en conséquence. Pour plus d’informations, consultez les conseils d’aide relatifs à la fin de vie de CentOS.

Important

BlobFuse2 est la dernière version de BlobFuse et comporte de nombreuses améliorations significatives par rapport à la version dont il est question dans cet article, BlobFuse v1. Pour en savoir plus sur les améliorations apportées dans BlobFuse2, consultez la liste des améliorations de BlobFuse2.

BlobFuse est un pilote de système de fichiers virtuel pour Stockage Blob Azure. BlobFuse vous permet d’accéder à vos données d’objets blob de blocs existantes dans votre compte de stockage via le système de fichiers Linux. BlobFuse utilise le schéma de répertoire virtuel avec la barre oblique (/) comme délimiteur.

Ce guide vous explique comment utiliser BlobFuse v1, monter un conteneur Stockage Blob sur Linux et accéder aux données. Pour en savoir plus sur BlobFuse v1, consultez le fichier Lisezmoi et le wiki.

Avertissement

BlobFuse ne garantit pas la conformité totale à POSIX, car il traduit simplement les demandes en API REST Blob. Par exemple, les opérations de renommage sont atomiques dans POSIX, mais pas dans BlobFuse. Pour obtenir la liste complète des différences entre un système de fichiers natif et BlobFuse, consultez le dépôt de code source BlobFuse.

Installer BlobFuse v1 sur Linux

Les fichiers binaires BlobFuse sont disponibles dans les dépôts des logiciels Microsoft pour Linux pour les distributions Ubuntu, Debian, SUSE, CentOS, Oracle Linux et RHEL. Pour installer BlobFuse sur ces distributions, configurez l’un des dépôts de la liste. Si les fichiers binaires ne sont pas disponibles pour votre distribution, vous pouvez les générer à partir du code source en suivant les étapes d’installation du Stockage Azure.

BlobFuse est publié dans un référentiel Linux pour les versions d’Ubuntu : 16.04, 18.04 et 20.04, les versions de RHEL : 7.5, 7.8, 7.9, 8.0, 8.1, 8.2, les versions de CentOS : 7.0, 8.0, les versions de Debian : 9.0, 10.0, les versions de SUSE : 15 et Oracle Linux 8.1. Exécutez cette commande pour vous assurer qu’une de ces versions est déployée :

cat /etc/*-release

Configurer le référentiel de packages Microsoft

Configurez le référentiel de packages Linux pour les produits Microsoft.

Par exemple, sur une distribution Redhat Enterprise Linux 8 :

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm

De manière similaire, remplacez l’URL par .../rhel/7/... pour pointer vers une distribution Redhat Enterprise Linux 7.

Installer BlobFuse v1

sudo yum install blobfuse

Préparer le montage

BlobFuse permet d’obtenir des performances proches des performances natives. Pour cela, il utilise un chemin temporaire situé sur le système de fichiers, afin d’y mettre les fichiers ouverts en mémoire tampon et dans le cache. Pour ce chemin d’accès temporaire, choisissez le disque le plus performant ou utilisez un disque virtuel afin d’obtenir des performances optimales.

Notes

BlobFuse stocke tout le contenu des fichiers ouverts dans ce chemin temporaire. Veillez à disposer d’un espace suffisant pour prendre en compte tous les fichiers ouverts.

(Facultatif) Utiliser un disque virtuel pour le chemin d’accès temporaire

L’exemple suivant crée un disque virtuel de 16 Go, ainsi qu’un répertoire pour BlobFuse. Choisissez la taille selon vos besoins. Ce disque virtuel permet à BlobFuse d’ouvrir des fichiers d’une taille maximale de 16 Go.

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

Utiliser un disque SSD comme chemin d’accès temporaire

Dans Azure, vous pouvez utiliser les disques éphémères (SSD) disponibles sur vos machines virtuelles pour fournir une mémoire tampon à faible latence à BlobFuse. Selon l’agent d’approvisionnement utilisé, le disque éphémère est monté sur « /mnt » pour cloud-init ou « /mnt/resource » pour les machines virtuelles waagent.

Vérifiez que votre utilisateur a accès au chemin d’accès temporaire :

sudo mkdir /mnt/resource/blobfusetmp -p
sudo chown <youruser> /mnt/resource/blobfusetmp

Autoriser l'accès à votre compte de stockage

Vous pouvez autoriser l’accès à votre compte de stockage à l’aide de la clé d’accès au compte, d’une signature d’accès partagé, d’une identité managée ou d’un principal de service. Les informations d’autorisation peuvent être fournies par ligne de commande, dans un fichier de configuration ou dans les variables d’environnement. Pour plus d’informations, consultez Configurations d’authentification valides dans le fichier Lisezmoi de BlobFuse.

Par exemple, supposons que vous autorisez les clés d’accès au compte et les stockez dans un fichier de configuration. Le fichier de configuration doit avoir le format suivant :

accountName myaccount
accountKey storageaccesskey
containerName mycontainer
authType Key

Le accountName est le nom de votre compte de stockage, et non l’URL complète. Vous devez mettre à jour myaccount, storageaccesskey et mycontainer avec vos informations de stockage.

Créez ce fichier à l’aide de :

sudo touch /path/to/fuse_connection.cfg

Dès que vous avez créé et modifié ce fichier, veillez à en restreindre l’accès afin qu’aucun autre utilisateur ne puisse le lire.

sudo chmod 600 /path/to/fuse_connection.cfg

Notes

Si vous avez créé le fichier de configuration sur Windows, veillez à exécuter dos2unix pour l’assainir et le convertir au format Unix.

Créer un répertoire vide pour le montage

sudo mkdir ~/mycontainer

Monter

Notes

Pour obtenir la liste complète des options de montage, consultez le dépôt BlobFuse.

Pour monter BlobFuse, exécutez la commande suivante avec votre utilisateur. Cette commande monte le conteneur spécifié dans '/path/to/fuse_connection.cfg' sur l’emplacement '/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

Notes

Si vous utilisez un compte ADLS, vous devez inclure --use-adls=true.

Vous devez maintenant avoir accès à vos objets blob de blocs via les API normales du système de fichiers. L’utilisateur qui monte le répertoire est la seule personne qui peut y accéder, par défaut, ce qui en sécurise l’accès. Pour autoriser l’accès à tous les utilisateurs, vous pouvez effectuer le montage avec l’option -o allow_other.

sudo cd ~/mycontainer
sudo mkdir test
sudo echo "hello world" > test/blob.txt

Rendre le montage permanent

Pour savoir comment conserver le montage, consultez Persisting dans le wiki BlobFuse.

Prise en charge des fonctionnalités

La prise en charge de cette fonctionnalité peut être impactée par l’activation de Data Lake Storage Gen2, du protocole NFS (Network File System) 3.0 ou du protocole SFTP (SSH File Transfer Protocol). Si vous avez activé l’une de ces fonctionnalités, consultez Prise en charge des fonctionnalités Stockage Blob dans les comptes Stockage Azure pour évaluer la prise en charge de cette fonctionnalité.

Étapes suivantes