Guide pratique pour monter un conteneur de stockage d’objets blob Azure sur Linux avec BlobFuse2

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 l’aide Fin de vie CentOS.

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 :

Installer BlobFuse2

Configurer BlobFuse2

Monter un conteneur d’objets blob

Accéder aux données

Comment installer BlobFuse2

Il existe deux options pour l’installation de BlobFuse2 :

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

Installer BlobFuse2

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

sudo yum install 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 :

  1. Installez les dépendances :

    1. Installez Git :

      sudo apt-get install git
      
    2. Installer les dépendances de BlobFuse2.

      Sur Ubuntu :

      sudo apt-get install libfuse3-dev fuse3 -y
      
  2. Clonez le référentiel :

    sudo git clone https://github.com/Azure/azure-storage-fuse/
    sudo cd ./azure-storage-fuse
    sudo git checkout main
    
  3. 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 :

Pour configurer BlobFuse2 pour le montage :

  1. Configurer la mise en cache.
  2. Créez un répertoire vide pour monter le conteneur d’objets blob.
  3. 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

Pour commencer rapidement avec quelques paramètres pour un scénario de diffusion en continu de base, consultez l’exemple de fichier de configuration de diffusion en continu.

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) Data Lake Storage Gen2 1 NFS 3.0 1 SFTP 1
Usage général v2 Standard Oui Oui Oui Oui
Objets blob de blocs Premium Oui Oui Oui Oui

1 La prise en charge des protocoles Azure Data Lake Storage Gen2, NFS (Network File System) 3.0 et SFTP (SSH File Transfer Protocol) nécessite un compte de stockage avec un espace de noms hiérarchique activé.

Voir aussi

Étapes suivantes