Geen bestandskopie
Een migratie verplaatst bestanden tussen twee systemen die elk hun eigen regels, limieten en belasting hebben. De snelheid van een kopie op een lokale schijf zegt er weinig over.
Wat er met elk bestand gebeurt
Section titled “Wat er met elk bestand gebeurt”Elke job werkt zijn bron bestand voor bestand af, en elk bestand doorloopt dezelfde stappen, ongeacht de grootte:
De job voorbereiden
SMART Migration maakt verbinding met de bron en de bestemming, leest de mappen van de bron en maakt een lijst van de bestanden die de filters van de job doorlaten. Er wordt geen bestand verplaatst voordat dit klaar is.
De bestemming bekijken
Voor elk bestand zoekt het op wat de bestemming al bevat en vergelijkt het dat – volgens de regel voor het toevoegen en overschrijven van bestanden – om te bepalen of het bestand wordt toegevoegd, vervangen of ongemoeid gelaten.
Het bestand en zijn versies lezen
Het bestand wordt uit de bron gelezen en, met versiegeschiedenis, ook elke versie: elke versie is een afzonderlijk bestand dat moet worden verplaatst.
Het naar Nextcloud schrijven
Het bestand wordt naar zijn map in Nextcloud geschreven, met zijn datums en, met MetaVox, zijn metadata.
Het resultaat vastleggen
De stap wordt gelogd, de cijfers van de run worden aan de app gerapporteerd en elk probleem wordt vastgelegd als bestandsprobleem.
De bytes worden alleen in de derde en vierde stap verplaatst. Al het andere bestaat uit aanroepen naar de bron of de bestemming, die elk via het netwerk worden beantwoord – en bij veel kleine bestanden duren die aanroepen veel langer dan de bytes.
Wat de snelheid bepaalt
Section titled “Wat de snelheid bepaalt”Hetzelfde volume kan een uur of een dag duren, afhankelijk van waaruit het bestaat en waar het naartoe gaat:
| Factor | Wat het met de snelheid doet |
|---|---|
| Aantal bestanden | Elk bestand kost dezelfde stappen, dus 100.000 kleine bestanden duren veel langer dan honderd grote bestanden met hetzelfde volume |
| Versiegeschiedenis | Elke versie wordt als afzonderlijk bestand verplaatst; een bibliotheek met lange versiegeschiedenissen bevat vele malen het aantal huidige bestanden |
| Voorbereiden | Het lezen van de mappen van de bron en de inhoud van de bestemming voordat het eerste bestand wordt verplaatst; bij een job met weinig bestanden is dit een groot deel van de tijd |
| Wat de bestemming bevat | Een herhaalde run vergelijkt elk bestand met de bestemming en weet pas daarna dat de meeste niets nodig hebben – tenzij het een incrementele run is, die alleen de bestanden leest en vergelijkt die sinds de laatste geslaagde run zijn gewijzigd |
| Throttling door Microsoft 365 | SharePoint Online en OneDrive beperken hoeveel verzoeken ze accepteren, en SMART Migration wacht wanneer zij aangeven dat het langzamer moet – weergegeven als SPO Rate Limit Delay in de rundetails |
| De bestemming | Een drukke Nextcloud-server, trage opslag of een volle schijf vertraagt elke job die ernaar schrijft |
| Het netwerk | Tussen de SMART Migration-server, de bron en Nextcloud – bij veel bestanden is de latentie belangrijker dan de bandbreedte |
| Jobs tegelijk | De SMART Migration-server voert maximaal vier jobs tegelijk uit; meer jobs wachten op hun beurt |
| De editie | Enterprise+ migreert tot drie keer zo snel als Enterprise |
Waarom het trager kan zijn dan u verwacht
Een doorvoer van een paar gigabyte per uur kan laag lijken naast de snelheid van het netwerk. Het is niet de overdrachtssnelheid: het is het volume dat per uur van de totale tijd van een job wordt verplaatst, inclusief alle bovenstaande stappen. Een eerste run van een grote bibliotheek, veel kleine bestanden of een tenant die wordt gethrottled, verlagen deze allemaal – en geen daarvan betekent dat er iets mis is.
De praktijk: onderbrekingen zijn normaal
Section titled “De praktijk: onderbrekingen zijn normaal”De bovenstaande cijfers beschrijven een migratie die zonder onderbreking verloopt. Geen enkele migratie doet dat. Bij weken werk verspreid over een tenant, een bestandsserver en een Nextcloud-server gaat er vanzelfsprekend van alles mis – niet omdat er iets kapot is, maar omdat echte systemen worden gedeeld, onderhouden en door mensen gebruikt terwijl de migratie loopt:
| Wat er gebeurt | Wat het met de migratie doet | Wat te doen |
|---|---|---|
| Netwerkuitval | Een verbinding tussen de SMART Migration-server, de bron en Nextcloud wordt verbroken: een bestand mislukt, of een hele run stopt | Controleer het resultaat van de run en Bestandsproblemen, en voer de job opnieuw uit |
| Throttling | Microsoft 365 vertraagt of weigert verzoeken wanneer de tenant druk is – het sterkst tijdens kantooruren – en een job wacht, soms urenlang telkens minuten achter elkaar | Voer de grootste jobs 's avonds en in het weekend uit; zie SPO Rate Limit Delay in de rundetails |
| Herstarts van servers | Windows-updates op de SMART Migration-server, updates en onderhoud van Nextcloud, een herstarte virtuele machine – de lopende jobs stoppen en de app toont Offline | Spreek onderhoudsvensters af met IT en controleer de lopende jobs zodra de server weer beschikbaar is |
| Ontbrekende rechten | Een site, bibliotheek, OneDrive of map die de App Registration of het serviceaccount niet kan lezen; bestanden met eigen rechten | De run eindigt met een fout, of de bestanden worden vermeld bij Bestandsproblemen; verleen de toegang en voer de job opnieuw uit |
| Bestanden in gebruik | Bestanden die vergrendeld, uitgecheckt of in een toepassing geopend zijn, kunnen niet altijd worden gelezen | Ze worden vermeld bij Bestandsproblemen; voer de job later opnieuw uit |
| Verlopen referenties | Een certificaat of wachtwoord dat verloopt, een ingetrokken app-wachtwoord: elke job stopt totdat het is vernieuwd | Noteer de vervaldatums voordat het project begint |
| Nextcloud weigert verzoeken | Mislukte aanmeldingen vanaf het adres van de SMART Migration-server zorgen ervoor dat Nextcloud elk verzoek daarvandaan vertraagt en ze vervolgens weigert met 429 Too Many Requests: elke job stopt | Corrigeer het wachtwoord en zet het adres van de server op de brute-force-acceptatielijst van Nextcloud; zie „De servers dimensioneren” hieronder |
| De bestemming raakt vol | Een volle schijf of een bereikt quotum stopt het schrijven; antivirusscans en back-upvensters vertragen het | Controleer de vrije ruimte en quota vóór elke golf |
| Mensen blijven werken | Bestanden wijzigen in de bron terwijl ze worden gemigreerd | Plan een laatste inhaalrun vóór de overstap |
| Beslissingen en correcties | Aanvragen voor rechten, antwoorden van eigenaren en goedkeuringen kosten mensen tijd – vaak dagen | Plan ze in de golven in, niet eromheen |
De meeste onderbrekingen kosten op zichzelf weinig, en de standaardregel voor bestaande bestanden maakt ze veilig: voer de job opnieuw uit en Nieuwe toevoegen, bestaande overschrijven indien nieuwer laat de al verplaatste bestanden ongemoeid en kopieert de rest. Wat ze kosten is kalendertijd – de uren tussen het moment dat een job stopte en het moment dat iemand het opmerkte, de oorzaak verhielp en de job opnieuw startte.
Plan voor de praktijk, niet voor de ideale situatie
De prognose meet de tijd dat jobs actief waren. De onderbrekingen binnen die runs – wachttijden door throttling, mislukte bestanden – zitten er al in; de tijd die verloren gaat terwijl er niets liep, niet. Beschouw de prognose als het beste scenario voor ononderbroken werk en plan de kalender met een marge erbovenop. Een pilotgolf die gedurende gewone werkdagen wordt uitgevoerd, met de bijbehorende onderbrekingen, laat zien hoe groot die marge in uw omgeving is.
Hoe het Dashboard de resterende tijd voorspelt
Section titled “Hoe het Dashboard de resterende tijd voorspelt”Onder de balken van Migratievoortgang toont het Dashboard drie regels die zijn berekend uit de eigen cijfers van de jobs. Houd de aanwijzer erboven voor een kaart die elke regel uitlegt, met de onderliggende cijfers.
Resterende tijd
De resterende bestanden maal de gemiddelde tijd per bestand, verdeeld over de jobs die tegelijk lopen.
Klaar rond
Wanneer de resterende bestanden zijn verplaatst in het tempo dat de lopende jobs nu halen.
Doorvoer
Het volume dat per uur van de tijd van een job wordt verplaatst, gemiddeld en op dit moment.
- De tijd per bestand komt uit het sessielogboek. Voor elke migratie wordt de tijd vanaf de start van de job in het logboek tot de laatste logregel gedeeld door het aantal bestanden dat is verplaatst. De voorbereidingstijd, vóórdat het eerste bestand wordt verplaatst, valt binnen die periode en wordt dus over de bestanden verdeeld. Voltooide migraties tellen mee met hun start en einde; lopende migraties met wat ze tot nu toe hebben gelogd. Samen leveren ze één gemiddelde op.
- De resterende tijd is het aantal nog te verplaatsen bestanden maal dat gemiddelde, gedeeld door het aantal migraties dat nu loopt – minimaal één. Wanneer er niets loopt, is het de tijd die één job tegelijk nodig zou hebben, en de regel vermeldt dat:
at the past pace. Het is werktijd: uren waarin geen job loopt, komen erbij. - Klaar rond is een schatting vanaf nu: het aantal bestanden per uur van elke lopende job sinds de start, opgeteld, en de resterende bestanden in dat tempo. Deze reageert direct op een trage bron, een drukke bestemming of throttling en schommelt daardoor meer dan de resterende tijd. Wanneer er niets loopt, is er geen schatting.
- Doorvoer is het volume dat per uur van de tijd van een job wordt verplaatst, in MB per uur: gemiddeld over de voltooide en lopende migraties, en op dit moment, alle lopende jobs samen. Hierin zijn alle stappen meegenomen, niet alleen de bytes. Wanneer er niets loopt, wordt alleen het gemiddelde getoond, gemarkeerd met
past migrations.
De prognose leert. Met slechts enkele voltooide migraties is ze grof; ze wordt stabieler naarmate meer jobs voltooid zijn, en de keuze onder Meten vanaf bepaalt van welke voltooide runs ze leert.
Jobs zonder Discovery-run
Section titled “Jobs zonder Discovery-run”De balken meten elke job af aan wat de laatste Discovery-run heeft geteld. Een job zonder zo'n run kan niet precies worden gemeten: het Dashboard telt hem mee met wat de laatste voltooide Migratie heeft verplaatst, of anders als gemiddelde job, zodat de resterende tijd hem ook omvat – maar slechts zo goed als die schatting bij de job past. Voer de jobs eerst uit als Discovery voor exacte cijfers. Voortgang voor Jobs zonder Discovery-Run legt uit hoe de schatting wordt gemaakt en hoeveel deze kan afwijken.
Het sneller laten gaan
Section titled “Het sneller laten gaan”- Laat weg wat niemand gebruikt met
From DateenSource File Type, en beperk de versies metVersion History Scope. - Houd vier jobs de klok rond actief: plan de grootste jobs voor de avond en het weekend en geef ze een hoge
Priority. - Verdeel de grootste bibliotheken over de golven, in plaats van er vier naast elkaar te laten lopen tegen één tenant die wordt gethrottled.
- Splits een bibliotheek met honderdduizenden of miljoenen bestanden in jobs met elk een deel van de mappen: één job voor alles is traag en wordt mogelijk helemaal niet voltooid. Zie Bronnen
- Voer terugkerende jobs uit vóór de overstap, zodat de laatste run alleen vergelijkt en kopieert wat is gewijzigd.
- Maak herhaalde runs incrementeel: met Incrementeel (alleen bestanden die sinds de laatste geslaagde run zijn gewijzigd) leest een run alleen de bestanden die sinds de laatste geslaagde run zijn gewijzigd en controleert alleen die tegen Nextcloud – een paar gewijzigde bestanden in plaats van de hele bibliotheek. Zie Incrementele runs: alleen de bestanden die sinds de laatste run zijn gewijzigd
- Controleer de bestemming: vrije ruimte, en een Nextcloud-server die is gedimensioneerd voor de belasting, met voldoende PHP-workers voor vier jobs die tegelijk schrijven. Zie De servers dimensioneren voor een grote migratie
- Houd de onderbrekingen kort: houd het Dashboard en de meldingen in de gaten, zodat een gestopte job binnen enkele minuten wordt opgemerkt in plaats van de volgende ochtend, en spreek onderhoudsvensters af met de beheerders van de servers. Zie Meldingen wanneer een job wordt uitgevoerd
Zie ook