Freigeben über


Netzwerkdateisystem (NFS) 3.0-Protokollunterstützung für Azure Blob Storage

Blob Storage unterstützt jetzt das NFS 3.0-Protokoll (Network File System). Diese Unterstützung bietet Linux-Dateisystemkompatibilität im Hinblick auf Maßstab und Preis des Objektspeichers und ermöglicht es Linux-Clients, einen Container im Blob-Speicher von einer Azure-VM oder einem lokalen Computer bereitzustellen.

Es war immer eine Herausforderung, umfangreiche Legacy-Workloads wie High Performance Computing (HPC) in der Cloud auszuführen. Ein Grund dafür ist, dass Anwendungen häufig herkömmliche Dateiprotokolle wie network file system (NFS) verwenden, um auf Daten zuzugreifen. Außerdem haben sich native Cloudspeicherdienste auf Objektspeicher mit einem flachen Namespace und umfangreichen Metadaten statt auf Dateisysteme konzentriert, die einen hierarchischen Namespace und effiziente Metadatenvorgänge bereitstellen.

Blob Storage unterstützt nun einen hierarchischen Namespace, und in Kombination mit der NFS 3.0-Protokollunterstützung erleichtert Azure die Ausführung von Legacyanwendungen über den großen Cloudobjektspeicher.

Anwendungen und Workloads für die Verwendung von NFS 3.0 mit Blob Storage

Das NFS 3.0-Protokollfeature ist für hochskalierte, umfangreiche, leselastige Workloads mit sequenzieller E/A optimiert. Es ist ideal für Szenarien mit mehreren Lesern und zahlreichen Threads, bei denen der Durchsatz wichtiger ist als niedrige Latenz. Häufige Beispiele sind:

High-Performance Computing (HPC) – HPC-Aufträge umfassen häufig Tausende von Kernen, die dieselben großen Datasets gleichzeitig lesen. Das NFS 3.0-Protokollfeature verwendet den Objektspeicherdurchsatz, um herkömmliche Dateiserverengpässe zu beseitigen. Beispiele

  • Genomsequenzierung: Verarbeiten massiver DNA-Datasets.

  • Modellierung finanzieller Risiken: Monte Carlo Simulationen zu historischen Daten.

  • Seismische Analyse: Geologische Daten zur Öl- und Gasforschung.

  • Wettervorhersage: Modellieren von atmosphärischen Daten für Klima- und Sturmvorhersage.

Big Data & Analytics (Data Lakes) – Viele Analysetools erfordern hierarchische Verzeichnisse. BlobNFS (über Azure Data Lake Storage Gen2) liefert diese Struktur und unterstützt standardmäßige Dateiprotokolle. Beispiele

  • Maschinelles Lernen: Fütterung von Schulungsdaten in GPU-Cluster mithilfe von Standarddatei-E/A.

  • Protokollanalyse: Aggregieren von Protokollen aus Tausenden von Quellen.

Advanced Driver Assistance Systems (ADAS) – ADAS-Workflows erzeugen Petabytes sequenzieller Sensordaten wie LiDAR-Punktwolken und hochauflösende Kamerafeeds, die effizient aufgenommen und analysiert werden müssen, um Simulationen und Modellschulungen durchzuführen. Beispiel:

  • Speichern von Roh-LiDAR-Scans und Multikamera-Videostreams von autonomen Testfahrzeugen mithilfe von NFS 3.0, und führen Sie dann umfangreiche Replaysimulationen über Tausende von Computeknoten hinweg aus, um Wahrnehmungsalgorithmen zu validieren.

Media & Entertainment – Renderingfarmen benötigen effizienten Zugriff auf große Objektbibliotheken. NFS 3.0 über BLOB stellt eine Dateischnittstelle für ältere Renderingtools bereit, die Dateipfade erwarten. Beispiele

  • Video-Rendering: Verteilte Knoten, die Quellressourcen lesen.

  • Transcodierung: Konvertieren großer roher Videodateien in Streamingformate.

