Teilen über


Verwenden von Robocopy zum Migrieren zu Azure-Dateifreigaben

In diesem Migrationsartikel wird die Verwendung von RoboCopy zum Verschieben oder Migrieren von Dateien zu einer SMB-Azure-Dateifreigabe beschrieben. Robocopy ist ein vertrauenswürdiges und bekanntes Hilfsprogramm zum Kopieren von Dateien, außerdem bietet es Funktionen, durch die es sich gut für Migrationsvorgänge eignet. Es verwendet das SMB-Protokoll, sodass es sehr vielseitig auf jede Kombination aus Quelle und Ziel anwendbar ist, die SMB unterstützt.

  • Datenquellen: Jede Quelle, die das SMB-Protokoll unterstützt, z. B. NAS (Network Attached Storage), Windows- oder Linux-Server, eine andere Azure-Dateifreigabe u. v. m.
  • Migrationsroute: vom Quellspeicherort ⇒ Windows-Computer mit Robocopy ⇒ Azure-Dateifreigabe
  • Keine lokale Zwischenspeicherung von Dateien: Da das endgültige Ziel darin besteht, die Azure-Dateifreigaben direkt in der Cloud zu verwenden, ist nicht geplant, die Azure-Dateisynchronisierung zu verwenden.

Es gibt viele verschiedene Migrationsrouten für unterschiedliche Quell- und Bereitstellungskombinationen. Anhand der Tabelle der Migrationsleitfäden können Sie die Migration ermitteln, die Ihren Anforderungen am besten entspricht.

Gilt für:

Dateifreigabetyp SMB NFS
Standard-Dateifreigaben (GPv2), LRS/ZRS Ja Nein
Standard-Dateifreigaben (GPv2), GRS/GZRS Ja Nein
Premium-Dateifreigaben (FileStorage), LRS/ZRS Ja Nein

AzCopy im Vergleich zu Robocopy

AzCopy und Robocopy sind zwei grundlegend verschiedene Tools zum Kopieren von Dateien. Robocopy verwendet eine beliebige Version des SMB-Protokolls. AzCopy ist ein cloudnatives Tool, das zum Verschieben von Daten verwendet werden kann, sofern sich das Ziel in Azure Storage befindet. AzCopy ist von einem REST-Protokoll abhängig.

Robocopy ist ein vertrauenswürdiges, Windows-basiertes Kopiertool, das seine Vorteile als natives Tool am besten ausspielen kann, wenn Dateien mit großer Präzision kopiert werden sollen. Robocopy unterstützt aufgrund seiner zahlreichen Funktionen und der Möglichkeit Dateien und Ordner mit vielen Einstellungsmöglichkeiten zu kopieren, eine Vielzahl von Migrationsszenarien. Weitere Informationen zur Wichtigkeit des Kopierens von Dateien mit maximaler Genauigkeit finden Sie im Abschnitt zur Dateigenauigkeit im Artikel „Migrieren zu Azure-Dateifreigaben“.

AzCopy hingegen wurde erst kürzlich erweitert, um ebenfalls Dateikopierfunktionen mit einer gewissen Genauigkeit zu unterstützen, und es wurden die ersten Funktionen auf dem Weg zu einem Migrationstool hinzugefügt. Es gibt jedoch weiterhin Lücken, und beim Vergleich von AzCopy-Flags mit Robocopy-Flags kann es leicht zu Verwechslungen bei der Funktionalität kommen.

Beispiel: Robocopy /MIR spiegelt die Quelle im Ziel, es werden also hinzugefügte, geänderte und gelöschte Dateien berücksichtigt. Ein wichtiger Unterschied zur Verwendung von AzCopy -sync besteht darin, dass gelöschte Dateien in der Quelle nicht im Ziel entfernt werden. Dadurch kann nicht von einem vollständigen Featuresatz für differenzielles Kopieren gesprochen werden. AzCopy wird jedoch stetig weiterentwickelt. Derzeit wird die Verwendung von AzCopy für Migrationsszenarien mit Azure-Dateifreigaben als Ziel nicht empfohlen.

Migrationsziele

Ziel ist es, Daten aus vorhandenen Dateifreigabeorten in Azure zu verschieben. In Azure speichern Sie Ihre Daten in nativen Azure-Dateifreigaben, die Sie ohne eine Instanz von Windows Server verwenden können. Diese Migration muss so erfolgen, dass die Integrität der Produktionsdaten und die Verfügbarkeit während der Migration gewährleistet wird. Letzteres erfordert minimale Ausfallzeiten, damit sie in normalen Wartungsfenstern stattfinden kann oder diese nur geringfügig überschreitet.

Übersicht zur Migration

