Migrieren zu NFS Azure-Dateifreigaben

✔️ Gilt für: Klassische NFS-Dateifreigaben, die mit dem Microsoft.Storage-Ressourcenanbieter erstellt wurden

✖️ Gilt nicht für: NFS-Dateifreigaben, die mit dem Ressourcenanbieter Microsoft.FileShares erstellt wurden, oder klassische SMB-Dateifreigaben, die mit dem Ressourcenanbieter Microsoft.Storage erstellt wurden

In diesem Artikel werden die grundlegenden Aspekte der Migration von Linux-Dateiservern zu NFS Azure-Dateifreigaben behandelt, die nur als SSD -Dateifreigaben (Premium) verfügbar sind. Es vergleicht außerdem die Open Source-Dateikopiertools fpsync und rsync, um zu verstehen, wie sie beim Kopieren von Daten auf Azure-Dateifreigaben funktionieren.

Hinweis

Azure Files unterstützt keine NFS-Zugriffssteuerungslisten (Access Control Lists, ACLs).

Voraussetzungen

Du brauchst mindestens eine NFS-Azure-Dateifreigabe, die auf eine Linux-virtuelle Maschine (VM) montiert ist. Informationen zum Erstellen einer Datei finden Sie unter Erstellen einer klassischen Azure-Dateifreigabe. Mounten Sie das Share, indem Sie nconnect verwenden, um mehrere TCP-Verbindungen für bessere Leistung zu nutzen. Weitere Informationen finden Sie unter Verbessern der NFS-Azure-Dateifreigabeleistung.

Migrationstools

Für die Übertragung von Daten an NFS-Dateifreigaben stehen zahlreiche Tools zur Verfügung. Allerdings sind nicht alle effizient, wenn ein verteiltes Dateisystem mit unterschiedlichen Leistungsaspekten verwendet wird (im Gegensatz zu einem lokalen Setup). In einem verteilten Dateisystem beinhaltet jeder Netzwerkaufruf einen Roundtrip zu einem Server, der möglicherweise nicht lokal ist. Daher ist es wichtig, die für Netzwerkanrufe benötigte Zeit zu optimieren, um die bestmögliche Leistung und eine effiziente Datenübertragung über das Netzwerk zu erzielen.

Verwenden von Azure Storage Mover

Sie können jetzt Azure Storage Mover verwenden, um Ihre NFSv3- und NFSv4-Dateifreigaben zu NFSv4.1 Azure-Dateifreigaben zu migrieren. Azure Storage Mover ist ein vollständig verwalteter Migrationsdienst, mit dem Sie lokale Dateien und Ordner zu Azure migrieren können, während Ausfallzeiten minimiert werden.

Vergleich von fpsync und rsync

rsync verfügt zwar nur über einen einzelnen Thread, ist aber trotzdem ein vielseitiges Open-Source-Tool zum Kopieren von Dateien. Es kann Daten lokal, an einen bzw. von einem anderen Host (über eine beliebige Remoteshell) oder an einen bzw. von einem rsync-Remotedaemon kopieren. Es bietet zahlreiche Optionen und ermöglicht die flexible Angabe der zu kopierenden Dateien. fpsync ist dagegen eine Anwendung mit mehreren Threads und bietet daher einige Vorteile. Hierzu zählt unter anderem die Möglichkeit, rsync-Aufträge parallel auszuführen.

Dieser Artikel erklärt, wie fpsync verwendet wird, um Daten von einem Linux-Dateiserver auf NFS-Azure-Dateifreigaben zu übertragen.

Zum Kopieren der Daten verwendet fpsync entweder rsync (Standardeinstellung), cpio oder tar-Tools. Das Tool berechnet Teilmengen des Quellverzeichnisses src_dir/ und erzeugt Synchronisierungsaufträge, um sie mit dem Zielverzeichnis dst_dir/ zu synchronisieren. Es führt Synchronisierungsaufträge dynamisch aus und durchforstet gleichzeitig das Dateisystem. Dadurch eignet es sich gut für die effiziente Migration großer Dateisysteme sowie zum Kopieren umfangreicher Datasets mit mehreren Dateien.

Hinweis