Datenbanksicherung – Dieses Feature bietet ein kostengünstiges, hochdurchsatzreiches NFS 3.0-Ziel ohne komplexe Connectors oder teure Momentaufnahmen. Beispiele

  • Oracle RMAN kann große Backup-Teile direkt für die langfristige Archivierung schreiben und die direkte Wiederherstellung von jeder NFS-bereitgestellten Linux-VM ermöglichen.

Wann sollte NFS 3.0 nicht mit Blob Storage verwendet werden?

Vermeiden Sie Dateifreigaben für allgemeine Zwecke oder transaktionale Workloads aufgrund der Eigenschaften von Object Storage:

Workloadtyp Grund Bessere Alternative
Transaktionsdatenbanken Erfordert eine präzise Sperrung, Unter millisekundenlatenz und häufige zufällige Schreibvorgänge. Managed Disks oder Azure NetApp Files oder Azure Files
In-Place Dateibearbeitung Das Bearbeiten von Dateien erzwingt komplette Blob-Umschreibungen und macht Abläufe ineffizient. Azure Files

NFS 3.0 und der hierarchische Namespace

Die NFS 3.0-Protokollunterstützung erfordert, dass Blobs in einem hierarchischen Namespace organisiert werden. Sie können beim Erstellen eines Speicherkontos einen hierarchischen Namespace aktivieren. Die Möglichkeit, einen hierarchischen Namespace zu verwenden, wurde durch Azure Data Lake Storage eingeführt. Er organisiert Objekte (Dateien) genauso in eine Hierarchie von Verzeichnissen und Unterverzeichnissen, wie das Dateisystem auf Ihrem Computer organisiert ist. Der hierarchische Namespace wird linear skaliert und beeinträchtigt weder die Datenkapazität noch die Leistung. Verschiedene Protokolle werden aus dem hierarchischen Namespace erweitert. Das NFS 3.0-Protokoll ist eines der verfügbaren Protokolle.

Hierarchischer Namespace

Als Blockblobs gespeicherte Daten

Wenn Ihre Anwendung eine Anforderung mithilfe des NFS 3.0-Protokolls sendet, wird diese Anforderung in eine Kombination aus Blockblobvorgängen übersetzt. Beispielsweise werden NFS 3.0-Anforderungen zum Lesen von Remoteprozeduraufrufen (Remote Procedure Calls, RPCs) in einen Get Blob-Vorgang (Blob abrufen) übersetzt. NFS 3.0-Anforderungen zum Schreiben von Remoteprozeduraufrufen werden in eine Kombination aus Get Block List (Blockierungsliste abrufen), Put Block (Block festlegen) und Put Block List (Blockierungsliste festlegen) übersetzt.

Blockblobs sind optimiert, damit große Mengen von Daten mit vielen Lesevorgängen effizient verarbeitet werden. Blockblobs werden aus Blöcken zusammengesetzt. Jeder Block wird durch eine Block-ID identifiziert. Ein Blockblob kann bis zu 50.000 Blöcke enthalten. Jeder Block in einem Blockblob kann eine andere Größe haben – bis zur maximalen Größe, die für die von Ihrem Konto verwendete Dienstversion zulässig ist.

NFSv3 RPC REST-API-Vorgang
Metadaten und Attribute
Nfs3GetAttr Blob-Eigenschaften abrufen
Nfs3SetAttr Blob-Eigenschaften festlegen (+ wenn die Dateigröße festgelegt ist, wird Nfs3Write aufgerufen)
Nfs3Lookup Blob-Eigenschaften abrufen
Nfs3Access Blob-Eigenschaften abrufen
Nfs3Readlink Blob-Eigenschaften abrufen
Nfs3FsStat Blob-Eigenschaften abrufen
Nfs3Fsinfo Blob-Eigenschaften abrufen
Nfs3Pathconf Blob-Eigenschaften abrufen
Directory-Aufzählung
Nfs3ReadDir Blobs auflisten
Nfs3ReadDirPlus Blobs auflisten
Lesevorgänge
Nfs3Read Abrufen von Blob
Nfs3ReadLink Blob-Eigenschaften abrufen + Blob der zugrunde liegenden Datei abrufen
Schreibvorgänge
NFs3Write Blockliste abrufen (1) + Block (x) platzieren + Blockliste platzieren (1)
Nfs3Commit Kein Vorgang
Dateilebenszyklus
Nfs3Create Blob ablegen und Blob-Eigenschaften abrufen
Nfs3Remove Blob löschen
Nfs3Rename Nicht unterstützt (keine 1-1-Zuordnung)
Nfs3Link Nicht unterstützt
Verzeichnisverwaltung
Nfs3MkDir Blob ablegen und Blob-Eigenschaften abrufen
Nfs3RmDir Blob platzieren
Andere
Nfs3SymLink Blob ablegen und Blob-Eigenschaften abrufen
Nfs3MkNod Nicht unterstützt
Nfs3Null Kein Vorgang

