Antwoorden op veel gestelde vragen en stap-voor-stap uitleg over hoe onze diensten werken kun je vinden op deze pagina.
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.
Benodigdheden:
- Enige kennis/ervaring met de command line
- Geduld en tijd
- Root toegang (alle stappen moeten worden uitgevoerd als root gebruiker)
Huidige situatie:
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.
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
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:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 50G 0 disk
└─vda1 252:1 0 50G 0 part /
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.
Voer dit commando uit:
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
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).
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.
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.
Mount de partitie waar je installatie op staat. Dit is als het goed is /dev/vda1, check met lsblk
sudo mount /dev/vda1 /mnt
Nu moet je de directories binden die Grub nodig heeft om besturingsystemen te detecteren
mount --bind /dev /mnt/dev &&
mount --bind /dev/pts /mnt/dev/pts &&
mount --bind /proc /mnt/proc &&
mount --bind /sys /mnt/sys
Open de root partitie met chroot
chroot /mnt
In chroot voer je het volgende commando uit: (Let op! Zonder 1, dus de gehele schijf!)
grub-install /dev/vda
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
grub-install --recheck /dev/sdX
Voer nog een update uit
update-grub
Verlaat de chroot modus
exit
Zet het systeem uit
shutdown now
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.
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.
Ubuntu/Debian:
Ga naar de network config
sudo nano /etc/network/interfaces
Verander alles in DHCP
Dat ziet er ongeveer zo uit:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet dhcp
auto eth2
iface eth2 inet6 auto
CentOS/RedHat:
CentOS/RedHat heeft alle netwerkconfiguratie in losse bestanden staan. Zoek daarom met het volgende commando naar de interface configuraties
ls /etc/sysconfig/network-scripts/ | grep ifcfg-
Open het eerste interface bestand om aan te passen bijvoorbeeld, ifcfg-eth0.
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
Het bestand moet minimaal onderstaande instellingen hebben. In het geval dat bij 'ONBOOT' 'no' staat mag je dat veranderen naar 'yes'.
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
Je moet waarschijnlijk hetzelfde doen voor andere interfaces als je deze hebt/wilt gebruiken.
Swap toevoegen op Ubuntu/Debian: https://linuxize.com/post/how-to-add-swap-space-on-ubuntu-18-04/
Swap toevoegen op CentOS/RHEL: https://www.thegeekdiary.com/centos-rhel-how-to-add-swap-file/
Na het rebooten moet je server up en running zijn! Vergeet niet alle IP's in de DNS te wijzigen.
Staat het antwoord op je vraag er niet tussen, of heb je liever persoonijk contact? Neem dan contact met ons op. We helpen je graag verder.
Meld je aan en binnen enkele minuten draait je eerste server of container.