Ga naar inhoud
Contact us

De servers dimensioneren voor een grote migratie

De app bewaart één rij per job en één rij per run, elk met de aantallen van de run (bestanden, versies, volume, problemen), en geen rij per bestand. Een run die een miljoen bestanden heeft verplaatst, is één rij in de Run-geschiedenis, dus het aantal bestanden maakt voor de app geen verschil: 100 miljoen bestanden en meer worden geteld zonder dat de app groeit.

De tabellen worden op de server gefilterd, gesorteerd en gepagineerd, en de cijfers van het Dashboard worden door de database geteld, zodat elk scherm snel blijft, hoe groot de migratie ook wordt. De app is op deze omvang gemeten op een kleine server, met 2 virtuele CPU's en 512 MB voor PHP:

WatGemeten met
Jobs25.000, in 100 groepen en met 50 tags
Rijen in de Run-geschiedenis75.000, en 225.000 voor het PHP-geheugen dat een weergave nodig heeft
Bestandsproblemen200.000 en meer
Bestanden die door de runs zijn geteldMinstens 100 miljoen; alleen hun aantallen staan in de app
Jobs tegelijk actief4, het maximum dat de SMART Migration-server uitvoert
PHP-geheugen dat een verzoek nodig heeftHooguit ongeveer 140 MB, voor het tabblad Jobs; 45 tot 95 MB voor de andere tabbladen. Zie PHP-geheugen per verzoek

De app verwerkt elk aantal jobs, maar één job mag niet te groot zijn: een bibliotheek van honderdduizenden of miljoenen bestanden wordt per map in jobs opgesplitst; anders is de job traag en wordt hij mogelijk niet voltooid. Zie Bronnen

De Nextcloud-server waarnaar de bestanden worden geschreven, wordt gedimensioneerd voor de bestanden zelf, zoals de volgende sectie uitlegt.

SMART Migration schrijft elk bestand rechtstreeks in Nextcloud Files via WebDAV, aangemeld met een app-wachtwoord. De app bevat alleen de jobs en hun resultaten, dus de bestanden gaan er nooit doorheen. Elk bestand, en elke versie ervan, is een afzonderlijk verzoek, dus de Nextcloud-server wordt gedimensioneerd voor het aantal bestanden per uur dat vier jobs tegelijk schrijven, niet alleen voor het volume.

WatWaarom het ertoe doet
PHP-workersElke upload bezet een PHP-worker zolang hij wordt geschreven. Zijn er te weinig, dan komen de verzoeken in een wachtrij: de migratie vertraagt, en de pagina's van Nextcloud ook, voor alle andere gebruikers
RedisNextcloud vergrendelt elk bestand dat het schrijft. Met Redis voor bestandsvergrendeling en caching blijven de vergrendelingen buiten de database
De databaseElk bestand is een rij in de bestandscache van Nextcloud, geschreven zodra het bestand binnenkomt. Een snelle database op SSD houdt veel kleine bestanden bij
OpslagSnelle schijven met ruimte voor de hele migratie, inclusief versies, en quota op de doelaccounts en Team Folders die daar ruimte voor laten
GroottelimietenDe limieten van PHP, en die van een eventuele proxy vóór Nextcloud, voor de grootte en duur van een verzoek moeten de grootste bestanden toelaten
PHP-geheugenHoud memory_limit op 512 MB, zoals Nextcloud aanbeveelt. Het grootste verzoek van de app, het tabblad Jobs, heeft daarvan ongeveer 140 MB nodig, en Run-geschiedenis leest zijn runs deel voor deel, zodat de weergaven klein blijven naarmate de geschiedenis groeit. Zie Prestaties en belasting van de Nextcloud-server
Werk bij elke uploadAntivirusscans, versleuteling aan serverzijde en regels voor bestandstoegangsbeheer voegen tijd toe aan elk bestand. Test de snelheid met deze functies ingeschakeld, zoals ze tijdens de migratie zullen zijn

Nextcloud beperkt niet hoeveel bestanden een aangemeld account schrijft. De brute-force-beveiliging beschermt in plaats daarvan tegen het raden van wachtwoorden. Elke mislukte aanmelding vanaf een adres vertraagt de volgende verzoeken vanaf dat adres, ook de geldige. Na te veel mislukte pogingen weigert Nextcloud ze urenlang met 429 Too Many Requests. Omdat de SMART Migration-server zich vanaf één adres aanmeldt, stopt dit elke job, en toont de app Offline, omdat de server ook de API van de app niet meer kan bereiken.

Een mislukte aanmelding tijdens een migratie betekent meestal een wachtwoord dat niet meer werkt: een app-wachtwoord dat is ingetrokken onder Instellingen → Beveiliging, een gewijzigd wachtwoord van het serviceaccount, of het app-wachtwoord dat de app voor een run in de bestanden van een gebruiker heeft uitgegeven en dat na afloop van de run nog wordt gebruikt. Zo voorkomt u het, en zo heft u het op:

  1. Herstel eerst het wachtwoord

    Geef de SMART Migration-server een werkend app-wachtwoord. Zolang de server een wachtwoord blijft sturen dat mislukt, blijft Nextcloud hem afremmen.

  2. Zet het adres van de server op de toestaanlijst

    Voeg in Beheerinstellingen → Beveiliging van Nextcloud het adres van de SMART Migration-server toe aan de Brute-force-toestaanlijst en vink Snelheidsbeperking omzeilen voor toegestane IP's aan. Een adres op de lijst kan wachtwoorden proberen zonder te worden afgeremd, dus voeg alleen dat ene vaste adres toe.

  3. Hef de beperking op voor een adres dat al wordt afgeremd

    occ security:bruteforce:attempts <address> toont hoe ver het is gevorderd, en occ security:bruteforce:reset <address> heft de beperking direct op.

Achter een proxy delen alle clients één adres

Wanneer Nextcloud achter een reverse proxy staat zonder dat trusted_proxies in de configuratie is ingesteld, ziet Nextcloud elke client met het adres van de proxy. Een verkeerd wachtwoord dat door een willekeurige gebruiker wordt ingetypt, remt dan iedereen af, ook de SMART Migration-server. Stel trusted_proxies in, zodat Nextcloud het eigen adres van elke client ziet.

Een 429 kan ook afkomstig zijn van iets vóór Nextcloud: een reverse proxy, een firewall of de beveiliging van een hostingprovider die het aantal verzoeken per adres beperkt. Laat het adres van de SMART Migration-server daar ook door. Een 503 Service Unavailable betekent dat Nextcloud overbelast is of in onderhoudsmodus staat. Zie Wat een migratie inhoudt en wat de snelheid bepaalt

Waar de gegevens op bestandsniveau worden bewaard

Section titled “Waar de gegevens op bestandsniveau worden bewaard”

Elk bestand dat een Discovery- of migratierun verwerkt, wordt vastgelegd in de PostgreSQL-rapportagedatabase: waar het staat, de grootte, versies, datums, labels, metadata en wat ermee is gebeurd. Dat zijn de gegevens die SMART BI.pbix leest, en de gegevens die met de migratie meegroeien.

Ze groeien met elke run, niet alleen met elk bestand

Een bestand dat is ontdekt en daarna in een test en nog eens echt is gemigreerd, wordt door elk van die runs vastgelegd. Terugkerende inhaalruns voegen er ook aan toe. Plan de rapportagedatabase voor de runs die het project zal uitvoeren, niet alleen voor de bestanden in de bron.

Bij tientallen miljoenen bestanden is de rapportagedatabase een eigen server, geen hoekje van de SMART Migration-server. Elke run schrijft ernaar zolang de migratie loopt, en een vernieuwing in Power BI leest in één keer de volledige bestandsinventaris eruit.

Uitgangspunt bij 100 miljoen bestandenWaarom
OpslagSnelle SSD of NVMe, met enkele honderden GB voor de gegevens, de indexen en groeiruimteDe bestandsrijen bevatten lange paden en metadata; trage schijven laten elke vernieuwing en de schrijfacties van elke run wachten
Geheugen32–64 GBZodat de indexen en de meest gelezen gegevens in het geheugen blijven
Processor8 cores of meerRuns schrijven terwijl vernieuwingen lezen
NetwerkEen snelle verbinding met de SMART Migration-server en met de computers die het rapport vernieuwenEen vernieuwing verplaatst de volledige inventaris over deze verbinding