Der Migrationsprozess besteht aus mehreren Phasen. Zunächst müssen Sie Azure Storage-Konten und Dateifreigaben bereitstellen. Dann konfigurieren Sie Netzwerke, stellen eventuell einen DFS-Namespace bereit (DFS-N) oder aktualisieren Ihren vorhandenen. Wenn der tatsächliche Kopiervorgang für die Daten beginnen kann, sollten Sie wiederholte, differenzielle Robocopy-Durchläufe in Betracht ziehen, um die Downtime zu minimieren. Abschließen müssen Sie Ihre Benutzer auf die neu erstellten Azure-Dateifreigaben umstellen. In den folgenden Abschnitten werden die Phasen des Migrationsprozesses ausführlich beschrieben.

Phase 1: Bereitstellen von Azure Storage-Ressourcen

In dieser Phase stellen Sie die Azure Storage-Konten und die darin enthaltenen SMB-Azure-Dateifreigaben bereit.

Denken Sie daran, dass eine Azure-Dateifreigabe in der Cloud in einem Azure Storage-Konto bereitgestellt wird. Bei Standarddateifreigaben macht dies das Speicherkonto zu einem Skalierungsziel für Leistungswerte wie IOPS und Durchsatz. Das Platzieren mehrerer Dateifreigaben in einem einzelnen Speicherkonto bedeutet, dass Sie einen freigegebenen Pool mit IOPS und Durchsatz für diese Freigaben erstellen.

Als allgemeine Regel können Sie mehrere Azure-Dateifreigaben im selben Speicherkonto zusammenfassen, wenn Sie Archivierungsfreigaben verwenden oder nur eine geringe tägliche Aktivität erwarten. Wenn Sie jedoch über sehr aktive Freigaben verfügen (Freigaben, die von vielen Benutzern und/oder Anwendungen verwendet werden), sollten Sie Speicherkonten mit jeweils einer Dateifreigabe bereitstellen. Diese Einschränkungen gelten nicht für File Storage-Konten (Premium), bei denen die Leistung für jede Freigabe explizit bereitgestellt und garantiert wird.

Hinweis

Es gilt ein Grenzwert von 250 Speicherkonten pro Abonnement und Azure-Region. Mit einer Kontingenterhöhung können Sie bis zu 500 Speicherkonten pro Region erstellen. Weitere Informationen finden Sie unter Erhöhen von Azure Storage-Kontokontingenten.

Ein weiterer Aspekt, den Sie bei der Bereitstellung eines Speicherkontos berücksichtigen sollten, ist die Redundanz. Weitere Informationen finden Sie unter Azure Files-Redundanz.

Nachdem Sie eine Liste Ihrer Freigaben erstellt haben, sollten Sie jede Freigabe dem Speicherkonto zuordnen, in dem sie erstellt wird.

Auch die Namen Ihrer Ressourcen sind wichtig. Wenn Sie z.B. mehrere Freigaben für die Personalabteilung in einem Azure-Speicherkonto gruppieren, sollten Sie einen entsprechenden Namen für das Speicherkonto wählen. Gleichermaßen sollten Sie beim Benennen Ihrer Azure-Dateifreigaben Namen verwenden, die denen der lokalen Entsprechungen ähneln.

Stellen Sie nun die entsprechende Anzahl von Azure Storage-Konten mit der entsprechenden Anzahl von Azure-Dateifreigaben bereit, indem Sie die Anweisungen unter Erstellen einer SMB-Dateifreigabe befolgen. In den meisten Fällen sollten Sie sicherstellen, dass die Region der einzelnen Speicherkonten identisch ist.

Phase 2: Vorbereiten der Nutzung von Azure-Dateifreigaben

Anhand der Informationen dieser Phase können Sie entscheiden, wie Ihre Server und Benutzer inner- und außerhalb von Azure Ihre Azure-Dateifreigaben nutzen können. Wichtigste Entscheidungen:

  • Netzwerk: Ermöglichen Sie für Ihre Netzwerke das Weiterleiten von SMB-Datenverkehr.
  • Authentifizierung: Konfigurieren Sie Azure-Speicherkonten für die Kerberos-Authentifizierung. Durch die Verwendung der identitätsbasierten Authentifizierung und des Domänenbeitritts zu Ihrem Speicherkonto können Ihre Apps und Benutzer ihre AD-Identität für die Authentifizierung verwenden.
  • Autorisierung: Zugriffssteuerungslisten (ACLs) auf Freigabeebene für jede Azure-Dateifreigabe ermöglichen AD-Benutzern und -Gruppen den Zugriff auf eine bestimmte Freigabe. Innerhalb einer Azure-Dateifreigabe gelten native NTFS-ACLs. Die auf Datei- und Ordner-ACLs basierende Autorisierung funktioniert anschließend wie bei lokalen SMB-Freigaben.
  • Geschäftskontinuität: Für die Integration von Azure-Dateifreigaben in eine vorhandene Umgebung ist es oft erforderlich, vorhandene Freigabeadressen beizubehalten. Falls Sie nicht bereits DFS-Namespaces verwenden, sollten Sie dies für Ihre Umgebung erwägen. Sie haben dann die Möglichkeit, Freigabeadressen, die von Ihren Benutzern und Skripts verwendet werden, unverändert beizubehalten. DFS-N stellt einen Namespace-Routingdienst für SMB bereit, indem Clients an Azure-Dateifreigaben umgeleitet werden.

