Montare Azure Blob Storage su Linux con BlobFuse2

di Cristian Civera,

In molti scenari di utilizzo di Azure Blob Storage, è fondamentale poter accedere ai dati archiviati direttamente da un ambiente Linux, senza dover passare per interfacce web o processi di download manuale. Questo tipo di accesso risulta particolarmente utile in contesti di elaborazione distribuita, data analytics e backup automatizzati, dove l'integrazione diretta con il file system permette di trattare i blob container come normali directory locali.

BlobFuse2 è un driver di file system virtuale sviluppato per risolvere proprio questa esigenza, consentendo di montare i container di Azure Blob Storage su Linux attraverso l'uso delle REST API di Azure Storage e della libreria libfuse.

Una volta montato un container, diventa possibile eseguire comandi di mkdir, read, write e molte altre operazioni direttamente dalla shell, come se i dati risiedessero su un disco locale. Questo approccio semplifica l'interazione con lo storage su cloud e migliora l'efficienza operativa di molti flussi di lavoro in ambienti Linux.

Per installare BlobFuse2 su Ubuntu, è sufficiente configurare il repository Microsoft e installare il pacchetto:

sudo wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install libfuse3-dev fuse3

Installate le dipendenze possiamo installare BlobFuse2.

sudo apt-get install blobfuse2

Per altre distribuzioni, invece, rimandiamo alla guida ufficiale: https://learn.microsoft.com/en-us/azure/storage/blobs/blobfuse2-how-to-deploy

Fatto questo possiamo procedere alla creazione del file di configurazione, dove si specificano molti aspetti riguardanti il caching, i buffer ecc. Possiamo utilizzare questo file https://github.com/Azure/azure-storage-fuse/blob/main/setup/baseConfig.yaml come base di partenza o in alternativa procedere con la configurazione minima creando un file yaml come il seguente.

file_cache:
  path: /tmp/fuse
azstorage:
  type: block
  account-name: ricciolo
  container: fuse
  mode: key
  account-key: ####

Quindi creiamo la cartella nella posizione dove vogliamo trovare l'intero container e lanciamo il comando.

mkdir /mnt/fuse
blobfuse2 mount /mnt/fuse --config-file=./fuse.yaml

Fatto questo possiamo entrare nella cartella /mnt/fuse e agire nel container di Azure come un normale file system. Bisogna considerare alcune limitazioni come il fatto le operazioni di rename non sono atomiche e la gestione dei permessi POSIX non è completamente supportata.

Rimandiamo alla documentazione ufficiale https://learn.microsoft.com/en-us/azure/storage/blobs/blobfuse2-what-is per approfondire lo strumento.

Commenti

Visualizza/aggiungi commenti

| Condividi su: LinkedIn, Facebook

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi