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.
Was mit jeder Datei geschieht
Abschnitt betitelt „Was mit jeder Datei geschieht“Jeder Job arbeitet seine Quelle Datei für Datei ab, und jede Datei durchläuft unabhängig von ihrer Größe dieselben Schritte:
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.
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.
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.
In Nextcloud schreiben
Die Datei wird in ihren Ordner in Nextcloud geschrieben, mit ihren Datumsangaben und, mit MetaVox, ihren Metadaten.
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.
Was die Geschwindigkeit bestimmt
Abschnitt betitelt „Was die Geschwindigkeit bestimmt“Dieselbe Datenmenge kann eine Stunde oder einen Tag dauern, je nachdem, woraus sie besteht und wohin sie übertragen wird:
| Faktor | Auswirkung auf die Geschwindigkeit |
|---|---|
| Anzahl der Dateien | Jede Datei erfordert dieselben Schritte, daher dauern 100.000 kleine Dateien weit länger als hundert große Dateien mit demselben Umfang |
| Versionsverlauf | Jede Version wird als eigene Datei übertragen; eine Bibliothek mit langen Versionsverläufen enthält ein Vielfaches ihrer aktuellen Dateien |
| Vorbereitung | Das 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ält | Ein 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 365 | SharePoint 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 Ziel | Ein ausgelasteter Nextcloud-Server, langsamer Speicher oder eine volle Festplatte verlangsamen jeden Job, der dorthin schreibt |
| Das Netzwerk | Zwischen dem SMART Migration-Server, der Quelle und Nextcloud – bei vielen Dateien ist die Latenz wichtiger als die Bandbreite |
| Gleichzeitige Jobs | Der SMART Migration-Server führt höchstens vier Jobs gleichzeitig aus; weitere Jobs warten, bis sie an der Reihe sind |
| Die Edition | Enterprise+ 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 Wirklichkeit: Unterbrechungen sind normal
Abschnitt betitelt „Die Wirklichkeit: Unterbrechungen sind normal“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 geschieht | Auswirkung auf die Migration | Was zu tun ist |
|---|---|---|
| Netzwerkausfälle | Eine Verbindung zwischen dem SMART Migration-Server, der Quelle und Nextcloud bricht ab: Eine Datei schlägt fehl, oder ein ganzer Lauf wird beendet | Prüfen Sie das Ergebnis des Laufs und die Dateiprobleme, und führen Sie den Job erneut aus |
| Drosselung | Microsoft 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 Minuten | Führen Sie die größten Jobs abends und am Wochenende aus; siehe SPO Rate Limit Delay in den Laufdetails |
| Serverneustarts | Windows-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 an | Vereinbaren Sie Wartungsfenster mit der IT, und prüfen Sie die laufenden Jobs, sobald der Server wieder verfügbar ist |
| Fehlende Berechtigungen | Eine Website, Bibliothek, ein OneDrive oder ein Ordner, die die App-Registrierung oder das Dienstkonto nicht lesen kann; Dateien mit eigenen Berechtigungen | Der 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 Dateien | Gesperrte, ausgecheckte oder in einer Anwendung geöffnete Dateien können nicht immer gelesen werden | Sie werden unter Dateiprobleme aufgeführt; führen Sie den Job später erneut aus |
| Abgelaufene Anmeldedaten | Ein ablaufendes Zertifikat oder Kennwort, ein widerrufenes App-Kennwort: Alle Jobs werden beendet, bis die Anmeldedaten erneuert sind | Notieren Sie die Ablaufdaten vor Projektbeginn |
| Nextcloud verweigert Anfragen | Fehlgeschlagene 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 beendet | Korrigieren 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 voll | Eine volle Festplatte oder ein erreichtes Kontingent stoppt die Schreibvorgänge; Virenscans und Sicherungsfenster verlangsamen sie | Prüfen Sie vor jeder Welle den freien Speicherplatz und die Kontingente |
| Die Benutzer arbeiten weiter | Dateien ändern sich in der Quelle, während sie migriert werden | Planen Sie vor der Umstellung einen abschließenden Nachhol-Lauf ein |
| Entscheidungen und Korrekturen | Berechtigungsanfragen, Antworten von Besitzern und Freigaben kosten Zeit der Beteiligten – oft Tage | Planen 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.
Jobs ohne Analyse-Lauf
Abschnitt betitelt „Jobs ohne Analyse-Lauf“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.
Die Migration beschleunigen
Abschnitt betitelt „Die Migration beschleunigen“- Lassen Sie weg, was niemand nutzt, mit
From DateundSource File Type, und begrenzen Sie die Versionen mitVersion 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
Priorityzu. - 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