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.
✔️ 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:
- 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.
-
Inkrementelle Kopie: Diese Option wird verwendet, um lediglich die inkrementellen Änderungen aus der Quelle in das Ziel zu kopieren. Für inkrementelle Synchronisation verwenden
fpsyncSie mitrsyncals Kopierwerkzeug. Führe diesen Befehl mehrfach aus, um alle Änderungen zu erfassen. - 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.
Das folgende Diagramm zeigt die Ergebnisse einer inkrementellen Kopie (Delta-Veränderung).
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.
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.
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.