Zum Inhalt springen
Contact us

Was eine Migration umfasst und was ihre Geschwindigkeit bestimmt

Keine Dateikopie

Eine Migration überträgt Dateien zwischen zwei Systemen, die jeweils eigene Regeln, Grenzen und Lasten haben. Die Geschwindigkeit eines Kopiervorgangs auf einer lokalen Festplatte sagt darüber wenig aus.

Jeder Job arbeitet seine Quelle Datei für Datei ab, und jede Datei durchläuft unabhängig von ihrer Größe dieselben Schritte:

  1. Den Job vorbereiten

    SMART Migration verbindet sich mit Quelle und Ziel, liest die Ordner der Quelle und listet die Dateien auf, die die Filter des Jobs durchlassen. Bevor dies abgeschlossen ist, wird keine Datei übertragen.

  2. Das Ziel prüfen

    Für jede Datei ermittelt die Software, was im Ziel bereits vorhanden ist, und vergleicht dies anhand ihrer Regel für das Hinzufügen und Überschreiben von Dateien, um zu entscheiden, ob die Datei hinzugefügt, ersetzt oder unverändert gelassen wird.

  3. Die Datei und ihre Versionen lesen

    Die Datei wird aus der Quelle gelesen und, mit Versionsverlauf, auch jede ihrer Versionen: Jede Version ist eine eigene zu übertragende Datei.

  4. In Nextcloud schreiben

    Die Datei wird in ihren Ordner in Nextcloud geschrieben, mit ihren Datumsangaben und, mit MetaVox, ihren Metadaten.

  5. Das Ergebnis protokollieren

    Der Schritt wird protokolliert, die Kennzahlen des Laufs werden an die App gemeldet, und jedes Problem wird als Dateiproblem erfasst.

Die eigentlichen Daten werden nur im dritten und vierten Schritt übertragen. Alles andere sind Aufrufe an Quelle oder Ziel, die jeweils über das Netzwerk beantwortet werden – und bei vielen kleinen Dateien dauern diese Aufrufe weit länger als die Datenübertragung selbst.

Dieselbe Datenmenge kann eine Stunde oder einen Tag dauern, je nachdem, woraus sie besteht und wohin sie übertragen wird:

FaktorAuswirkung auf die Geschwindigkeit
Anzahl der DateienJede Datei erfordert dieselben Schritte, daher dauern 100.000 kleine Dateien weit länger als hundert große Dateien mit demselben Umfang
VersionsverlaufJede Version wird als eigene Datei übertragen; eine Bibliothek mit langen Versionsverläufen enthält ein Vielfaches ihrer aktuellen Dateien
VorbereitungDas Lesen der Ordner der Quelle und der Inhalte des Ziels, bevor die erste Datei übertragen wird; bei einem Job mit wenigen Dateien macht dies einen großen Teil seiner Laufzeit aus
Was das Ziel bereits enthältEin wiederholter Lauf vergleicht jede Datei mit dem Ziel und weiß erst danach, dass für die meisten nichts zu tun ist – es sei denn, es handelt sich um einen inkrementellen Lauf, der nur die seit dem letzten erfolgreichen Lauf geänderten Dateien liest und vergleicht
Drosselung durch Microsoft 365SharePoint Online und OneDrive begrenzen die Anzahl der angenommenen Anfragen, und SMART Migration wartet, wenn sie eine Verlangsamung anfordern – in den Laufdetails als SPO Rate Limit Delay angezeigt
Das ZielEin ausgelasteter Nextcloud-Server, langsamer Speicher oder eine volle Festplatte verlangsamen jeden Job, der dorthin schreibt
Das NetzwerkZwischen dem SMART Migration-Server, der Quelle und Nextcloud – bei vielen Dateien ist die Latenz wichtiger als die Bandbreite
Gleichzeitige JobsDer SMART Migration-Server führt höchstens vier Jobs gleichzeitig aus; weitere Jobs warten, bis sie an der Reihe sind
Die EditionEnterprise+ migriert mit bis zu dreifacher Enterprise-Geschwindigkeit

Warum es langsamer sein kann als erwartet

Ein Durchsatz von einigen Gigabyte pro Stunde kann im Vergleich zur Netzwerkgeschwindigkeit niedrig wirken. Er ist jedoch nicht die Übertragungsgeschwindigkeit, sondern die pro Stunde der gesamten Laufzeit eines Jobs übertragene Datenmenge, alle oben genannten Schritte eingeschlossen. Ein erster Lauf einer großen Bibliothek, viele kleine Dateien oder ein gedrosselter Tenant senken ihn – und keiner dieser Fälle bedeutet, dass etwas nicht stimmt.

Die obigen Angaben beschreiben eine Migration, die ohne Unterbrechung läuft. Keine Migration tut das. Über Wochen der Arbeit mit einem Tenant, einem Dateiserver und einem Nextcloud-Server geht ganz selbstverständlich etwas schief – nicht weil etwas defekt ist, sondern weil reale Systeme gemeinsam genutzt, gewartet und von Menschen verwendet werden, während die Migration läuft:

Was geschiehtAuswirkung auf die MigrationWas zu tun ist
NetzwerkausfälleEine Verbindung zwischen dem SMART Migration-Server, der Quelle und Nextcloud bricht ab: Eine Datei schlägt fehl, oder ein ganzer Lauf wird beendetPrüfen Sie das Ergebnis des Laufs und die Dateiprobleme, und führen Sie den Job erneut aus
DrosselungMicrosoft 365 verlangsamt oder verweigert Anfragen, wenn der Tenant ausgelastet ist – am stärksten während der Geschäftszeiten –, und ein Job wartet, manchmal stundenlang jeweils mehrere MinutenFühren Sie die größten Jobs abends und am Wochenende aus; siehe SPO Rate Limit Delay in den Laufdetails
ServerneustartsWindows-Updates auf dem SMART Migration-Server, Nextcloud-Updates und -Wartung, eine neu gestartete virtuelle Maschine – die laufenden Jobs werden beendet, und die App zeigt Offline anVereinbaren Sie Wartungsfenster mit der IT, und prüfen Sie die laufenden Jobs, sobald der Server wieder verfügbar ist
Fehlende BerechtigungenEine Website, Bibliothek, ein OneDrive oder ein Ordner, die die App-Registrierung oder das Dienstkonto nicht lesen kann; Dateien mit eigenen BerechtigungenDer Lauf endet mit einem Fehler, oder die Dateien werden unter Dateiprobleme aufgeführt; erteilen Sie den Zugriff, und führen Sie den Job erneut aus
Verwendete DateienGesperrte, ausgecheckte oder in einer Anwendung geöffnete Dateien können nicht immer gelesen werdenSie werden unter Dateiprobleme aufgeführt; führen Sie den Job später erneut aus
Abgelaufene AnmeldedatenEin ablaufendes Zertifikat oder Kennwort, ein widerrufenes App-Kennwort: Alle Jobs werden beendet, bis die Anmeldedaten erneuert sindNotieren Sie die Ablaufdaten vor Projektbeginn
Nextcloud verweigert AnfragenFehlgeschlagene Anmeldungen von der Adresse des SMART Migration-Servers veranlassen Nextcloud, jede Anfrage von dort zu verlangsamen und sie anschließend mit 429 Too Many Requests abzulehnen: Alle Jobs werden beendetKorrigieren Sie das Kennwort, und setzen Sie die Adresse des Servers auf die Brute-Force-Zulassungsliste von Nextcloud; siehe „Die Server dimensionieren“ weiter unten
Das Ziel läuft vollEine volle Festplatte oder ein erreichtes Kontingent stoppt die Schreibvorgänge; Virenscans und Sicherungsfenster verlangsamen siePrüfen Sie vor jeder Welle den freien Speicherplatz und die Kontingente
Die Benutzer arbeiten weiterDateien ändern sich in der Quelle, während sie migriert werdenPlanen Sie vor der Umstellung einen abschließenden Nachhol-Lauf ein
Entscheidungen und KorrekturenBerechtigungsanfragen, Antworten von Besitzern und Freigaben kosten Zeit der Beteiligten – oft TagePlanen Sie diese in die Wellen ein, nicht um sie herum

Die meisten Unterbrechungen kosten für sich genommen wenig, und die Standardregel für vorhandene Dateien macht sie unbedenklich: Führen Sie den Job erneut aus, und Neue hinzufügen, vorhandene bei neueren überschreiben lässt die bereits übertragenen Dateien unverändert und kopiert den Rest. Was sie kosten, ist Kalenderzeit – die Stunden zwischen dem Moment, in dem ein Job angehalten wurde, und dem Moment, in dem jemand dies bemerkt, die Ursache behoben und den Job erneut gestartet hat.

Planen Sie für die Wirklichkeit, nicht für den Idealfall

Die Prognose misst die Zeit, in der Jobs liefen. Die innerhalb dieser Läufe aufgetretenen Unterbrechungen – Wartezeiten durch Drosselung, fehlgeschlagene Dateien – sind bereits darin enthalten; die Zeit, die verloren ging, während nichts lief, nicht. Betrachten Sie sie als besten Fall für ununterbrochene Arbeit, und planen Sie den Kalender mit einem zusätzlichen Puffer. Eine Pilotwelle, die über gewöhnliche Arbeitstage mit ihren Unterbrechungen läuft, zeigt, wie groß dieser Puffer in Ihrer Umgebung sein muss.

Wie die Übersicht die verbleibende Zeit prognostiziert

Abschnitt betitelt „Wie die Übersicht die verbleibende Zeit prognostiziert“

Unter den Balken von Migrationsfortschritt zeigt die Übersicht drei Zeilen, die aus den Kennzahlen der Jobs selbst berechnet werden. Bewegen Sie den Mauszeiger darauf, um eine Karte einzublenden, die jede Zeile mit den zugrunde liegenden Zahlen erläutert.

Verbleibende Zeit

Die verbleibenden Dateien multipliziert mit der durchschnittlichen Zeit pro Datei, aufgeteilt auf die gleichzeitig laufenden Jobs.

Fertig etwa

Wann die verbleibenden Dateien übertragen sind, wenn die laufenden Jobs ihr aktuelles Tempo beibehalten.

