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:
Come installare BlobFuse2
Sono disponibili due opzioni per l'installazione di BlobFuse2:
- Installare BlobFuse2 dai repository software Microsoft per Linux: questo è il metodo preferito per l'installazione. BlobFuse2 è disponibile nei repository per diverse distribuzioni Linux comuni.
- Compilare i file binari di BlobFuse2 dal codice sorgente: è possibile compilare i file binari di BlobFuse2 dal codice sorgente se non sono disponibili nei repository per la distribuzione.
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
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
Opzione 2: Compilare i file binari dal codice sorgente
Per compilare i file binari di BlobFuse2 dal codice sorgente:
Installare le dipendenze:
Installare Git:
sudo apt-get install git
Installare le dipendenze di BlobFuse2.
In Ubuntu:
sudo apt-get install libfuse3-dev fuse3 -y
Clonare il repository:
sudo git clone https://github.com/Azure/azure-storage-fuse/ sudo cd ./azure-storage-fuse sudo git checkout main
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:
- Configurare le impostazioni per BlobFuse2
- File di configurazione di BlobFuse2
- Variabili di ambiente di BlobFuse2
- Comandi di montaggio per BlobFuse2
Per configurare BlobFuse2 per il montaggio:
- Configurare la memorizzazione nella cache.
- Creare una directory vuota per montare il contenitore BLOB.
- 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 | ||||
BLOB in blocchi Premium |
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
- Eseguire la migrazione a BlobFuse2 da BlobFuse v1
- Comandi di BlobFuse2
- Risolvere problemi relativi a BlobFuse2