Dieses Video ist eine Anleitung und Demo dazu, wie Azure-Dateifreigaben in fünf einfachen Schritte für Information-Worker und Apps auf sichere Weise direkt verfügbar gemacht werden können.
Das Video verweist auf die dedizierte Dokumentation für die folgenden Themen. Beachten Sie, dass Azure Active Directory jetzt Microsoft Entra ID ist. Weitere Informationen finden Sie unter Neuer Name für Azure AD.

Einbinden einer Azure-Dateifreigabe

Bevor Sie Robocopy verwenden können, müssen Sie die Azure-Dateifreigabe per SMB zugänglich machen. Die einfachste Möglichkeit besteht darin, die Freigabe als lokales Netzlaufwerk für die Windows Server-Instanz einzubinden, die Sie für Robocopy verwenden möchten.

Wichtig

Stellen Sie sicher, dass Sie die Azure-Dateifreigabe mithilfe des Speicherkonto-Zugriffsschlüssels einbinden. Verwenden Sie keine Domänenidentität. Bevor Sie eine Azure-Dateifreigabe erfolgreich auf einer lokalen Windows Server-Instanz einbinden können, müssen Sie Phase 2 „Vorbereiten der Nutzung von Azure-Dateifreigaben“ abgeschlossen haben.

Wenn Sie bereit sind, lesen Sie den Artikel Verwenden einer Azure-Dateifreigabe mit Windows. Anschließend können Sie die Azure-Dateifreigabe einbinden, für die Sie Robocopy starten möchten.

Phase 3: Robocopy

Mit dem folgenden Robocopy-Befehl werden nur die Unterschiede (aktualisierte Dateien und Ordner) aus Ihrem Quellspeicher in Ihre Azure-Dateifreigabe kopiert.

