@@PRODUCT@@

Klanten migreren in golven

Je verhuist klanten van je oude DirectAdmin-, cPanel- of Plesk-servers naar CoreCP niet in één nacht, maar in golven: een handvol accounts tegelijk, elke golf dezelfde stappen, en pas de volgende golf als de vorige rustig draait. Dit artike

Geschreven voor: Beheerder

Je verhuist klanten van je oude DirectAdmin-, cPanel- of Plesk-servers naar CoreCP niet in één nacht, maar in golven: een handvol accounts tegelijk, elke golf dezelfde stappen, en pas de volgende golf als de vorige rustig draait. Dit artikel is het draaiboek per golf. Het gaat ervan uit dat je DNS en je oude panelen kent; het zegt precies wat je in CoreCP doet.

Elke golf heeft vijf fasen: voorbereiden, proefmigratie, omschakeling, nazorg en — als het moet — terugval. Alleen de omschakeling merkt de klant, en die duurt zo kort als de laatste kopie.

Een golf samenstellen

Begin met je eigen sites, daarna kleine klanten, en bewaar de grote webshops voor als de werkwijze in je vingers zit. Een golf komt altijd van één bronserver en gaat naar één doelserver.

In het migratiescherm kies je de accounts van een golf met:

  • Alleen deze accounts (komma-gescheiden) — de golf, bij naam;
  • Deze accounts overslaan — wat later komt;
  • Alleen accounts van deze reseller op de bron — een hele reseller in één golf (DirectAdmin en cPanel; Plesk leest de eigenaar uit elke back-up);
  • Maximaal aantal accounts — voor de proefmigratie: eerst drie.

Voorbereiden, dagen vooraf

  1. Verlaag de TTL van elke zone van de golf op het bronpaneel naar 300 seconden, en wacht tot de oude TTL verlopen is. Stond hij op 86400, dan is dat een dag. Dit maakt zowel de omschakeling als de terugval snel.
  2. Zet de doelserver klaar. Installeer de PHP-series die de bron gebruikt (zie PHP- en databaseversies); een website zonder passende serie wordt overgeslagen, tenzij je Ontbrekende PHP-versie vervangen door de standaard aanzet. Maak de resellers aan die je wilt houden, en de pakketten: resellerpakketten uit cPanel komen niet mee.
  3. Geef de doelserver toegang tot de bron: een SSH-sleutel op de doelserver, waarvan de publieke helft op de bron staat. In het paneel vul je alleen het pad naar die sleutel in, nooit de sleutel zelf.

De proefmigratie

Ga naar Migratie → Nieuwe migratie (/migrations/new).

  1. Kies het Bronpaneel en Externe server, vul bij Bron root@oude-server in en kies de Doelserver.
  2. Kies de Methode (of laat auto kiezen) en klik Bron controleren. Die controleert of de bron alles heeft wat die methode nodig heeft: toegang, de accounts, en waar de methode op de bron schrijft ook de vrije ruimte. Los op wat hij noemt.
  3. Vul de accounts van de golf in, zet Maximaal aantal accounts op 3 en klik Mappingplan bekijken (dry-run). Dit schrijft niets. Per account zie je welke websites overgeslagen zouden worden, welke mailboxen een nieuw wachtwoord nodig hebben, welke certificaten bijna verlopen en welke A-records meeverhuizen.
  4. Herhaal tot het plan het plan is dat je wilt, en dan zonder limiet voor de hele golf.

Per bronpaneel

DirectAdmincPanel / WHMPlesk
Methodennative, assemble (alleen lezen), dirpkgacct (root), user (login van het account), dirnative (root), dir
Vooraf kopiëren terwijl de bron draaitja, met assemblenee: een account komt als één archiefnee: een abonnement komt als één export
Wat een account wordteen DirectAdmin-gebruikereen cPanel-accounteen abonnement; je kiest het op hoofddomein, het account heet naar de systeemgebruiker
Bevriezen op de brongebruiker SuspendManage Account Suspension in WHMabonnement Suspend
Na de omschakelingde delta in dezelfde rundezelfde import nog één keerdezelfde import nog één keer

Een import nog een keer draaien is veilig: wat er al staat blijft staan, zonder dubbele mailboxen of records. Zo haal je binnen wat er tussen proef en omschakeling op de bron veranderde.

