Einbinden von Blob Storage als Dateisystem mit blobfuseHow to mount Blob storage as a file system with blobfuse

ÜbersichtOverview

Blobfuse ist ein virtueller Dateisystemtreiber für Azure Blob Storage.Blobfuse is a virtual file system driver for Azure Blob storage. Sie können Blobfuse verwenden, um über das Linux-Dateisystem auf die vorhandenen Blockblobdaten in Ihrem Speicherkonto zuzugreifen.Blobfuse allows you to access your existing block blob data in your storage account through the Linux file system. Blobfuse verwendet das Schema für virtuelle Verzeichnisse mit einem Schrägstrich (/) als Trennzeichen.Blobfuse uses the virtual directory scheme with the forward-slash '/' as a delimiter.

In diesem Handbuch wird gezeigt, wie Sie blobfuse verwenden, einen Blobspeichercontainer unter Linux einbinden und auf Daten zugreifen.This guide shows you how to use blobfuse, and mount a Blob storage container on Linux and access data. Weitere Informationen zu blobfuse finden Sie im blobfuse-Repository.To learn more about blobfuse, read the details in the blobfuse repository.

Warnung

Blobfuse garantiert keine 100-prozentige Konformität mit POSIX, da Anforderungen einfach in Blob-REST-APIs übersetzt werden.Blobfuse doesn't guarantee 100% POSIX compliance as it simply translates requests into Blob REST APIs. Umbenennungsvorgänge sind in POSIX beispielsweise atomisch, in blobfuse jedoch nicht.For example, rename operations are atomic in POSIX, but not in blobfuse. Eine vollständige Liste der Unterschiede zwischen einem nativen Dateisystem und blobfuse finden Sie im blobfuse-Quellcoderepository.For a full list of differences between a native file system and blobfuse, visit the blobfuse source code repository.

Installieren von blobfuse unter LinuxInstall blobfuse on Linux

blobfuse-Binärdateien befinden sich für Ubuntu- und RHEL-Distributionen in den Microsoft-Softwarerepositorys für Linux.Blobfuse binaries are available on the Microsoft software repositories for Linux for Ubuntu and RHEL distributions. Um Blobfuse in diesen Distributionen zu installieren, konfigurieren Sie eines der Repositorys aus der Liste.To install blobfuse on those distributions, configure one of the repositories from the list. Sie können die Binärdateien auch gemäß den Azure Storage-Installationsschritten aus dem Quellcode erstellen, wenn für Ihre Distribution keine Binärdateien verfügbar sind.You can also build the binaries from source code following the Azure Storage installation steps if there are no binaries available for your distribution.

Blobfuse unterstützt die Installation unter Ubuntu 14.04, 16.04 und 18.04.Blobfuse supports installation on Ubuntu 14.04, 16.04, and 18.04. Führen Sie diesen Befehl aus, um sicherzustellen, dass Sie eine dieser Versionen bereitgestellt haben:Run this command to make sure that you have one of those versions deployed:

lsb_release -a

Konfigurieren des Microsoft-PaketrepositorysConfigure the Microsoft package repository

Konfigurieren Sie das Linux-Paketrepository für Microsoft-Produkte.Configure the Linux Package Repository for Microsoft Products.

Beispiel einer Konfiguration für eine Enterprise Linux 6-Distribution:As an example, on an Enterprise Linux 6 distribution:

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

Analog dazu ändern Sie die URL in .../rhel/7/..., um auf eine Enterprise Linux 7-Distribution zu verweisen.Similarly, change the URL to .../rhel/7/... to point to an Enterprise Linux 7 distribution.

Ein weiteres Beispiel für eine Konfiguration für eine Ubuntu 14.04-Distribution:Another example on an Ubuntu 14.04 distribution:

wget https://packages.microsoft.com/config/ubuntu/14.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update

Ändern Sie auf ähnliche Weise die URL in .../ubuntu/16.04/... oder .../ubuntu/18.04/..., um auf eine andere Ubuntu-Version zu verweisen.Similarly, change the URL to .../ubuntu/16.04/... or .../ubuntu/18.04/... to reference another Ubuntu version.

Installieren von blobfuseInstall blobfuse

In einer Ubuntu/Debian-Distribution:On an Ubuntu/Debian distribution:

sudo apt-get install blobfuse

In einer Enterprise Linux-Distribution:On an Enterprise Linux distribution:

sudo yum install blobfuse

Vorbereiten der EinbindungPrepare for mounting

