Come montare Archiviazione BLOB di Azure come file system con BlobFuse v1

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.

Importante

BlobFuse2 è la versione più recente di BlobFuse e presenta molti miglioramenti significativi rispetto alla versione descritta in questo articolo BlobFuse v1. Per informazioni sui miglioramenti apportati in BlobFuse2, vedere l'elenco dei miglioramenti di BlobFuse2.

BlobFuse è un driver del file system virtuale per Archiviazione BLOB di Azure. BlobFuse consente di accedere ai dati BLOB in blocchi esistenti nell'account di archiviazione tramite il file system Linux. BlobFuse usa lo schema di directory virtuale con la barra "/" come delimitatore.

Questa guida illustra come usare BlobFuse v1 e montare un contenitore BLOB Archiviazione in Linux e accedere ai dati. Per altre informazioni su BlobFuse v1, vedere il file leggimi e il wiki.

Avviso

BlobFuse non garantisce la conformità POSIX al 100% perché converte semplicemente le richieste in API REST BLOB. Ad esempio, le operazioni di ridenominazione sono atomiche in POSIX, ma non in BlobFuse. Per un elenco completo delle differenze tra un file system nativo e BlobFuse, visitare il repository di codice sorgente BlobFuse.

Installare BlobFuse v1 in Linux

I file binari BlobFuse sono disponibili nei repository software Microsoft per Linux per Ubuntu, Debian, SU edizione Standard, CentOS, Oracle Linux e RHEL. Per installare BlobFuse in tali distribuzioni, configurare uno dei repository dall'elenco. Se non sono disponibili file binari per la distribuzione, è anche possibile generare i file binari dal codice sorgente seguendo la procedura di installazione di Archiviazione di Azure.

BlobFuse viene pubblicato nel repository Linux per le versioni di Ubuntu: 16.04, 18.04, e 20.04, versioni di RHEL: 7.5, 7.8, 7.9, 8.0, 8.1, 8.2, CentOS versioni: 7.0, 8.0, Debian versioni: 9.0, 10.0, SU edizione Standard versione: 15, Oracle Linux 8.1. Eseguire questo comando per verificare che sia stata distribuita una di tali versioni:

cat /etc/*-release

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 BlobFuse v1

sudo yum install blobfuse

Preparare il montaggio

BlobFuse offre prestazioni simili a native richiedendo un percorso temporaneo nel file system per memorizzare nel buffer e memorizzare nella cache tutti i file aperti. Per questo percorso temporaneo, scegliere il disco con le prestazioni più elevate o usare un disco RAM per prestazioni ottimali.

Nota

BlobFuse archivia tutti i contenuti dei file aperti nel percorso temporaneo. Verificare di avere spazio sufficiente per tutti i file aperti.

(Facoltativo) Usare un disco RAM per il percorso temporaneo

Nell'esempio seguente viene creato un disco ram di 16 GB e una directory per BlobFuse. Scegliere le dimensioni in base alle proprie esigenze. Questo disco ram consente a BlobFuse di aprire file di dimensioni fino a 16 GB.

sudo mkdir /mnt/ramdisk
sudo mount -t tmpfs -o size=16g tmpfs /mnt/ramdisk
sudo mkdir /mnt/ramdisk/blobfusetmp
sudo chown <youruser> /mnt/ramdisk/blobfusetmp

Usare un'unità SSD come percorso temporaneo

In Azure è possibile usare i dischi temporanei (SSD) disponibili nelle macchine virtuali per fornire un buffer a bassa latenza per BlobFuse. A seconda dell'agente di provisioning usato, il disco temporaneo verrà montato su '/mnt' per cloud-init o '/mnt/resource' per le macchine virtuali waagent.

Verificare che l'utente abbia accesso al percorso temporaneo:

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

Autorizzare l'accesso all'account di archiviazione

È possibile autorizzare l'accesso all'account di archiviazione usando la chiave di accesso dell'account, una firma di accesso condiviso, un'identità gestita o un'entità servizio. Le informazioni di autorizzazione possono essere fornite nella riga di comando, in un file di configurazione o nelle variabili di ambiente. Per informazioni dettagliate, vedere Configurazioni di autenticazione valide nel file leggimi BlobFuse.

Si supponga, ad esempio, di autorizzare con le chiavi di accesso dell'account e di archiviarle in un file di configurazione. Il file di configurazione deve avere il formato seguente:

accountName myaccount
accountKey storageaccesskey
containerName mycontainer
authType Key

accountName è il nome dell'account di archiviazione e non l'URL completo. È necessario aggiornare myaccount, storageaccesskeye mycontainer con le informazioni di archiviazione.

Creare questo file usando:

sudo touch /path/to/fuse_connection.cfg

Dopo aver creato e modificato questo file, assicurarsi di limitare l'accesso in modo che nessun altro utente possa leggerlo.

sudo chmod 600 /path/to/fuse_connection.cfg

Nota

Se il file di configurazione è stato creato in Windows, assicurarsi di eseguire dos2unix per purificare e convertire il file in formato Unix.

Creare una directory vuota per il montaggio

sudo mkdir ~/mycontainer

Eseguire il montaggio

Nota

Per un elenco completo delle opzioni di montaggio, controllare il repository BlobFuse.

Per montare BlobFuse, eseguire il comando seguente con l'utente. Questo comando monta nella posizione "/mycontainer" il contenitore specificato in "/path/to/fuse_connection.cfg".

sudo blobfuse ~/mycontainer --tmp-path=/mnt/resource/blobfusetmp  --config-file=/path/to/fuse_connection.cfg -o attr_timeout=240 -o entry_timeout=240 -o negative_timeout=120

Nota

Se si usa un account ADLS, è necessario includere --use-adls=true.

Si avrà ora accesso ai BLOB in blocchi tramite le normali API del file system. Per impostazione predefinita, l'utente che monta la directory è l'unica persona che può accedervi e in questo modo l'accesso risulta protetto. Per consentire l'accesso a tutti gli utenti, è possibile eseguire il montaggio tramite l'opzione -o allow_other.

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

Rendere permanente il montaggio

Per informazioni su come rendere persistente il montaggio, vedere Persisting in the BlobFuse wiki (Persistenza nel wiki BlobFuse).

Supporto funzionalità

Il supporto di questa funzionalità potrebbe essere influenzato dall'abilitazione dei protocolli Data Lake Storage Gen2, NFS (Network File System) 3.0 o SFTP (SSH File Transfer Protocol). Se è stata abilitata una di queste funzionalità, vedere Supporto delle funzionalità di Archiviazione del BLOB negli account di Archiviazione di Azure per valutare il supporto per questa funzionalità.

Passaggi successivi