fpsync synchronisiert nur Verzeichnisinhalte, nicht das Quellverzeichnis selbst. Im Gegensatz zu rsync erzwingt fpsync den abschließenden Schrägstrich („/“) im Quellverzeichnis. Dadurch ist im Zielverzeichnis nach der Synchronisierung kein Unterverzeichnis mit dem Namen des Quellverzeichnisses enthalten.

Installieren von fpart

Um fpsync zu verwenden, musst du den fpart-Dateisystem-Partitioner installieren. Installieren Sie fpart in der Linux-Distribution Ihrer Wahl. Nach der Installation erscheint fpsync unter /usr/bin/.

Verwenden Sie unter Ubuntu den apt-Paket-Manager, um fpart zu installieren.

sudo apt-get install fpart

Kopieren von Daten aus der Quelle in das Ziel

Stellen Sie sicher, dass Ihre Azure-Zieldateifreigabe (Ziel) auf einem virtuellen Linux-Computer eingebunden ist. Siehe Voraussetzungen.

Kopieren Sie Ihre Daten im Falle einer vollständigen Migration in drei Phasen:

  1. Baselinekopie: Diese Option wird verwendet, um Daten aus der Quelle in das Ziel zu kopieren, wenn am Ziel noch keine Daten vorhanden sind. Für die Baselinekopie wird die Verwendung von fpsync mit cpio als Kopiertool empfohlen.
  2. Inkrementelle Kopie: Diese Option wird verwendet, um lediglich die inkrementellen Änderungen aus der Quelle in das Ziel zu kopieren. Für inkrementelle Synchronisation verwenden fpsync Sie mit rsync als Kopierwerkzeug. Führe diesen Befehl mehrfach aus, um alle Änderungen zu erfassen.
  3. Abschließender Durchgang: Ein abschließender Durchgang ist erforderlich, um am Ziel alle Dateien zu löschen, die in der Quelle nicht vorhanden sind.

Beim Kopieren von Daten mit fpsync wird immer eine Version des folgenden Befehls verwendet:

fpsync -m <specify copy tool - rsync/cpio/tar> -n <parallel transfers> <absolute source path> <absolute destination path>

Baselinekopie

Verwenden Sie für eine Baselinekopie fpsync mit cpio.

fpsync -m cpio -n <parallel transfers> <absolute source path> <absolute destination path>

Weitere Informationen finden Sie unter Unterstützung von cpio und tar.

Inkrementelles Kopieren

Für inkrementelle Synchronisation verwenden fpsync Sie das Standard-Kopierwerkzeug (rsync). Führe diesen Befehl mehrmals aus, um alle Änderungen zu erfassen.

fpsync -n <parallel transfers> <absolute source path> <absolute destination path>

Standardmäßig gibt dies fpsync folgende rsync Optionen an: -lptgoD -v --numeric-ids. Füge dem -o option Befehl hinzufpsync, um zusätzliche rsync Optionen zu spezifizieren.

Abschließender Durchgang

Nach mehreren inkrementellen Synchronisierungen müssen Sie einen abschließenden Durchgang ausführen, um alle Dateien an diesem Ziel zu löschen, die in der Quelle nicht vorhanden sind. Dazu können Sie entweder manuell rsync --delete ausführen, um zusätzliche Dateien aus dem Verzeichnis /data/dst/ zu löschen, oder Sie können fpsync mit der Option „-E“ verwenden. Ausführliche Informationen finden Sie unter Der abschließende Durchgang.

Vergleich von rsync und fpsync mit verschiedenen Datasets

In diesem Abschnitt wird die Leistung von rsync und fpsync mit verschiedenen Datasets verglichen.

Datasets und Konfiguration

Die folgende Tabelle listet die verschiedenen Datensätze auf, die zum Vergleich der Leistung von Kopierwerkzeugen unter unterschiedlichen Arbeitslasten verwendet werden.

Konfigurationsnr. Kopiertyp Dateianzahl Verzeichnisanzahl Dateigröße Gesamtgröße
1.1 Baselinekopie 1 Mio. 1 0–32 KiB 18 GiB
1.2 Inkrementell (Deltaänderung) 1 Mio. 1 0–32 KiB 18 GiB
2 Baselinekopie 191.345 3.906 0–32 KiB 3 GiB
3 Baselinekopie 5.000 1 10 MiB 50 GiB

