Guide pratique pour monter un conteneur de stockage d’objets blob Azure sur Linux avec BlobFuse2
Cet article vous montre comment installer et configurer BlobFuse2, monter un conteneur d’objets blob Azure et accéder aux données du conteneur. Étapes élémentaires :
Comment installer BlobFuse2
Il existe deux options pour l’installation de BlobFuse2 :
- Installer BlobFuse2 à partir du référentiels de logiciels Microsoft pour Linux : il s’agit de la méthode d’installation recommandée. BlobFuse2 est disponible dans les référentiels pour plusieurs distributions Linux courantes.
- Générer les fichiers binaires BlobFuse2 à partir du code source : vous pouvez générer les fichiers binaires BlobFuse2 à partir du code source s’il n’est pas disponible dans les référentiels pour votre distribution.
Option 1 : Installer BlobFuse2 à partir des référentiels de logiciels Microsoft pour Linux
Pour connaître les distributions prises en charge, consultez Versions de BlobFuse2.
Pour plus d’informations sur la prise en charge de libfuse, consultez le fichier README de BlobFuse2.
Pour vérifier votre version de Linux, exécutez la commande suivante :
cat /etc/*-release
Si aucun binaire n’est disponible pour votre distribution, vous pouvez choisir Option 2 : Générer les binaires à partir du code source.
Pour installer BlobFuse2 à partir des référentiels :
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 BlobFuse2
Option 2 : Générer les binaires à partir du code source
Pour générer les fichiers binaires de BlobFuse2 à partir du code source :
Installez les dépendances :
Installez Git :
sudo apt-get install git
Installer les dépendances de BlobFuse2.
Sur Ubuntu :
sudo apt-get install libfuse3-dev fuse3 -y
Clonez le référentiel :
sudo git clone https://github.com/Azure/azure-storage-fuse/ sudo cd ./azure-storage-fuse sudo git checkout main
Générer BlobFuse2 :
go get go build -tags=fuse3
Conseil
Si vous devez installer Go, consultez Télécharger et installer Go.
Comment configurer BlobFuse2
Vous pouvez configurer BlobFuse2 à l’aide de différents paramètres. Certains des paramètres typiques comprennent :
- Emplacement et options de journalisation
- Chemin d’accès de fichier temporaire pour la mise en cache
- Informations sur le compte de stockage Azure et le conteneur d’objets blob à monter
Les paramètres peuvent être configurés dans un fichier de configuration YAML, en utilisant des variables d’environnement, ou en tant que paramètres transmis aux commandes BlobFuse2. La méthode préférée consiste à utiliser le fichier de configuration.
Pour plus d’informations sur chacun des paramètres de configuration pour BlobFuse2 et sur la façon de les spécifier, consultez les articles suivants :
- Configurer les paramètres pour BlobFuse2
- Fichier de configuration BlobFuse2
- Variables d’environnement de BlobFuse2
- Commandes de montage de BlobFuse2
Pour configurer BlobFuse2 pour le montage :
- Configurer la mise en cache.
- Créez un répertoire vide pour monter le conteneur d’objets blob.
- Autoriser l’accès à votre compte de stockage.
Configurer la mise en cache
BlobFuse2 fournit des performances natives à l’aide de techniques de mise en cache de fichiers locales. La configuration et le comportement de mise en cache varient selon que vous diffusez des fichiers volumineux ou accédez à des fichiers plus petits.
Configurer la mise en cache pour la diffusion en continu de fichiers volumineux
BlobFuse2 prend en charge la diffusion en continu pour les opérations de lecture et d’écriture comme alternative à la mise en cache de disque pour les fichiers. En mode diffusion en continu, BlobFuse2 met en cache des blocs de fichiers volumineux en mémoire à la fois pour la lecture et l’écriture. Les paramètres de configuration relatifs à la mise en cache pour la diffusion en continu se trouvent sous les paramètres stream:
dans votre fichier de configuration :
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
Configurer la mise en cache pour les fichiers plus petits
Les fichiers plus petits sont mis en cache dans un chemin temporaire spécifié sous file_cache:
dans le fichier de configuration :
file_cache:
path: <path to local disk cache>
Notes
BlobFuse2 stocke tout le contenu des fichiers ouverts dans ce chemin temporaire. Assurez-vous que vous disposez de suffisamment d’espace pour contenir tous les fichiers ouverts.
Vous disposez de trois options courantes pour configurer le chemin d’accès temporaire pour la mise en cache des fichiers :
Utiliser un disque local hautes performances
Si vous utilisez un disque local existant pour la mise en cache de fichiers, choisissez un disque qui offre les meilleures performances possibles, par exemple un disque SSD.
Utiliser un disque RAM
L’exemple suivant crée un disque virtuel de 16 Go de RAM ainsi qu’un répertoire pour BlobFuse2. Choisissez une taille qui correspond à vos besoins. BlobFuse2 utilise le disque RAM pour ouvrir des fichiers dont la taille peut atteindre 16 Go.
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
Utiliser un disque SSD
Dans Azure, vous pouvez utiliser les disques éphémères SSD disponibles sur vos machines virtuelles pour fournir une mémoire tampon à faible latence à BlobFuse2. Selon l’agent d’approvisionnement que vous utilisez, montez le disque éphémère sur /mnt pour cloud-init, ou /mnt/resource pour les machines virtuelles de l’agent Microsoft Azure Linux (waagent).
Vérifiez que votre utilisateur a accès au chemin d’accès temporaire :
sudo mkdir /mnt/resource/blobfuse2tmp -p
sudo chown <youruser> /mnt/resource/blobfuse2tmp
Créer un répertoire vide pour monter le conteneur blob
Pour créer un répertoire vide pour monter le conteneur d’objets blob :
mkdir ~/mycontainer
Autoriser l'accès à votre compte de stockage
Vous devez accorder l’accès au compte de stockage pour l’utilisateur qui monte le conteneur. Les méthodes les plus courantes pour accorder l’accès sont les options suivantes :
- Clé d’accès au compte de stockage
- Signature d’accès partagé
- Identité managée
- Principal du service
Les informations d’autorisation peuvent être fournies dans un fichier de configuration ou dans les variables d’environnement. Pour plus d’informations, consultez Configurer les paramètres de BlobFuse2.
Comment monter un conteneur d’objets blob
Important
BlobFuse2 ne prend pas en charge les chemins de montage qui se chevauchent. Si vous exécutez plusieurs instances de BlobFuse2, vérifiez que chaque instance a un point de montage unique sans chevauchement.
BlobFuse2 ne prend pas en charge la co-existence avec NFS sur le même chemin de montage. Les résultats de l’exécution de BlobFuse2 sur le même chemin de montage que NFS sont indéfinis et peuvent entraîner une altération des données.
Pour monter un conteneur d’objets blob de blocs Azure avec BlobFuse2, exécutez la commande suivante. La commande monte le conteneur spécifié dans ./config.yaml
sur l’emplacement ~/mycontainer
:
sudo blobfuse2 mount ~/mycontainer --config-file=./config.yaml
Notes
Pour une liste complète des options de montage, consultez Commandes de montage de BlobFuse2.
Vous devez maintenant avoir accès à vos objets blob de blocs via les API du système de fichiers Linux et connexes. Pour tester votre déploiement, essayez de créer un répertoire et un fichier :
cd ~/mycontainer
mkdir test
echo "hello world" > test/blob.txt
Guide pratique pour accéder aux données
En règle générale, vous pouvez utiliser le stockage monté avec BlobFuse2 comme vous le feriez avec le système de fichiers Linux natif. Il utilise le schéma de répertoire virtuel avec une barre oblique (/
) comme délimiteur dans le chemin du fichier et prend en charge les opérations de base du système de fichiers telles que mkdir
, opendir
, readdir
, rmdir
, open
, read
, create
, write
, close
, unlink
, truncate
, stat
et rename
.
Cependant, vous devez être conscient de certaines différences clés dans le fonctionnement :
Prise en charge des fonctionnalités
Ce tableau montre comment cette fonctionnalité est prise en charge dans votre compte ainsi que l’effet sur la prise en charge lorsque vous activez certaines fonctionnalités :
Type de compte de stockage | Stockage Blob (prise en charge par défaut) | Stockage du lac de données 1 | NFS 3.0 1 | SFTP 1 |
---|---|---|---|---|
Usage général v2 Standard | ||||
Objets blob de blocs Premium |
1 La prise en charge d’Azure Data Lake Storage, du protocole Network File System (NFS) 3.0 et du protocole SSH File Transfer Protocol (SFTP) nécessite tous un compte de stockage avec un espace de noms hiérarchique activé.