robocopy <SourcePath> <Dest.Path> /MT:20 /R:2 /W:1 /B /MIR /IT /COPY:DATSO /DCOPY:DAT /NP /NFL /NDL /XD "System Volume Information" /UNILOG:<FilePathAndName> 
Schalter Bedeutung
/MT:n Hiermit kann Robocopy mit mehreren Threads ausgeführt werden. Der Standardwert für n ist 8. Das Maximum beträgt 128 Threads. Eine hohe Anzahl von Threads trägt zwar dazu bei, die verfügbare Bandbreite auszuschöpfen, aber dies bedeutet nicht, dass Ihre Migration mit mehr Threads immer schneller ist. Tests mit Azure Files zeigen, dass mit einer Anzahl von 8 bis 20 Threads eine ausgewogene Leistung für einen ersten Kopierlauf erzielt wird. Nachfolgende Ausführungen von /MIR werden zunehmend durch die verfügbare Computeleistung und nicht durch die verfügbare Netzwerkbandbreite beeinflusst. Stimmen Sie bei nachfolgenden Ausführungen den Wert für die Threadanzahl genauer auf die Prozessorkernanzahl und die Threadanzahl pro Kern ab. Überprüfen Sie, ob Kerne für andere Tasks reserviert werden müssen, über die ein Produktionsserver verfügen könnte. Tests mit Azure Files haben gezeigt, dass bis zu 64 Threads eine gute Leistung liefern, aber nur, wenn Ihre Prozessoren sie gleichzeitig aktiv halten können.
/R:n Dies ist die maximale Anzahl der Wiederholungsversuche für eine Datei, bei der beim ersten Kopierversuch ein Fehler auftritt. Robocopy führt n Versuche durch, bevor bei der Ausführung für die Datei ein dauerhafter Kopierfehler auftritt. Sie können die Leistung Ihres Durchlaufs optimieren: Wählen Sie einen Wert von 2 oder 3, wenn Sie annehmen, dass Timeouts in der Vergangenheit zu Fehlern geführt haben. Dies kann bei WAN-Verbindungen häufiger vorkommen. Wählen Sie keine Wiederholung oder den Wert 1, wenn Sie glauben, dass die Datei nicht kopiert werden konnte, weil sie aktiv in Verwendung war. Ein erneuter Versuch ein paar Sekunden später reicht möglicherweise nicht aus, um den Status der Datei zu ändern. Benutzer oder Apps, die die Datei geöffnet haben, benötigen möglicherweise einige Stunden mehr Zeit. Wenn Sie in diesem Fall akzeptieren, dass die Datei nicht kopiert wurde, und dies in einem späteren geplanten Robocopy-Lauf nachholen, kann die Datei möglicherweise erfolgreich kopiert werden. So kann der aktuelle Durchlauf schneller abgeschlossen werden, ohne sich durch zahlreiche Wiederholungsversuche in die Länge zu ziehen, die letztlich dazu führen, dass ein Großteil der Kopiervorgänge fehlschlägt, weil die Dateien nach Ablauf des Zeitlimits für Wiederholungsversuche weiterhin geöffnet sind.
/W:n Hiermit wird die Zeit angegeben, die Robocopy vor dem Versuch wartet, eine Datei zu kopieren, die bei einem vorherigen Versuch nicht erfolgreich kopiert wurde. n entspricht der Anzahl der zwischen Wiederholungsversuchen zu wartenden Sekunden. /W:n wird häufig in Verbindung mit /R:n verwendet.
/B Führt Robocopy in dem Modus aus, den auch eine Sicherungsanwendung verwenden würde. Diese Option ermöglicht Robocopy das Verschieben von Dateien, für die der aktuelle Benutzer keine Berechtigungen hat. Die Sicherungsoption ist abhängig von der Ausführung des Robocopy-Befehls in einer Konsole mit Administratorrechten oder einem PowerShell-Fenster. Wenn Sie Robocopy für Azure Files verwenden, stellen Sie sicher, dass Sie die Azure-Dateifreigabe mit dem Zugriffsschlüssel des Speicherkontos und nicht mit einer Domänenidentität einbinden. Andernfalls führen Sie die Fehlermeldungen möglicherweise nicht intuitiv zu einer Lösung des Problems.
/MIR (Quelle im Ziel spiegeln) Hiermit hat Robocopy die Möglichkeit, nur Deltas zwischen der Quelle und dem Ziel zu kopieren. Leere Unterverzeichnisse werden kopiert. Elemente (Dateien oder Ordner), die geändert wurden oder nicht im Ziel vorhanden sind, werden kopiert. Elemente, die im Ziel, aber nicht in der Quelle vorhanden sind, werden aus dem Ziel gelöscht. Wenn Sie diese Option verwenden, passen Sie die Quell- und Zielordnerstrukturen genau an. Übereinstimmung bedeutet, dass aus der richtigen Quelle und Ordnerebene in die entsprechende Ordnerebene im Ziel kopiert wird. Nur dann kann ein Kopiervorgang zum „Aufholen“ erfolgreich durchgeführt werden. Wenn die Quelle und das Ziel nicht übereinstimmen, können mithilfe von /MIR umfassende Lösch- und wiederholte Kopiervorgänge durchgeführt werden.
/IT Sorgt dafür, dass die Genauigkeit in bestimmten Spiegelungsszenarien beibehalten wird.
Wenn beispielsweise bei einer Datei zwischen zwei Robocopy-Ausführungen eine ACL-Änderung und ein Attributupdate durchgeführt werden, wird diese als „ausgeblendet“ gekennzeichnet. Ohne /IT bemerkt Robocopy die ACL-Änderung möglicherweise nicht und führt daher auch keine Übertragung an den Zielspeicherort aus.
/COPY:[copyflags] Dies ist die Genauigkeit der Dateikopie. Standardwert: /COPY:DAT. Kopierflags: D = Daten, A = Attribute, T = Zeitstempel, S = Sicherheit = NTFS-ACLs, O = Besitzerinformationen, U = Überwachungsinformationen Überwachungsinformationen können nicht in einer Azure-Dateifreigabe gespeichert werden.
/DCOPY:[copyflags] Dies ist die Genauigkeit für die Kopie von Verzeichnissen. Standardwert: /DCOPY:DA. Kopierflags: D = Daten, A = Attribute, T = Zeitstempel.
/NP Hiermit wird angegeben, dass der Kopierfortschritt für alle Dateien und Ordner nicht angezeigt wird. Das Anzeigen des Fortschritts reduziert die Kopierleistung erheblich.
/NFL Gibt an, dass Dateinamen nicht protokolliert werden. Hiermit wird die Kopierleistung verbessert.
/NDL Gibt an, dass Verzeichnisnamen nicht protokolliert werden. Hiermit wird die Kopierleistung verbessert.
/XD Gibt die auszuschließenden Verzeichnisse an. Wenn Sie Robocopy im Stammverzeichnis eines Volumes ausführen, erwägen Sie den Ausschluss des ausgeblendeten Ordners System Volume Information. Bei bestimmungsgemäßer Verwendung gelten alle darin enthaltenen Informationen für genau dieses Volume auf genau diesem System und können bei Bedarf wiederhergestellt werden. Das Kopieren dieser Informationen in die Cloud oder das Zurückkopieren der Daten auf ein anderes Windows-Volume hat keinen Nutzen. Der Wegfall dieser Inhalte sollte nicht als Datenverlust betrachtet werden.
/UNILOG:<file name> Hiermit wird der Status als Unicode in die Protokolldatei geschrieben. (Überschreibt das vorhandene Protokoll.)
/L Nur für einen Testlauf
Dateien sollen nur aufgelistet werden. Sie werden nicht kopiert, nicht gelöscht und nicht mit einem Zeitstempel versehen. Wird häufig mit /TEE für die Konsolenausgabe verwendet. Flags aus dem Beispielskript, z. B. /NP, /NFL und /NDL, müssen möglicherweise entfernt werden, um ordnungsgemäß dokumentierte Testergebnisse zu erzielen.
/Z Umsichtige Verwendung
Dateien werden im Neustartmodus kopiert. Diese Option wird nur in einer instabilen Netzwerkumgebung empfohlen. Sie reduziert die Kopierleistung aufgrund der zusätzlichen Protokollierung erheblich.
/ZB Umsichtige Verwendung
Der Neustartmodus wird verwendet. Wenn der Zugriff verweigert wird, wird der Sicherungsmodus verwendet. Diese Option reduziert die Kopierleistung aufgrund der Prüfpunkte erheblich.