Die Tests wurden auf virtuellen Azure-Computern vom Typ „Standard_D8s_v3“ mit 8 vCPUs, 32 GiB Arbeitsspeicher und mehr als 1 TiB Speicherplatz für große Datasets durchgeführt. Als Ziel wurden NFS Azure-Dateifreigaben mit einer bereitgestellten Größe von mehr als 1 TiB konfiguriert.

Experimente und Ergebnisse: rsync verglichen mit fpsync

Tests zeigen, dass fpsync am besten funktioniert, wenn man 64 Threads mit rsync und 16 Threads mit cpio für eine Azure NFS-Dateifreigabe verwendet, die mit gemountet istnconnect=8. Die tatsächlichen Ergebnisse variieren je nach Konfiguration und Datensätzen.

Hinweis

Der Durchsatz für Azure Files kann deutlich höher sein als in den folgenden Diagrammen angegeben. Einige der Experimente wurden der Einfachheit halber bewusst mit kleinen Datasets durchgeführt.

Konfiguration 1

Für ein einzelnes Verzeichnis mit einer Million kleinen Dateien und einer Gesamtgröße von 18 GiB haben wir diesen Test sowohl als Baselinekopie als auch als inkrementelle Kopie durchgeführt.

Die folgende Grafik zeigt die Ergebnisse einer Basiskopie von der Quelle bis zum Ziel.

Diagramm mit den Testergebnissen der Konfiguration 1 für eine Basisplankopie.

Das folgende Diagramm zeigt die Ergebnisse einer inkrementellen Kopie (Delta-Veränderung).

Diagramm mit den Testergebnissen der Konfiguration 1 für eine inkrementelle Kopie.

Konfiguration 2

Die folgende Grafik zeigt die Ergebnisse einer Basiskopie von 191.345 kleinen Dateien in 3.906 Verzeichnissen mit einer Gesamtgröße von 3 GiB.

Diagramm mit den Testergebnissen der Konfiguration 2 für eine Basisplankopie.

Konfiguration 3

Die folgende Grafik zeigt die Ergebnisse einer Basiskopie von 5.000 großen Dateien (10 MiB) in einem einzigen Verzeichnis mit einer Gesamtgröße von 50 GiB.

Diagramm mit den Testergebnissen der Konfiguration 3 für eine Basisplankopie.

Zusammenfassung der Ergebnisse

Bei Verwendung von Anwendungen mit mehreren Threads wie fpsync können Durchsatz und IOPS bei der Migration zu NFS Azure-Dateifreigaben verbessert werden (verglichen mit Kopiertools wie rsync, die nur über einen einzelnen Thread verfügen). Unsere Tests haben Folgendes ergeben:

  • Durch die Verteilung der Daten auf das Verzeichnis können Sie den Migrationsprozess parallelisieren und somit eine bessere Leistung erzielen.
  • Das Kopieren von Daten aus größeren Dateien führt zu einer besseren Leistung als das Kopieren von Daten aus kleineren Dateien.

Die Ergebnisse sind in der folgenden Tabelle zusammengefasst:

Konfigurationsnr. Dateianzahl Verzeichnisanzahl Dateigröße Gesamtgröße rsync-Dauer rsync-Durchsatz fpsync-Dauer fpsync-Durchsatz Durchsatzsteigerung
1.1 (Baseline) 1 Mio. 1 0–32 KiB 18 GiB 837,06 Minuten 0,33 MiB/s 228,16 Minuten 1,20 MiB/s 267 Prozent
1.2 (inkrementell) 1 Mio. 1 0–32 KiB 18 GiB 84,02 Minuten 3,25 MiB/s 7,5 Minuten 36,41 MiB/s 1.020 Prozent
2 (Baseline) 191.345 3.906 0–32 KiB 3 GiB 191,86 Minuten 0,27 MiB/s 8,47 Minuten 6,04 MiB/s 2.164 Prozent
3 (Baseline) 5.000 1 10 MiB 50 GiB 8,12 Minuten 105,04 MiB/s 2,76 Minuten 308,90 MiB/s 194 %

Haftungsausschluss für Drittanbieterinformationen

Bei den in diesem Artikel erwähnten Open-Source-Tools handelt es sich um bekannte Drittanbieterlösungen. Microsoft entwickelt, besitzt oder unterstützt diese Tools weder direkt noch indirekt. Sie sind dafür verantwortlich, die Softwarelizenz und die Support-Erklärung in der Dokumentation des Drittanbieters zu prüfen.

Nächste Schritte