Bij DirectAdmin met assemble kun je de bestanden en maildirs dagen vooraf kopiëren terwijl de klant gewoon doorwerkt, en daarna zo vaak herhalen als je wilt; elke keer is een delta. Dat voorkopiëren doe je op de terminal (--presync, zie onderaan). Databases gaan nooit mee in een voorkopie: een dump van uren oud mist de bestellingen van die uren. Die worden bij de omschakeling vers gedumpt.

De omschakeling

  1. Bevries de accounts van de golf op de bron (tabel hierboven). Vanaf nu schrijft niemand meer op de bron.
  2. Migreer: klik Nu migreren, of kies bij Onderbroken run hervatten de run van je voorkopie. Volg de voortgang op het migratiescherm of onder Taken. Wordt de run onderbroken, start hem dan opnieuw met dezelfde keuze; hij gaat verder bij het account waar hij was.
  3. Controleer elke site op de doelserver voordat de wereld hem ziet: een hosts-regel op je eigen machine, of een verzoek met de juiste Host-header rechtstreeks naar het adres van de server.
  4. Zet DNS om. Beheert CoreCP de zone, verander dan de delegatie bij de registrar naar je CoreCP-naamservers; de zone is al geïmporteerd en antwoordt. Blijft de DNS van de klant waar hij is, zet daar dan de A- en AAAA-records om. Een SPF-record dat het oude adres noemt, is door de import wél gemeld maar niet herschreven: pas dat per domein zelf aan.

Records die precies naar het oude adres wezen, wijzen na de import al naar de doelserver; wil je dat niet, zet dan DNS op het oude IP laten staan aan.

Nazorg

Open de migratie (/migrations/:migration). Per account staat er OK, WARN of FAIL:

  • OK: aanwezig en bruikbaar, gecontroleerd op de draaiende server;
  • WARN: aanwezig, maar er moet iemand iets beslissen — meestal een certificaat dat opnieuw aangevraagd moet worden, een DKIM-record onder de nieuwe selector, of een mailbox waarvan het wachtwoord niet mee kon;
  • FAIL: het zat in de back-up en het staat er niet. Dat is dataverlies, en de golf is pas klaar als die regel weg is.

Zet daarna de TTL's terug op een normale waarde, en pas als de golf een tijd goed draait ruim je de werkkopie van de run op.

Terugval

  • Vóór de DNS-omschakeling is er niets verhuisd: de bron bedient nog en alles in CoreCP is een kopie. Terugvallen is niets doen — hef de bevriezing op de bron op.
  • Na de omschakeling zet je DNS terug naar de bron en hef je daar de bevriezing op. Dankzij de lage TTL is dat binnen minuten overal. De bron is inhoudelijk nooit veranderd: alleen de methoden die op de bron schrijven (native, pkgacct, user) maken er een eigen back-up en ruimen die weer op, dus hij is precies de server die hij was.
  • Wat intussen in CoreCP binnenkwam — mail, bestellingen — staat op de doelserver. Haal dat over vóór je het account daar verwijdert; verwijderen (corectl account remove) doe je pas als je besloten hebt dat de golf niet doorgaat.

Wil je een klant met zo min mogelijk stilstand verhuizen, zonder de bron te bevriezen, gebruik dan een live migratie. Accounts die al op CoreCP staan verhuis je tussen je eigen servers met Accounts herverdelen over je servers.

Vanaf de terminal

Op de doelserver, voor een DirectAdmin-golf; voor cPanel en Plesk is het hetzelfde met import cpanel-server of import plesk-server, zonder --presync:

OLD=root@oude-server.example.nl
KEY=/root/.ssh/migratie
corectl php list
corectl php add 7.4
corectl account add reseller1 --type reseller
corectl import directadmin-server $OLD --identity $KEY --check
corectl import directadmin-server $OLD --identity $KEY --mode assemble --accounts klant1,klant2,klant3 --dry-run --limit 3
corectl import directadmin-server $OLD --identity $KEY --mode assemble --accounts klant1,klant2,klant3 --presync
corectl import directadmin-server --resume <run> --identity $KEY --report /root/golf1.json
corectl import run <run>
corectl ssl issue voorbeeld.nl
corectl mail dkim show voorbeeld.nl
corectl import run remove <run>

Op het paneel, de migraties die nu lopen:

corecp-panel tasks list --source migration --active

Zie ook

  • Van DirectAdmin, cPanel of Plesk naar CoreCP — waar je wat terugvindt.
  • Van cPanel migreren en Van Plesk migreren — wat er per paneel wel en niet meekomt.
  • Een live migratie uitvoeren.