Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel enthält Anleitungen zum Einbinden eines Containers in Azure Blob Storage von einer Linux-basierten Azure-VM oder einem Linux-System, das lokal unter Verwendung des NFS 3.0-Protokolls (Network File System) ausgeführt wird. Weitere Informationen zur Unterstützung des NFS 3.0-Protokolls in Blob Storage finden Sie unter Unterstützung für Network File System 3.0 (NFS) für Azure Blob Storage.
Schritt 1: Erstellen eines virtuellen Azure-Netzwerks
Ihr Speicherkonto muss in einem virtuellen Netzwerk enthalten sein. Ein virtuelles Netzwerk ermöglicht es Clients, eine sichere Verbindung mit Ihrem Speicherkonto herzustellen. Weitere Informationen zu Azure Virtual Network und zum Erstellen eines virtuellen Netzwerks finden Sie in der Dokumentation zu Virtual Network.
Clients im selben virtuellen Netzwerk können Container in Ihr Konto einbinden. Sie können auch einen Container von einem Client bereitstellen, der in einem lokalen Netzwerk ausgeführt wird, aber Sie müssen zuerst Ihr lokales Netzwerk mit Ihrem virtuellen Netzwerk verbinden. Weitere Informationen finden Sie unter Unterstützte Netzwerkverbindungen.
Schritt 2: Konfigurieren der Netzwerksicherheit
Derzeit besteht die einzige Möglichkeit zum Sichern der Daten in Ihrem Speicherkonto in der Verwendung eines virtuellen Netzwerks und anderer Netzwerksicherheitseinstellungen. Weitere Informationen finden Sie unter Netzwerksicherheitsempfehlungen für Blob Storage.
Alle anderen Tools, die zum Sichern von Daten verwendet werden, können nicht verwendet werden, um eine NFS 3.0-Anforderung zu autorisieren. Tools umfassen Kontoschlüsselautorisierung, Microsoft Entra-Sicherheit und Zugriffssteuerungslisten (Access Control Lists, ACLs). Wenn Sie der ACL eines Blobs oder Verzeichnisses einen Eintrag für einen benannten Benutzer oder eine benannte Gruppe hinzufügen, wird diese Datei für Nicht-Root-Benutzer auf dem Client unzugänglich. Sie müssen diesen Eintrag entfernen, um den Zugriff auf Nichtrootbenutzer auf dem Client wiederherzustellen.
Wichtig
Das NFS 3.0-Protokoll verwendet die Ports 111 und 2048. Wenn Sie eine Verbindung aus einem lokalen Netzwerk heraus herstellen, stellen Sie sicher, dass Ihr Client die ausgehende Kommunikation über diese Ports zulässt. Wenn Sie Zugriff auf bestimmte virtuelle Netzwerke gewährt haben, stellen Sie sicher, dass alle netzwerksicherheitsgruppen, die diesen virtuellen Netzwerken zugeordnet sind, keine Sicherheitsregeln enthalten, die eingehende Kommunikation über diese Ports blockieren.
Schritt 3: Erstellen und Konfigurieren eines Speicherkontos
Um einen Container mithilfe von NFS 3.0 einzubinden, müssen Sie ein Speicherkonto erstellen. Sie können vorhandene Konten nicht aktivieren.
Das NFS 3.0-Protokoll wird für Standardspeicherkonten vom Typ „Universell V2“ und für Blockblob-Speicherkonten vom Typ „Premium“ unterstützt. Weitere Informationen zu diesen Speicherkontotypen finden Sie unter Speicherkontoübersicht.
Um das Konto zu konfigurieren, wählen Sie die folgenden Werte aus.
| Einstellung | Premium-Leistung | Standardleistung |
|---|---|---|
| Standort | Alle verfügbaren Regionen | Alle verfügbaren Regionen |
| Leistung | Prämie | Norm |
| Kontoart | BlockBlobStorage | Allgemeiner Zweck V2 |
| Replikation | Lokal redundanter Speicher (LRS), Zonenredundanter Speicher (ZRS) | Lokal redundanter Speicher (LRS), Zonenredundanter Speicher (ZRS), Geo redundanter Speicher (GRS) |
| Konnektivitätsmethode | Öffentlicher Endpunkt (ausgewählte Netzwerke) oder privater Endpunkt | Öffentlicher Endpunkt (ausgewählte Netzwerke) oder privater Endpunkt |
| Hierarchischer Namespace | Aktiviert | Aktiviert |
| NFS V3 | Aktiviert | Aktiviert |
Sie können die Standardwerte für alle anderen Einstellungen übernehmen.
Schritt 4: Erstellen eines Containers
Erstellen Sie einen Container in Ihrem Speicherkonto mithilfe eines der folgenden Tools oder SDKs.
| Werkzeuge | SDKs |
|---|---|
| Azure-Portal | .NETTO |
| AzCopy | Java |
| PowerShell | Python |
| Azure-Befehlszeilenschnittstelle | JavaScript |
| PAUSE |
Standardmäßig ist die Root Squash-Option eines neuen Containers No Root Squash. Sie können diese Option in Root Squash oder All Squash ändern. Weitere Informationen zu diesen Squashoptionen finden Sie in der Dokumentation Ihres Betriebssystems.
Die folgende Abbildung zeigt die Squashoptionen, wie sie im Azure-Portal angezeigt werden.
Schritt 5: Installieren des Pakets für das AZNFS-Einbindungshilfsprogramm
Das Paket für das AZNFS-Einbindungshilfsprogramm unterstützt Linux-NFS-Clients beim zuverlässigen Zugriff auf Azure Blob-NFS-Freigaben, selbst wenn sich die IP-Adresse des Endpunkts ändert. Dieses Paket führt einen Job namens aznfswatchdog im Hintergrund aus, der Änderungen an der IP-Adresse des Endpunkts für die gemounteten Freigaben überwacht.
Wenn eine Änderung erkannt wird, aktualisiert dieser Hintergrundauftrag die Regeln für die Zielnetzwerkadressenübersetzung (Destination Network Address Translation, DNAT). Weitere Informationen finden Sie unter AZNFS-Einbindungshilfsprogramm.
Stellen Sie fest, ob das Paket für das AZNFS-Einbindungshilfsprogramm auf Ihrem Client installiert ist.
systemctl is-active --quiet aznfswatchdog && echo -e "\nAZNFS mounthelper is installed! \n"Wenn das Paket installiert ist, wird die Meldung
AZNFS mounthelper is installed!angezeigt.Wenn das Paket nicht installiert ist, verwenden Sie den folgenden Befehl, um es zu installieren:
wget -O - -q https://github.com/Azure/AZNFS-mount/releases/latest/download/aznfs_install.sh | bash
AZNFS wird für die folgenden Linux-Distributionen unterstützt:
Ubuntu (18.04 LTS, 20.04 LTS, 22.04 LTS, 24.04 LTS)
RedHat7, RedHat8, RedHat9, RedHat10
Rocky8, Rocky9
CentOS7, CentOS8
SUSE (SLES 15)
Tipp
AZNFS 3.0 befindet sich jetzt in der öffentlichen Vorschau. Diese Version bietet einen höheren Durchsatz, unterstützt größere Dateien, verbessert die Metadatenleistung und beseitigt Benutzergruppeneinschränkungen. Informationen zu Verbesserungen und Anleitungen zum Testen von AZNFS 3.0 finden Sie im AZNFS-Wiki.
Schritt 6: Einbinden des Containers
Erstellen Sie ein Verzeichnis auf Ihrem Linux-System, und binden Sie dann den Container in das Speicherkonto ein.
Erstellen Sie in Ihrem Linux-System ein Verzeichnis:
mkdir -p /nfsdataBinden Sie den Container mithilfe einer der folgenden Methoden ein. Ersetzen Sie in beiden Methoden den
<storage-account-name>Platzhalter durch den Namen Ihres Speicherkontos. Ersetzen Sie<container-name>durch den Namen Ihres Containers.So legen Sie fest, dass die Freigabe beim Neustart automatisch eingebunden wird:
Erstellen Sie einen Eintrag in der
/etc/fstabDatei, indem Sie die folgende Zeile hinzufügen:<storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdata aznfs defaults,sec=sys,vers=3,nolock,proto=tcp,nofail,_netdev 0 0Führen Sie den folgenden Befehl aus, um die
/etc/fstabEinträge sofort zu verarbeiten, und versuchen Sie anschließend, den vorherigen Pfad zu mounten.mount /nfsdata
Führen Sie für ein temporäres Einbinden, das bei Neustarts nicht beibehalten wird, den folgenden Befehl aus:
mount -t aznfs -o sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdataMithilfe der Einbindungsoption
-t aznfsstellen Sie sicher, dass der NFS-Client immer ordnungsgemäß mit dem Speicherendpunkt verbunden bleibt, selbst wenn sich die Endpunkt-IP-Adresse nach der Einbindung ändert. NFS-Freigaben, die mithilfe der Einbindungsoption-t nfseingebunden werden, werden möglicherweise vom Speicherendpunkt getrennt, wenn sich die IP-Adresse dieses Endpunkts ändert.Weitere optionale Parameter sind mit dem Mount-Befehl verfügbar. Diese Parameter wirken sich in erster Linie auf das clientseitige Verhalten aus. Der
sysWert ist der einzige Wert, den diesecOption unterstützt.Die
nconnectMount-Option funktioniert nur für Clients mitnconnectAzure-Unterstützung. Die Verwendung dernconnectOption auf einem nicht unterstützten Client verringert den Durchsatz und führt dazu, dass Befehle Zeitüberschreitungen haben oder falsch funktionieren.Weitere Informationen dazu, wie Sie sicherstellen können, dass Ihr Client Über Azure-Unterstützung
nconnectverfügt, finden Sie unter "Erhöhen der Anzahl von TCP-Verbindungen".
Beheben allgemeiner Fehler
| Fehler | Ursache/Lösung |
|---|---|
Access denied by server while mounting |
Stellen Sie sicher, dass der Client in einem unterstützten Subnetz ausgeführt wird. Weitere Informationen finden Sie unter "Unterstützte Netzwerkspeicherorte". |
No such file or directory |
Sie müssen den Befehl zum Einbinden und die zugehörigen Parameter direkt im Terminal eingeben und können nicht „Kopieren und einfügen“ verwenden. Wenn Sie diesen Befehl oder einen Teil davon aus einer anderen Anwendung kopieren und in das Terminal einfügen, kann dies dazu führen, dass ausgeblendete Zeichen in den eingefügten Informationen diesen Fehler verursachen. Dieser Fehler kann auch auftreten, wenn das Konto nicht für NFS 3.0 aktiviert ist. |
Permission denied |
Der Standardmodus eines neu erstellten NFS 3.0-Containers ist 0750. Nichtrootbenutzer haben keinen Zugriff auf das Volume. Wenn der Zugriff von nichtroot-Benutzern erforderlich ist, müssen Stammbenutzer den Modus in 0755 ändern. Hier ist ein Beispielbefehl: sudo chmod 0755 /nfsdata |
EINVAL ("Invalid argument") |
Dieser Fehler kann angezeigt werden, wenn ein Client versucht, folgendes zu erreichen:
|
EROFS ("Read-only file system") |
Dieser Fehler kann angezeigt werden, wenn ein Client versucht, folgendes zu erreichen:
|
NFS3ERR_IO/EIO ("Input/output error") |
Dieser Fehler kann auftreten, wenn ein Client versucht, Attribute für Blobs zu lesen, zu schreiben oder zu festlegen, die in der Archivzugriffsebene gespeichert sind. |
OperationNotSupportedOnSymLink Fehler |
Dieser Fehler kann bei einem Schreibvorgang über eine Blob Storage- oder Azure Data Lake Storage-API zurückgegeben werden. Die Verwendung dieser APIs zum Schreiben oder Löschen symbolischer Verknüpfungen, die mit NFS 3.0 erstellt werden, ist nicht zulässig. Sie müssen den NFS 3.0-Endpunkt verwenden, um mit symbolischen Verknüpfungen zu arbeiten. |
mount: /nfsdata: bad option; |
Installieren Sie das NFS-Hilfsprogramm mithilfe von sudo apt install nfs-common. |
Connection Timed Out |
Stellen Sie sicher, dass der Client ausgehende Kommunikation über die Ports 111 und 2048 zulässt. Das NFS 3.0-Protokoll verwendet diese Ports. Stellen Sie sicher, dass Sie das Speicherkonto mithilfe des Blob Storage-Endpunkts und nicht mit dem Data Lake Storage-Endpunkt bereitstellen. |
Einschränkungen und Problembehandlung für das AZNFS-Einbindungshilfsprogramm
Weitere Informationen finden Sie unter AZNFS Mount Helper.