Dit zijn uitgangspunten: de werkelijke behoefte hangt af van de metadata die de bronnen bevatten en van het aantal runs per bestand. Een gehoste PostgreSQL-service werkt ook, op dezelfde manier gedimensioneerd. Maak back-ups van de database zoals van elke productiedatabase: het is het dossier van de migratie.

Power BI Desktop importeert de gegevens van het rapport in het geheugen van de computer: zolang SMART BI.pbix geopend is, staat de volledige bestandsinventaris die het bevat in het RAM, en een vernieuwing heeft tot het dubbele nodig terwijl de nieuwe kopie naast de oude wordt opgebouwd. Lange tekstkolommen (paden en bestandsnamen) laten zich het minst comprimeren en nemen het meeste ruimte in.

Het minimum van Microsoft geldt voor het programma, niet voor deze gegevens

Microsoft vraagt 2 GB geheugen, 4 GB aanbevolen, om Power BI Desktop uit te voeren. Daarmee opent het programma; het houdt geen bestandsinventaris van tientallen miljoenen rijen vast. Voor een migratie van die omvang is een computer met 64–96 GB geheugen niet ongewoon.

Bestanden in het rapportGeheugen, als ruw uitgangspunt
Enkele miljoenen16–32 GB
Tientallen miljoenen64 GB
100 miljoen en meer64–96 GB, of meer
  • 64-bits Windows en de 64-bits Power BI Desktop, een snelle processor met veel cores en een SSD.
  • Vernieuw waar het geheugen is: één goed uitgeruste computer, of een virtuele machine die ervoor is gedimensioneerd, vernieuwt het rapport en uploadt het naar Nextcloud; alle anderen openen het geüploade bestand. Openen vraagt minder dan vernieuwen.
  • Beperk het rapport tot wat u nodig hebt: laat kolommen weg die geen enkele pagina gebruikt, of filter de gegevens op de betreffende golven of sites. Zie Het SMART BI-rapport aanpassen aan uw behoeften

Gepubliceerd in de Power BI-service heeft het semantische model van het rapport dezelfde behoefte, en de licentie bepaalt het plafond. Met Power BI Pro kan een semantisch model maximaal 1 GB bevatten. Op een Premium- of Fabric-capaciteit, met de opslagindeling voor grote semantische modellen, kan een model groeien tot het geheugen van de capaciteit:

Fabric-capaciteitMaximaal geheugen voor één semantisch model
F3210 GB
F6425 GB
F12850 GB
F256100 GB

Een vernieuwing kan het dubbele van de grootte van het model nodig hebben, dus een model dat de helft van het geheugen van de capaciteit benadert, kan mogelijk niet worden vernieuwd. De limieten van Microsoft veranderen: controleer ze in de documentatie van Microsoft voordat u een capaciteit kiest. Niets in SMART Migration heeft de service nodig; Power BI Desktop is gratis voor iedereen. Zie Power BI voor beginners

De bovenstaande cijfers zijn een richtlijn. De omvang die telt, is uw eigen omvang, en een pilot laat die zien:

  1. Voer Discovery uit op een representatief deel

    Voer Discovery uit op enkele sites, OneDrives en shares die op de rest lijken, niet alleen op de kleinste.

  2. Vernieuw het rapport en meet

    Vernieuw SMART BI.pbix in Power BI Desktop en noteer het geheugen dat het in Windows Taakbeheer inneemt, de grootte van het bestand en de grootte van de rapportagedatabase.

  3. Schaal op naar de hele migratie

    Vermenigvuldig met het aantal bestanden in de hele migratie, rekening houdend met het aantal runs dat elk bestand krijgt, en dimensioneer de PostgreSQL-server en de Power BI-computer voordat de grote golven beginnen.

Zie ook