Come montare un contenitore di Archiviazione BLOB di Azure in Linux con BlobFuse2

Questo articolo illustra come installare e configurare BlobFuse2, montare un contenitore BLOB di Azure e accedere ai dati nel contenitore. I passaggi di base sono:

Installare BlobFuse2

Configurare BlobFuse2

Montare un contenitore BLOB

Accedere ai dati

Come installare BlobFuse2

Sono disponibili due opzioni per l'installazione di BlobFuse2:

Opzione 1: Installare BlobFuse2 dai repository software Microsoft per Linux

Per visualizzare le distribuzioni supportate, vedere Versioni di BlobFuse2.

Per informazioni sul supporto per libfuse, vedere BlobFuse2 README.

Per controllare la versione di Linux, eseguire il comando seguente:

cat /etc/*-release

Se non sono disponibili file binari per la distribuzione, è possibile scegliere Opzione 2: Compilare i file binari dal codice sorgente.

Per installare BlobFuse2 dai repository:

Configurare il repository di pacchetti Microsoft

Installare BlobFuse2

Configurare il repository di pacchetti Microsoft

Configurare il repository di pacchetti Linux per i prodotti Microsoft.

Ad esempio, in una distribuzione Redhat Enterprise Linux 8:

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

Analogamente, sostituire l'URL con .../rhel/7/... in modo che faccia riferimento a una distribuzione Redhat Enterprise Linux 7.

Installare BlobFuse2

sudo yum install blobfuse2

Opzione 2: Compilare i file binari dal codice sorgente

Per compilare i file binari di BlobFuse2 dal codice sorgente:

  1. Installare le dipendenze:

    1. Installare Git:

      sudo apt-get install git
      
    2. Installare le dipendenze di BlobFuse2.

      In Ubuntu:

      sudo apt-get install libfuse3-dev fuse3 -y
      
  2. Clonare il repository:

    sudo git clone https://github.com/Azure/azure-storage-fuse/
    sudo cd ./azure-storage-fuse
    sudo git checkout main
    
  3. Compilare BlobFuse2:

    go get
    go build -tags=fuse3
    

Suggerimento

Se è necessario installare Go, vedere Scaricare e installare Go.

Come configurare BlobFuse2

È possibile configurare BlobFuse2 usando varie impostazioni. Alcune delle impostazioni tipiche includono:

  • Percorso e opzioni di registrazione
  • Percorso file temporaneo per la memorizzazione nella cache
  • Informazioni sull'account di archiviazione di Azure e sul contenitore BLOB da montare

Le impostazioni possono essere configurate in un file di configurazione YAML, usando variabili di ambiente o come parametri passati ai comandi BlobFuse2. Il metodo preferito consiste nell'usare il file di configurazione.

Per informazioni dettagliate su ognuno dei parametri di configurazione per BlobFuse2 e su come specificarli, vedere questi articoli:

Per configurare BlobFuse2 per il montaggio:

  1. Configurare la memorizzazione nella cache.
  2. Creare una directory vuota per montare il contenitore BLOB.
  3. Autorizzare l'accesso all'account di archiviazione.

Configurare la memorizzazione nella cache

BlobFuse2 offre prestazioni simili a quelle native usando tecniche di memorizzazione nella cache dei file locali. La configurazione e il comportamento della memorizzazione nella cache variano a seconda che si tratti di streaming di file di grandi dimensioni o di accesso a file più piccoli.

Configurare la memorizzazione nella cache per lo streaming di file di grandi dimensioni

BlobFuse2 supporta lo streaming per le operazioni di lettura e scrittura come alternativa alla memorizzazione nella cache del disco per i file. In modalità di streaming BlobFuse2 memorizza nella cache blocchi di file di grandi dimensioni in memoria sia per la lettura che per la scrittura. Le impostazioni di configurazione correlate alla memorizzazione nella cache per lo streaming si trovano nelle impostazioni stream: nel file di configurazione:

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

Per iniziare rapidamente a usare alcune impostazioni per uno scenario di streaming di base, vedere il file di configurazione di streaming di esempio.

Configurare la memorizzazione nella cache per file più piccoli

I file più piccoli vengono memorizzati nella cache in un percorso temporaneo specificato in file_cache: nel file di configurazione:

file_cache:
    path: <path to local disk cache>

Nota

BlobFuse2 archivia i contenuti di tutti i file aperti nel percorso temporaneo. Assicurarsi di avere spazio sufficiente per contenere tutti i file aperti.

Sono disponibili tre opzioni comuni per configurare il percorso temporaneo per la memorizzazione nella cache dei file:

Usare un disco a prestazioni elevate locale

Se si usa un disco locale esistente per la memorizzazione nella cache dei file, scegliere un disco che offra le migliori prestazioni possibili, ad esempio un disco SSD.

Usare un disco RAM

L'esempio seguente crea un disco RAM da 16 GB e una directory per BlobFuse2. Scegliere una dimensione che soddisfi i requisiti. BlobFuse2 usa il disco RAM per aprire file con dimensioni fino a 16 GB.

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
Usare un disco SSD

In Azure è possibile usare i dischi SSD temporanei disponibili nelle macchine virtuali per fornire un buffer a bassa latenza per BlobFuse2. A seconda dell'agente di provisioning usato, montare il disco temporaneo in /mnt per cloud-init o /mnt/resource per macchine virtuali dell'agente Linux di Microsoft Azure (waagent).

Verificare che l'utente abbia accesso al percorso temporaneo:

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

Creare una directory vuota per montare il contenitore BLOB

Per creare una directory vuota per montare il contenitore BLOB:

mkdir ~/mycontainer

Autorizzare l'accesso all'account di archiviazione

È necessario concedere l'accesso all'account di archiviazione per l'utente che monta il contenitore. I modi più comuni per concedere l'accesso comportano l'uso di una delle opzioni seguenti:

  • Chiave di accesso dell'account di archiviazione
  • Firma di accesso condiviso
  • Identità gestita
  • Entità servizio

È possibile fornire informazioni sull'autorizzazione in un file di configurazione o in variabili di ambiente. Per altre informazioni, vedere Configurare le impostazioni per BlobFuse2.

Come montare un contenitore BLOB

Importante

BlobFuse2 non supporta percorsi di montaggio sovrapposti. Se si eseguono più istanze di BlobFuse2, assicurarsi che ogni istanza abbia un punto di montaggio univoco e non sovrapposto.

BlobFuse2 non supporta la coesistenza con NFS nello stesso percorso di montaggio. I risultati dell'esecuzione di BlobFuse2 nello stesso percorso di montaggio di NFS non sono definiti e potrebbero causare un danneggiamento dei dati.

Per montare un contenitore BLOB in blocchi di Azure usando BlobFuse2, eseguire il comando seguente. Il comando monta il contenitore specificato in ./config.yaml nel percorso ~/mycontainer:

sudo blobfuse2 mount ~/mycontainer --config-file=./config.yaml

Nota

Per un elenco completo delle opzioni di montaggio, vedere Comandi di montaggio per BlobFuse2.

A questo punto si dovrebbe avere accesso ai BLOB in blocchi tramite il file system Linux e le API correlate. Per testare la distribuzione, provare a creare una nuova directory e un nuovo file:

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

Come accedere ai dati

In genere, è possibile usare l'archiviazione montata su BlobFuse2 come si farebbe con il file system Linux nativo. Usa lo schema di directory virtuale con una barra (/) come delimitatore nel percorso del file e supporta operazioni di base del file system, ad esempio mkdir, opendir, readdir, rmdir, open, read, create, write, close, unlink, truncate, stat e rename.

Tuttavia, è necessario tenere presente alcune differenze chiave nelle funzionalità:

Supporto funzionalità

Questa tabella illustra il modo in cui questa funzionalità è supportata nell'account e l'effetto sul supporto quando si abilitano determinate funzionalità:

Storage account type Archiviazione BLOB (supporto predefinito) Data Lake Storage 1 NFS 3.0 1 SFTP 1
Utilizzo generico v2 Standard Sì Sì Sì Sì
BLOB in blocchi Premium Sì Sì Sì Sì

1 Azure Data Lake Storage, il protocollo NFS (Network File System) 3.0 e il supporto SFTP (SSH File Transfer Protocol) richiedono tutti un account di archiviazione con uno spazio dei nomi gerarchico abilitato.

Vedi anche

Passaggi successivi