Wichtig

Es wird empfohlen, Windows Server 2022 zu verwenden. Stellen Sie bei Verwendung von Windows Server 2019 sicher, dass die neueste Patchebene angewendet wurde oder mindestens das Betriebssystemupdate KB5005103 installiert ist. Dieses Update enthält wichtige Korrekturen für bestimmte Robocopy-Szenarien.

Tipp

Lesen Sie sich den Abschnitt zur Problembehandlung durch, wenn Robocopy Ihre Produktionsumgebung beeinträchtigt, viele Fehler meldet oder nicht so schnell wie erwartet ausgeführt wird.

Phase 4: Benutzerübernahme

Wenn Sie den Robocopy-Befehl zum ersten Mal ausführen, greifen Ihre Benutzer und Anwendungen weiterhin auf Dateien an der Quelle zu und ändern sie möglicherweise. Es kann vorkommen, dass Robocopy ein Verzeichnis verarbeitet und mit dem nächsten fortfährt und dann ein Benutzer am Quellspeicherort eine Datei hinzufügt, ändert oder löscht. Diese wird dann während der derzeitigen Robocopy-Ausführung nicht verarbeitet. Dies ist das erwartete Verhalten.

Bei der ersten Ausführung wird der Großteil der geänderten Daten auf Ihre Azure-Dateifreigabe verschoben. Dieser erste Kopiervorgang kann eine Weile dauern. Weitere Informationen dazu, wie die Robocopy-Geschwindigkeit ggf. beeinträchtigt werden kann, finden Sie im Abschnitt zur Problembehandlung.

Nachdem die erste Ausführung beendet wurde, führen Sie den Befehl erneut aus.

Wenn Sie RoboCopy zum zweiten Mal für dieselbe Freigabe ausführen, wird der Vorgang schneller abgeschlossen, da nur Änderungen, die seit der letzten Ausführung aufgetreten sind, übertragen werden müssen. Sie können wiederholte Aufträge für dieselbe Freigabe ausführen.

Nachdem Sie die Menge an akzeptablen Ausfallzeiten berücksichtigt haben, müssen Sie den Benutzerzugriff auf Ihre Quellfreigaben entfernen. Dazu können Sie jeden beliebigen Schritt ausführen, mit dem Benutzer daran gehindert werden, die Datei- und Ordnerstruktur sowie den Inhalt zu ändern. Ein Beispiel: Ihr DFS-Namespace verweist auf einen nicht vorhandenen Speicherort, oder Sie ändern die ACLs in jeder Freigabe.

Führen Sie einen letzten Robocopy-Durchgang aus. Dadurch werden alle Änderungen übernommen, die zuvor möglicherweise ausgelassen wurden. Wie lange dieser letzte Schritt dauert, hängt von der Geschwindigkeit des RoboCopy-Scans ab. Sie können die Zeit (gleich der Ausfallzeit) schätzen, indem Sie messen, wie lange die vorherige Ausführung gedauert hat.

In Phase 2 haben Sie Ihre Benutzer für den Zugriff auf die Freigabe mit ihrer Identität konfiguriert und sollten eine Strategie für Ihre Benutzer entwickelt haben, um eingerichtete Pfade zu Ihren neuen Azure-Dateifreigaben (DFS-N) zu verwenden.

Sie können versuchen, einige dieser Kopien parallel zwischen verschiedenen Quell- und Zielfreigaben auszuführen. Behalten Sie dabei den Netzwerkdurchsatz und das Verhältnis zwischen Kern und Threadanzahl im Blick, um das System nicht zu überlasten.

Problembehandlung und Optimierung

Die Geschwindigkeit und die Erfolgsrate einer bestimmten Robocopy-Ausführung hängt von mehreren Faktoren ab:

  • IOPS im Quell- und Zielspeicher
  • Verfügbare Netzwerkbandbreite zwischen Quelle und Ziel
  • Schnelle Verarbeitung von Dateien und Ordnern in einem Namespace
  • Anzahl von Änderungen zwischen Robocopy-Ausführungen
  • Größe und Anzahl der Dateien, die Sie kopieren müssen

IOPS- und Bandbreitenaspekte

In dieser Kategorie geht es um die Leistung des Quellspeichers, des Zielspeichers und des für die Verbindung verwendeten Netzwerks. Der maximal mögliche Durchsatz wird durch die langsamste dieser drei Komponenten bestimmt. Stellen Sie sicher, dass Ihre Netzwerkinfrastruktur so konfiguriert ist, dass optimale Übertragungsgeschwindigkeiten unterstützt werden und die bestmögliche Leistung erzielt wird.