Cachetreffer-/Cachefehler-Ergebnisse können zusätzliche Anforderungen für „Get Blob“-Eigenschaften auslösen, um Pre- und Post-Operation-Attribute abzurufen. Die Transaktionsanzahl für End-to-End-Vorgänge in Blob Storage (z. B. Lese- oder Schreibvorgänge) wird von mehreren Variablen beeinflusst und kann sich bei verschiedenen Iterationen unterscheiden. Verwenden Sie zum Schätzen der Transaktionsanzahl für repräsentative Workloads die Blob Storage Protokolle für Beispielszenarien.

Allgemeiner Workflow: Einbinden eines Speicherkontocontainers

Ihre Linux-Clients können einen Container im Blob-Speicher von einem Azure-virtuellen Computer (VM) oder einem lokalen Computer einbinden. Um einen Storage-Konto Container zu mounten, müssen Sie diese Dinge tun.

  1. Erstellen eines Azure Virtual Network (VNet).

  2. Konfigurieren der Netzwerksicherheit.

  3. Erstellen und Konfigurieren des Speicherkontos, das nur Datenverkehr aus dem VNet akzeptiert.

  4. Erstellen eines Containers im Speicherkonto.

  5. Einbinden des Containers.

Eine Schrittanleitung finden Sie unter Einbinden von Blob-Speicher unter Linux mithilfe des NFS 3.0-Protokolls (Network File System).

Netzwerksicherheit

Der Datenverkehr muss aus einem VNet stammen. Ein VNet ermöglicht Clients eine sichere Verbindung mit Ihrem Speicherkonto. Die einzige Möglichkeit zum Sichern der Daten in Ihrem Konto besteht darin, ein VNet und andere Netzwerksicherheitseinstellungen zu verwenden. Jedes andere Tool, das zum Sichern von Daten verwendet wird, einschließlich Kontoschlüsselautorisierung, Microsoft Entra Sicherheit und Zugriffssteuerungslisten (Access Control Lists, ACLs) kann nicht verwendet werden, um eine NFS 3.0-Anforderung zu autorisieren.

Weitere Informationen finden Sie unter Netzwerksicherheitsempfehlungen für Blob-Speicher.

Hinweis

Öffentliche IP-Filterung für den Zugriff auf Ihr Speicherkonto wird nicht unterstützt.

Unterstützte Netzwerkverbindungen

Clients können über einen öffentlichen oder privaten Endpunkt eine Verbindung herstellen, vorausgesetzt, die Verbindung stammt von einem der folgenden Netzwerkstandorte:

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 den Zugriff auf bestimmte VNets gewährt haben, stellen Sie sicher, dass Netzwerksicherheitsgruppen, die diesen VNets zugeordnet sind, keine Sicherheitsregeln enthalten, die eingehende Kommunikation über diese Ports blockieren.

Einschränkungen und bekannte Probleme

Im Artikel Bekannte Probleme finden Sie eine vollständige Liste der Probleme und Einschränkungen im aktuellen Release der NFS 3.0-Unterstützung.

Preise

Weitere Informationen finden Sie auf der Seite Azure Blob Storage pricing für Datenspeicherung und Transaktionskosten.

Weitere Informationen