Blobfuse erfordert einen temporären Pfad im Dateisystem zum Puffern und Zwischenspeichern geöffneter Dateien, wodurch nahezu die gleiche Leistung wie bei einer nativen Lösung erreicht wird.Blobfuse provides native-like performance by requiring a temporary path in the file system to buffer and cache any open files. Wählen Sie für diesen temporären Pfad den leistungsstärksten Datenträger aus, oder verwenden Sie eine RAM-Disk, um eine optimale Leistung zu erzielen.For this temporary path, choose the most performant disk, or use a ramdisk for best performance.

Hinweis

Blobfuse speichert die Inhalte aller geöffneten Dateien am temporären Pfad.Blobfuse stores all open file contents in the temporary path. Stellen Sie sicher, dass ausreichend Speicher für alle geöffneten Dateien verfügbar ist.Make sure to have enough space to accommodate all open files.

(Optional) Verwenden einer RAM-Disk für den temporären Pfad(Optional) Use a ramdisk for the temporary path

Das folgende Beispiel erstellt eine RAM-Disk mit 16 GB sowie ein Verzeichnis für Blobfuse.The following example creates a ramdisk of 16 GB and a directory for blobfuse. Wählen Sie basierend auf Ihren Anforderungen die Größe aus.Choose the size based on your needs. Diese RAM-Disk ermöglicht blobfuse das Öffnen von Dateien mit einer Größe von bis zu 16 GB.This ramdisk allows blobfuse to open files up to 16 GB in size.

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

Verwenden eines SSD-Datenträgers als temporärer PfadUse an SSD as a temporary path

In Azure können Sie die auf Ihren virtuellen Computern verfügbaren kurzlebigen Datenträger (SSD) nutzen, um für blobfuse einen Puffer mit geringer Latenz bereitzustellen.In Azure, you may use the ephemeral disks (SSD) available on your VMs to provide a low-latency buffer for blobfuse. In Ubuntu-Distributionen wird dieser kurzlebige Datenträger mit „/mnt“ bereitgestellt.In Ubuntu distributions, this ephemeral disk is mounted on '/mnt'. In Red Hat- und CentOS-Distributionen wird der Datenträger mit „mnt/resource/“ bereitgestellt.In Red Hat and CentOS distributions, the disk is mounted on '/mnt/resource/'.

Stellen Sie sicher, dass Benutzer auf den temporären Pfad zugreifen können:Make sure your user has access to the temporary path:

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

Konfigurieren der Anmeldeinformationen für SpeicherkontenConfigure your storage account credentials

blobfuse erfordert, dass Ihre Anmeldeinformationen in einer Textdatei in folgendem Format gespeichert werden:Blobfuse requires your credentials to be stored in a text file in the following format:

accountName myaccount
accountKey storageaccesskey
containerName mycontainer

accountName ist das Präfix für Ihr Speicherkonto – nicht die vollständige URL.The accountName is the prefix for your storage account - not the full URL.

Erstellen Sie diese Datei mit:Create this file using:

touch ~/fuse_connection.cfg

Nachdem Sie diese Datei erstellt und bearbeitet haben, schränken Sie unbedingt den Zugriff darauf ein, damit andere Benutzer sie nicht lesen können.Once you've created and edited this file, make sure to restrict access so no other users can read it.

chmod 600 fuse_connection.cfg

Hinweis

Wenn Sie die Konfigurationsdatei unter Windows erstellt haben, stellen Sie sicher, dass Sie dos2unix ausführen, um die Datei zu bereinigen und in das Unix-Format zu konvertieren.If you have created the configuration file on Windows, make sure to run dos2unix to sanitize and convert the file to Unix format.

Erstellen eines leeren Verzeichnisses für die EinbindungCreate an empty directory for mounting

mkdir ~/mycontainer

EinbindenMount

Hinweis

Eine vollständige Liste der Einbindungsoptionen finden Sie im blobfuse-Repository.For a full list of mount options, check the blobfuse repository.

Führen Sie zum Einbinden von Blobfuse den folgenden Befehl für den Benutzer aus.To mount blobfuse, run the following command with your user. Dieser Befehl bindet den unter „/path/to/fuse_connection.cfg“ angegebenen Container am Speicherort „/mycontainer“ ein.This command mounts the container specified in '/path/to/fuse_connection.cfg' onto the location '/mycontainer'.

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

Sie sollten jetzt über die regulären Dateisystem-APIs auf Ihre Blockblobs zugreifen können.You should now have access to your block blobs through the regular file system APIs. Der Benutzer, der das Verzeichnis bereitstellt, ist die einzige Person, die standardmäßig darauf zugreifen kann, sodass der Zugriff gesichert ist.The user who mounts the directory is the only person who can access it, by default, which secures the access. Um den Zugriff für alle Benutzer zuzulassen, können Sie für die Einbindung die Option -o allow_other verwenden.To allow access to all users, you can mount via the option -o allow_other.

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

Nächste SchritteNext steps