Achtung

Schnellstmögliche Kopiervorgänge sind zwar oft wünschenswert, aber Sie sollten auch die Auslastung Ihres lokalen Netzwerks und der NAS-Appliance in Bezug auf andere – oft unternehmenskritische – Aufgaben berücksichtigen.

Unter Umständen sind schnellstmögliche Kopiervorgänge nicht wünschenswert, wenn das Risiko besteht, dass die verfügbaren Ressourcen von der Migration „monopolisiert“ werden.

  • Überlegen Sie sich, welche Zeiten für die Durchführung von Migrationen in Ihrer Umgebung am besten geeignet sind: tagsüber, außerhalb der Geschäftszeiten oder an Wochenenden.
  • Erwägen Sie auch, die QoS-Funktion (Quality of Service) für das Netzwerk auf einer Windows Server-Instanz zu nutzen, um die Robocopy-Geschwindigkeit zu drosseln.
  • Vermeiden Sie für die Migrationstools unnötigen Arbeitsaufwand.

Mit Robocopy können Verzögerungen zwischen Paketen eingefügt werden. Hierzu wird der Switch /IPG:n angegeben, bei dem n für den Abstand zwischen Robocopy-Paketen in Millisekunden steht. Mit diesem Switch können Sie die Monopolisierung von Ressourcen sowohl auf Geräten mit E/A-Einschränkungen als auch auf überlasteten Netzwerkverknüpfungen vermeiden.

/IPG:n kann nicht verwendet werden, um eine präzise Netzwerk-Bandbreiteneinschränkung auf einen bestimmten MBit/s-Wert zu erreichen. Verwenden Sie stattdessen Netzwerk-QoS für Windows Server. Bei Robocopy wird für alle Netzwerkanforderungen ausschließlich das SMB-Protokoll verwendet. Die Verwendung von SMB ist der Grund dafür, warum der Netzwerkdurchsatz von Robocopy selbst nicht beeinflusst werden kann, es aber ggf. zu einer Verlangsamung bei der Nutzung kommt.

Ein ähnlicher Ansatz gilt für den IOPS-Wert von Network Attached Storage (NAS). Die Clustergröße auf dem NAS-Volume, die Paketgrößen und einige andere Faktoren wirken sich auf den IOPS-Wert aus. Die Nutzung von Verzögerungen zwischen Paketen ist häufig die einfachste Möglichkeit zum Steuern der Last für NAS. Führen Sie Tests mit mehreren Werten durch, z. B. für ca. 20 Millisekunden (n=20) und dann für entsprechende Vielfache dieses Werts. Nach der Einführung einer Verzögerung können Sie auswerten, ob Ihre anderen Apps nun wie erwartet funktionieren. Mit dieser Optimierungsstrategie können Sie die optimale Robocopy-Geschwindigkeit für Ihre Umgebung ermitteln.

Verarbeitungsgeschwindigkeit

Robocopy durchläuft den Namespace, auf den jeweils verwiesen wird, und wertet jede Datei und jeden Ordner in Bezug auf den Kopiervorgang aus. Für jede Datei werden ein erstmaliger Kopiervorgang und dann weitere Kopiervorgänge ausgewertet. Ein Beispiel hierfür sind wiederholte Ausführungen der Robocopy-Option „/MIR“ für dieselben Quell- und Zielspeicherorte. Diese wiederholten Ausführungen sind hilfreich, um die Downtime für Benutzer und Apps gering zu halten und die allgemeine Erfolgsrate für die migrierten Dateien zu verbessern.

Häufig wird die Bandbreite als der am stärksten einschränkende Faktor bei der Migration angesehen – und dies kann auch tatsächlich der Fall sein. Die Möglichkeit zum Enumerieren eines Namespace kann aber dazu führen, dass sich die Gesamtkopierdauer für größere Namespaces mit kleineren Dateien noch weiter erhöht. Beachten Sie, dass das Kopieren von 1 TiB an kleinen Dateien erheblich länger dauert als das Kopieren einer Datenmenge von 1 TiB, die aus einer geringeren Anzahl von größeren Dateien besteht. Dabei wird vorausgesetzt, dass alle anderen Variablen unverändert bleiben. Deshalb kann die Übertragung langsam sein, wenn Sie eine große Anzahl von kleinen Dateien migrieren. Dies entspricht dem erwarteten Verhalten.

