Handleiding: Hoe voer ik een image migratie uit?
Hoe voer ik een image migratie uit?
In dit artikel leg ik je globaal uit hoe je een image migratie uitvoert. Dit is niet de mooiste manier om een server te migreren! We raden je aan om een nieuwe, schone server op te zetten met een gloednieuw OS. Het migreren gaat in 3 stappen. Eerst moet de huidige server voorbereid worden. Vervolgens moeten we de server overzetten, en daarna moeten we de server weer aan de gang krijgen op het nieuwe platform.
- Enige kennis/ervaring met de command line
- Geduld en tijd
- Root toegang (alle stappen moeten worden uitgevoerd als root gebruiker)
Stap 1: Server imagen en overzetten
Stap 1.1: Server uitzetten, en schijf toekennen aan speciale migratieserver
Voor deze stap raad ik je aan om de server uit te zetten, en de harde schijf te laten koppelen aan een nieuwe, speciale migratieserver op ons oude platform. De primaire disk van de server die je wilt migreren is dan een secundaire disk van een speciale migratieserver. Op die manier kun je server imagen terwijl hij niet gebruikt wordt.
Deze server kun je zelf aanmaken met een besturingssysteem naar keuze. Kies 1 waar je makkelijk mee overweg kunt, zo lang er maar Linux op staat.
Wil je geen speciale migratieserver gebruiken? Zet dan zo veel mogelijk services uit zodat er zo weinig mogelijk activiteit op de server is. Zet zo veel mogelijk services uit, denk hierbij aan je webserver, mailserver, database server et cetera.
Op het diagram zou het er ongeveer zo uit zien. Zoals je ziet is de harde schijf van je server nu gekoppeld aan de migratie server.
Stap 1.2: Nieuwe server aanmaken op het nieuwe platform
Maak een nieuwe server aan op het nieuwe platform. De goedkoopste is prima voor nu, je kunt later nog opschalen. De server moet de volgende dingen hebben:
- Linux distributie; (GEEN Windows/BSD). We gebruiken deze alleen voor het imagen, het mag dus ook iets anders zijn dan de server die je gaat verhuizen
- Extra harde schijf die net zo groot is als de oude server
- Primaire harde schijf die groter is dan de image
Stap 1.3: Oude server imagen over SSH
Locatie: Migratieserver oude platform
We moeten weten welke schijf van de migratieserver geimaged moet worden. Log in op de migratieserver oude platform.
Gebruik het commando: lsblk
Dit is ongeveer de output:
vdb 252:0 0 50G 0 disk
└─vdb1 252:1 0 50G 0 part /
Ik heb de schijf van de server aan de migratieserver gekoppeld. Je kunt zien dat op vdb een OS staat doordat er een partitie op zit met het type '/'.
In mijn geval is het dus de schijf 'vdb' die gemigreerd moet worden.
Locatie: Nieuwe server
SSH naar de nieuwe server of gebruik de webterminal.
ssh root@server_ip "dd if=/dev/vd# | gzip -1 -" | dd of=image.img.gz
Vervang /dev/vd# door de juiste schijf die we in de vorige stap hebben bekeken. In mijn geval zou dat dus /dev/vda zijn (niet vda1, we willen de hele schijf).
En vervang 'server_ip' door het IP van de migratieserver. Vul het wachtwoord in.
Dit kan een tijdje duren, dus haal gerust een bakje koffie ondertussen ;)
Als het afgerond is zie je hoe groot de image geworden is. Dit ziet er zo ongeveer
2368+0 records in
2368+0 records out
1212416 bytes (1.2 MB, 1.2 MiB) copied, 2.61331 s, 464 kB/s
Stap 1.4: Image uitpakken
In deze stap gaan we de image uitpakken. Dat kan ook weer een tijdje duren. Gebruik hiervoor het volgende command:
gunzip -c image.img.gz | dd of=/dev/vd# bs=16M oflag=direct
Gebruik in plaats van '/dev/vd#' de schijf die voor jou van toepassing is. Kijk wederom met 'lsblk' welke schijf dat is. Dit kan even duren. Hier is het dus tijd voor nog een bakje koffie (of thee).
Stap 2: Nieuwe server booten met GRUB
In deze stap zorgen we ervoor dat de server op het nieuwe platform werkt.
Hierbij repareren we de netwerkconfig en voeg ik een nieuwe swap partitie toe.
Stap 2.1: Ontkoppel de primaire harde schijf en koppel een Ubuntu Live CD
Ontkoppel de primaire harde schijf, die heet als het goed is 'Device 1'. Koppel een Ubuntu Live CD als cdrom , en zet de bootvolgorde op 'cdrom - drive' open de terminal. Het mag ook een andere live CD zijn, het gaat even om de terminal die we krijgen.
Stap 2.2: Mount de schijf van je OS
Mount de partitie waar je installatie op staat. Dit is als het goed is /dev/vda1, check met lsblk
Nu moet je de directories binden die Grub nodig heeft om besturingsystemen te detecteren
Open de root partitie met chroot
Stap 2.3: Installeer GRUB
In chroot voer je het volgende commando uit: (Let op! Zonder 1, dus de gehele schijf!)
Run nog een keer dit commando om zeker te zijn dat het geïnstalleerd is. Als het goed is staat er (hd0,1) met daar de goede schijf bij
Voer nog een update uit
Verlaat de chroot modus
Zet het systeem uit
Stap 3: Wek de server tot leven op het nieuwe platform
Stap 3.1: Disconnect de primaire harde schijf bij het nieuwe platform
Zet de nieuwe server uit als het uitpakken van de image gelukt is. Haal de primaire harde schijf weg bij het nieuwe platform, zodat de tweede harde schijf de primaire wordt en deze wordt opgestart.
Stap 3.2: Configureer het netwerk
Start de server op. Dit kan even duren omdat hij de missende swap partite probeert te laden, daar ziet hij uiteindelijk vanaf.
Configureer het netwerk via de web console. Hiervoor heb je het root wachtwoord nodig, hetzelfde als van het oude platform.
Het verschilt per OS hoe je het netwerk configureert. Je moet de configuratie omzetten van 'static' naar DHCP.
Ga naar de network config
Verander alles in DHCP
CentOS/RedHat heeft alle netwerkconfiguratie in losse bestanden staan. Zoek daarom met het volgende commando naar de interface configuraties
Open het eerste interface bestand om aan te passen bijvoorbeeld, ifcfg-eth0.
Het bestand moet minimaal onderstaande instellingen hebben. In het geval dat bij 'ONBOOT' 'no' staat mag je dat veranderen naar 'yes'.