Ga naar inhoud
Contact us

Wat een migratie inhoudt en wat de snelheid bepaalt

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.

Elke job werkt zijn bron bestand voor bestand af, en elk bestand doorloopt dezelfde stappen, ongeacht de grootte:

  1. 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.

  2. 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.

  3. 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.

  4. Het naar Nextcloud schrijven

    Het bestand wordt naar zijn map in Nextcloud geschreven, met zijn datums en, met MetaVox, zijn metadata.

  5. 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.

Hetzelfde volume kan een uur of een dag duren, afhankelijk van waaruit het bestaat en waar het naartoe gaat:

FactorWat het met de snelheid doet
Aantal bestandenElk bestand kost dezelfde stappen, dus 100.000 kleine bestanden duren veel langer dan honderd grote bestanden met hetzelfde volume
VersiegeschiedenisElke versie wordt als afzonderlijk bestand verplaatst; een bibliotheek met lange versiegeschiedenissen bevat vele malen het aantal huidige bestanden
VoorbereidenHet 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 bevatEen 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 365SharePoint 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 bestemmingEen drukke Nextcloud-server, trage opslag of een volle schijf vertraagt elke job die ernaar schrijft
Het netwerkTussen de SMART Migration-server, de bron en Nextcloud – bij veel bestanden is de latentie belangrijker dan de bandbreedte
Jobs tegelijkDe SMART Migration-server voert maximaal vier jobs tegelijk uit; meer jobs wachten op hun beurt
De editieEnterprise+ 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 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 gebeurtWat het met de migratie doetWat te doen
NetwerkuitvalEen verbinding tussen de SMART Migration-server, de bron en Nextcloud wordt verbroken: een bestand mislukt, of een hele run stoptControleer het resultaat van de run en Bestandsproblemen, en voer de job opnieuw uit
ThrottlingMicrosoft 365 vertraagt of weigert verzoeken wanneer de tenant druk is – het sterkst tijdens kantooruren – en een job wacht, soms urenlang telkens minuten achter elkaarVoer de grootste jobs 's avonds en in het weekend uit; zie SPO Rate Limit Delay in de rundetails
Herstarts van serversWindows-updates op de SMART Migration-server, updates en onderhoud van Nextcloud, een herstarte virtuele machine – de lopende jobs stoppen en de app toont OfflineSpreek onderhoudsvensters af met IT en controleer de lopende jobs zodra de server weer beschikbaar is
Ontbrekende rechtenEen site, bibliotheek, OneDrive of map die de App Registration of het serviceaccount niet kan lezen; bestanden met eigen rechtenDe run eindigt met een fout, of de bestanden worden vermeld bij Bestandsproblemen; verleen de toegang en voer de job opnieuw uit
Bestanden in gebruikBestanden die vergrendeld, uitgecheckt of in een toepassing geopend zijn, kunnen niet altijd worden gelezenZe worden vermeld bij Bestandsproblemen; voer de job later opnieuw uit
Verlopen referentiesEen certificaat of wachtwoord dat verloopt, een ingetrokken app-wachtwoord: elke job stopt totdat het is vernieuwdNoteer de vervaldatums voordat het project begint
Nextcloud weigert verzoekenMislukte 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 stoptCorrigeer het wachtwoord en zet het adres van de server op de brute-force-acceptatielijst van Nextcloud; zie „De servers dimensioneren” hieronder
De bestemming raakt volEen volle schijf of een bereikt quotum stopt het schrijven; antivirusscans en back-upvensters vertragen hetControleer de vrije ruimte en quota vóór elke golf
Mensen blijven werkenBestanden wijzigen in de bron terwijl ze worden gemigreerdPlan een laatste inhaalrun vóór de overstap
Beslissingen en correctiesAanvragen voor rechten, antwoorden van eigenaren en goedkeuringen kosten mensen tijd – vaak dagenPlan 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.

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.

  • Laat weg wat niemand gebruikt met From Date en Source File Type, en beperk de versies met Version 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