Come montare un contenitore Archiviazione BLOB di Azure in Linux con BlobFuse2
Attenzione
Questo articolo fa riferimento a CentOS, una distribuzione Linux prossima allo stato EOL (End of Life, fine del ciclo di vita). Prendere in considerazione l'uso e il piano di conseguenza. Per altre informazioni, vedere le linee guida per la fine della vita di CentOS.
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 BlobFuse2 dal codice sorgente: è possibile compilare i file binari 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 di 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 usare l'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, modificare l'URL in modo che .../rhel/7/...
punti a una distribuzione Redhat Enterprise Linux 7.
Installare BlobFuse2
Opzione 2: Compilare i file binari dal codice sorgente
Per compilare i file binari BlobFuse2 dal codice sorgente:
Installare le dipendenze:
Installare Git:
sudo apt-get install git
Installare le dipendenze 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 BlobFuse2
- Variabili di ambiente BlobFuse2
- Comandi di montaggio 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 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 stream:
streaming si trovano nelle impostazioni 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 file_cache:
nel file di configurazione:
file_cache:
path: <path to local disk cache>
Nota
BlobFuse2 archivia tutti i contenuti dei 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 locale ad alte prestazioni
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.If you use an existing local disk for file caching, choose a disk that that provides the best performance possible, such as a solid-state disk (SSD).
Usare un disco RAM
L'esempio seguente crea un disco RAM di 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'unità SSD
In Azure è possibile usare i dischi temporanei SSD 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 le macchine virtuali dell'agente Linux di Microsoft Azure (waagent).
Assicurarsi 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 sono 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 nel ./config.yaml
percorso ~/mycontainer
:
sudo blobfuse2 mount ~/mycontainer --config-file=./config.yaml
Nota
Per un elenco completo delle opzioni di montaggio, vedere Comandi di montaggio 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 mkdir
esempio , readdir
rmdir
opendir
open
close
read
create
write
, unlink
, truncate
, , , , stat
e .rename
Tuttavia, è necessario tenere presenti alcune differenze principali nelle funzionalità:
Supporto funzionalità
Questa tabella illustra come questa funzionalità è supportata nell'account e l'effetto sul supporto quando si abilitano determinate funzionalità:
Storage account type | Archiviazione BLOB (supporto predefinito) | Data Lake Archiviazione Gen2 1 | NFS 3.0 1 | SFTP 1 |
---|---|---|---|---|
Utilizzo generico v2 Standard | ||||
BLOB in blocchi Premium |
1 Azure Data Lake Archiviazione Gen2, protocollo NFS (Network File System) 3.0 e SSH File Transfer Protocol (SFTP) supportano tutti richiedono un account di archiviazione con uno spazio dei nomi gerarchico abilitato.
Vedi anche
- Eseguire la migrazione a BlobFuse2 da BlobFuse v1
- Comandi BlobFuse2
- Risolvere i problemi di BlobFuse2