Die Ursache für diesen Unterschied ist die Verarbeitungsleistung, die für das Durchlaufen eines Namespace erforderlich ist. Robocopy unterstützt Multithreadkopien über den Parameter /MT:n, wobei n für die Anzahl der zu verwendenden Threads steht. Wenn Sie einen Computer speziell für Robocopy bereitstellen, sollten Sie also auf die Anzahl von Prozessorkernen und deren Beziehung zur jeweiligen Threadanzahl achten. Eine gängige Vorgehensweise ist die Nutzung von zwei Threads pro Kern. Die Anzahl von Kernen und Threads eines Computers stellt einen wichtigen Datenpunkt dar, der hilfreich beim Treffen der Entscheidung ist, welche Multithread-Werte (/MT:n) Sie angeben sollten. Berücksichtigen Sie auch, wie viele Robocopy-Aufträge Sie auf einem bestimmten Computer parallel ausführen möchten.

Bei einer höheren Anzahl von Threads verläuft der Kopiervorgang für die kleinen Dateien aus dem Beispiel mit 1 TiB erheblich schneller als bei einer geringeren Anzahl von Threads. Gleichzeitig kann es sein, dass die zusätzliche Investition in Ressourcen beim Beispiel mit 1 TiB an größeren Dateien nicht zu proportionalen Vorteilen führt. Bei einer höheren Anzahl von Threads wird versucht, eine größere Zahl von großen Dateien gleichzeitig über das Netzwerk zu kopieren. Durch diese zusätzliche Netzwerkaktivität erhöht sich die Wahrscheinlichkeit, dass es zu Einschränkungen in Bezug auf den Durchsatz oder den Speicher-IOPS-Wert kommt.

Beim ersten Kopieren in ein leeres Ziel mithilfe von RoboCopy oder bei einem differenziellen Vorgang mit zahlreichen geänderten Dateien ist Ihr Netzwerkdurchsatz wahrscheinlich ein limitierender Faktor. Beginnen Sie mit einer hohen Threadanzahl für eine erste Ausführung. Eine hohe Threadanzahl, die über die derzeit verfügbaren Threads auf dem Computer hinausgeht, hilft bei der Auslastung der verfügbaren Netzwerkbandbreite. Nachfolgende /MIR-Ausführungen werden progressiv durch die Verarbeitung von Elementen beeinflusst. Weniger Änderungen bei einem differenziellen Vorgang bedeuten weniger Datentransporte über das Netzwerk. Ihre Geschwindigkeit hängt nun weniger von der Übertragungsgeschwindigkeit über die Netzwerkverbindung und vielmehr von der Verarbeitungsgeschwindigkeit für Namespaceelemente ab. Stimmen Sie bei nachfolgenden Ausführungen den Threadanzahlwert auf die Prozessorkernanzahl und die Threadanzahl pro Kern ab. Berücksichtigen Sie, ob Kerne für andere Aufgaben reserviert werden müssen, die ein Produktionsserver möglicherweise hat.

Tipp

Faustregel: Die erste RoboCopy-Ausführung, bei der viele Daten über ein Netzwerk mit höherer Latenz verschoben werden, profitiert von einer Überbereitstellung bei der Anzahl der Threads (/MT:n). Bei nachfolgenden Ausführungen werden weniger Unterschiede kopiert, und es ist wahrscheinlicher, dass Sie vom eingeschränkten Netzwerkdurchsatz auf eingeschränkte Computeressourcen umschalten. Unter diesen Umständen ist es oft besser, die Anzahl der Threads für RoboCopy den tatsächlich auf dem Computer verfügbaren Threads anzupassen. Eine Überbereitstellung in diesem Szenario kann zu mehr Kontextverschiebungen im Prozessor führen, was Ihren Kopiervorgang möglicherweise verlangsamt.

Vermeiden von unnötigem Arbeitsaufwand

Vermeiden Sie umfangreiche Änderungen in Ihrem Namespace, z. B. das Verschieben von Dateien zwischen Verzeichnissen, das Ändern von Eigenschaften in großem Maßstab oder das Ändern von Berechtigungen auf Verzeichnis- und Dateiebene (NTFS ACLs). Insbesondere ACL-Änderungen können starke Auswirkungen haben, weil diese häufig zu kaskadierenden Änderungen von Dateien führen, die sich in den untergeordneten Ordnern der Hierarchie befinden. Dies kann die folgenden Konsequenzen haben:

  • Längere Ausführungsdauer für Robocopy-Aufträge, weil jede Datei und jeder Ordner, die bzw. der von einer ACL-Änderung betroffen ist, aktualisiert werden muss
  • Wiederverwendete Daten, die vorher verschoben wurden, müssen ggf. erneut kopiert werden Es müssen beispielsweise mehr Daten kopiert werden, wenn sich die Ordnerstrukturen ändern, nachdem Dateien zuvor bereits kopiert wurden. Bei einem Robocopy-Auftrag kann eine Namespaceänderung nicht „wiedergegeben“ werden. Die Dateien, die zuvor in die alte Ordnerstruktur übertragen wurden, müssen beim nächsten Auftrag bereinigt und in die neue Ordnerstruktur hochgeladen werden.

