Comment monter le Stockage Blob Azure en tant que système de fichiers avec BlobFuse v1
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, 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 le repo Linux pour les versions Ubuntu : 16.04, 18.04 et 20.04, versions RHEL : 7.5, 7.8, 7.9, 8.0, 8.1, 8.2, versions Debian : 9.0, 10.0, SUSE version : 15, 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
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é.