Durchsatz

Die pro Stunde der Laufzeit eines Jobs übertragene Datenmenge, im Durchschnitt und aktuell.

  • Die Zeit pro Datei stammt aus dem Sitzungsprotokoll. Für jede Migration wird die Zeit vom Start des Jobs im Protokoll bis zu seiner letzten Protokollzeile durch die Anzahl der übertragenen Dateien geteilt. Die für die Vorbereitung aufgewendete Zeit, bevor die erste Datei übertragen wird, liegt innerhalb dieser Spanne und wird daher auf die Dateien verteilt. Abgeschlossene Migrationen zählen mit ihrem Start und Ende, laufende mit dem bisher Protokollierten. Alle zusammen ergeben einen Durchschnitt.
  • Verbleibende Zeit ist die Anzahl der noch zu übertragenden Dateien multipliziert mit diesem Durchschnitt, geteilt durch die Anzahl der aktuell laufenden Migrationen – mindestens eine. Solange nichts läuft, ist es die Zeit, die ein Job nach dem anderen benötigen würde, und die Zeile weist darauf hin: at the past pace. Es handelt sich um Arbeitszeit: Stunden, in denen kein Job läuft, kommen hinzu.
  • Fertig etwa ist eine Schätzung ab jetzt: die Dateien pro Stunde jedes laufenden Jobs seit seinem Start, addiert, und die verbleibenden Dateien in diesem Tempo. Sie reagiert sofort auf eine langsame Quelle, ein ausgelastetes Ziel oder Drosselung und schwankt daher stärker als die verbleibende Zeit. Wenn nichts läuft, gibt es keine Schätzung.
  • Durchsatz ist die pro Stunde der Laufzeit eines Jobs übertragene Datenmenge in MB pro Stunde: im Durchschnitt über die abgeschlossenen und laufenden Migrationen sowie aktuell für alle laufenden Jobs zusammen. Er umfasst jeden Schritt, nicht nur die Datenübertragung. Solange nichts läuft, wird nur der Durchschnitt angezeigt, gekennzeichnet mit past migrations.

Die Prognose lernt dazu. Mit nur wenigen abgeschlossenen Migrationen ist sie grob; sie wird genauer, je mehr Jobs abgeschlossen werden, und die Auswahl unter Messen ab bestimmt, aus welchen abgeschlossenen Läufen sie lernt.

Die Balken messen jeden Job an dem, was sein letzter Analyse-Lauf gezählt hat. Ein Job ohne einen solchen Lauf kann nicht genau gemessen werden: Die Übersicht berechnet ihn anhand dessen, was seine letzte abgeschlossene Migration übertragen hat, oder andernfalls als durchschnittlichen Job, sodass die verbleibende Zeit auch ihn abdeckt – allerdings nur so genau, wie diese Schätzung auf den Job zutrifft. Führen Sie die Jobs zuerst als Analyse aus, um genaue Zahlen zu erhalten. Fortschritt für Jobs ohne Analyse-Lauf erläutert, wie die Schätzung erstellt wird und wie stark sie abweichen kann.

  • Lassen Sie weg, was niemand nutzt, mit From Date und Source File Type, und begrenzen Sie die Versionen mit Version History Scope.
  • Halten Sie rund um die Uhr vier Jobs am Laufen: Planen Sie die größten Jobs für den Abend und das Wochenende ein, und weisen Sie ihnen eine hohe Priority zu.
  • Verteilen Sie die größten Bibliotheken auf die Wellen, statt vier davon parallel gegen einen gedrosselten Tenant laufen zu lassen.
  • Teilen Sie eine Bibliothek mit Hunderttausenden oder Millionen von Dateien in Jobs auf, die jeweils einen Teil ihrer Ordner umfassen: Ein einziger Job für alles ist langsam und wird möglicherweise gar nicht abgeschlossen. Siehe Quellen
  • Führen Sie wiederkehrende Jobs vor der Umstellung aus, damit der abschließende Lauf nur noch vergleicht und kopiert, was sich geändert hat.
  • Gestalten Sie wiederholte Läufe inkrementell: Mit Inkrementell (nur seit dem letzten erfolgreichen Lauf geänderte Dateien) liest ein Lauf nur die seit dem letzten erfolgreichen Lauf geänderten Dateien und prüft nur diese gegen Nextcloud – einige geänderte Dateien statt der gesamten Bibliothek. Siehe Inkrementelle Läufe: nur die seit dem letzten Lauf geänderten Dateien
  • Prüfen Sie das Ziel: freien Speicherplatz und einen für die Last dimensionierten Nextcloud-Server mit genügend PHP-Workern für vier gleichzeitig schreibende Jobs. Siehe Die Server für eine große Migration dimensionieren
  • Halten Sie Unterbrechungen kurz: Beobachten Sie die Übersicht und die Benachrichtigungen, damit ein angehaltener Job innerhalb von Minuten statt erst am nächsten Morgen bemerkt wird, und vereinbaren Sie Wartungsfenster mit den Verantwortlichen für die Server. Siehe Benachrichtigungen bei Auftragsläufen

Siehe auch