Ein weiterer wichtiger Aspekt ist die effektive Nutzung des Robocopy-Tools. Mit dem empfohlenen Robocopy-Skript erstellen und speichern Sie eine für Fehler bestimmte Protokolldatei. Das etwaige Auftreten von Kopierfehlern ist hierbei normal. Diese Fehler machen es häufig notwendig, mehrere Runden eines Kopiertools wie RoboCopy auszuführen: Eine anfängliche Ausführung, z. B. von einem NAS zu DataBox oder einem Server zu einer Azure-Dateifreigabe, und mindestens eine zusätzliche Ausführung mit dem /MIR Switch zum Erfassen und Wiederholen von Dateien, die nicht kopiert wurden.

Sie sollten darauf vorbereitet sein, Robocopy für einen bestimmten Namespacebereich mehrfach auszuführen. Aufeinanderfolgende Ausführungen können schneller abgeschlossen werden, weil weniger Daten kopiert werden müssen. Einschränkungen ergeben sich hierbei aber vermehrt aus der Geschwindigkeit bei der Verarbeitung des Namespace. Bei mehreren Ausführungen können Sie jeden Durchlauf beschleunigen, indem Sie festlegen, dass Robocopy nicht mit unnötig hohem Aufwand versuchen soll, bei einem Durchlauf alles zu kopieren. Die folgenden Robocopy-Switches können einen signifikanten Unterschied ausmachen:

  • /R:n: „n“ steht hierbei dafür, wie oft Sie versuchen, eine nicht kopierte Datei erneut zu kopieren.
  • /W:n: Mit „n“ wird angegeben, wie viele Sekunden lang zwischen den Wiederholungen gewartet werden soll.

/R:5 /W:5: Eine gängige Einstellung, die Sie je nach Ihren Anforderungen anpassen können. Bei dieser Beispieleinstellung werden für eine nicht kopierte Datei fünf Wiederholungsversuche durchgeführt, und zwischen den Wiederholungen wird jeweils fünf Sekunden gewartet. Falls die Datei immer noch nicht kopiert werden kann, wird dies beim nächsten Robocopy-Auftrag erneut versucht. Mit diesem Ansatz ist der Kopiervorgang für Dateien, die aufgrund einer gegenwärtigen Nutzung oder von Timeoutproblemen nicht kopiert werden können, in vielen Fällen schließlich erfolgreich.

Schätzen der Speichertransaktionsgebühren

Während Sie mit der Migration zu Azure Files beginnen, kopiert RoboCopy Ihre Dateien und Ordner in Azure. Je nach Abrechnungsmodell für Azure Files können Transaktionsgebühren anfallen. Weitere Informationen finden Sie unter Grundlegendes zur Abrechnung.

Wenn Sie ein nutzungsbasiertes Bezahlungsmodell für Standard-Azure-Dateifreigaben verwenden, ist es möglicherweise schwierig, die Anzahl der Transaktionen abzuschätzen, die Ihre Migration generieren wird.

  • Es ist nicht möglich, die Anzahl der Transaktionen basierend auf der genutzten Speicherkapazität der Quelle zu schätzen. Die Anzahl der Transaktionen skaliert mit der Anzahl der Namespaceelemente (Dateien und Ordner) und ihrer Eigenschaften, die migriert werden, nicht ihrer Größe. Beispielsweise sind mehr Transaktionen erforderlich, um 1 GiB kleine Dateien zu migrieren als 1 GiB größere Dateien.
  • Um die Downtime zu minimieren, müssen Sie Kopiervorgänge zwischen Quelle und Ziel möglicherweise mehrmals ausführen. Alle Quell- und Zielelemente werden während der einzelnen Kopiervorgänge verarbeitet. Nachfolgende Ausführung werden dabei schneller ausgeführt. Nach den ersten Vorgängen werden nur die Unterschiede zwischen Kopiervorgängen über das Netzwerk übertragen. Es ist wichtig zu wissen, dass die Anzahl der erforderlichen Transaktionen möglicherweise gleich bleibt, obwohl weniger Daten übertragen werden.
  • Wenn dieselbe Datei zweimal kopiert wird, führt dies möglicherweise nicht zu derselben Anzahl von Transaktionen. Die Verarbeitung eines Elements, das in einer vorherigen Kopierausführung migriert wurde, führt möglicherweise nur zu wenigen Lesevorgängen. Im Gegensatz dazu erfordern Änderungen an Metadaten oder Inhalten zwischen Kopiervorgängen unter Umständen eine größere Anzahl von Transaktionen, um das Ziel zu aktualisieren. Für jede Datei in Ihrem Namespace gelten möglicherweise eindeutige Anforderungen, was zu einer anderen Anzahl von Transaktionen führt.

Es ist ratsam, einige erste Tests mit Ihren eigenen Daten durchzuführen, um besser zu verstehen, wie viele Transaktionen anfallen. So erhalten Sie eine bessere Vorstellung von der Gesamtzahl der Transaktionen, die eine Dateimigration erzeugen könnte.

Nächste Schritte

Die folgenden Artikel helfen Ihnen, erweiterte Optionen und bewährte Methoden zu verstehen.