Table des matières
Migrer son serveur virtuel vers un autre centre de données
La migration d'un serveur virtuel vers un autre centre de données se fait en plusieurs étapes, et est plus ou moins complexe selon les services que vous utilisez. Ce tutoriel détaillera un exemple de migration de serveur virtuel vers un centre de données situé dans un autre pays.
Globalement, la migration se fait en quelques étapes qui sont les suivantes :
- Préparer votre ancien disque système à la migration.
- Faire une copie du disque système du serveur virtuel que vous souhaitez migrer
- Créer un nouveau serveur ainsi qu'un nouveau disque de données dans un centre de données différent.
- Créer un nouveau disque à partir de la copie, et procéder à la copie des données du disque système vers le disque situé sur le nouveau centre de données.
- Modifier les fichiers de zone DNS de vos domaines afin de les faire pointer vers les nouveaux serveurs.
Étape 1 - Préparer la migration
Par défaut, l'interface réseau primaire est configurée de manière statique. Les adresses IP ne pouvant pas migrer d'un centre de données vers un autre, votre serveur va en hériter d'une nouvelle. Par conséquent, vous devez configurer l'interface principale pour qu'elle hérite de sa configuration via DHCP.
Pour ce faire, modifiez le bloc suivant du fichier /etc/network/interfaces :
auto eth0 iface eth0 inet static address x.x.x.x netmask 255.255.254.0 gateway 185.26.125.254
Pour qu'il corresponde à :
auto eth0 iface eth0 inet dhcp
Retirez également 'eth0' de la variable 'CONFIG_NODHCP dans le fichier /etc/default/gandi :
Avant :
CONFIG_NODHCP="eth0"
Après :
CONFIG_NODHCP=""
Étape 2 - Copier le disque système en production
Créez une copie de votre disque avant toute manipulation afin de pouvoir revenir en arrière si nécessaire :
http://wiki.gandi.net/fr/iaas/references/disk/duplicate
$ gandi disk list $ gandi disk create --name sys_france_copy --source sys_france
Étape 3 - Créer le nouveau serveur
Créez le nouveau serveur sur le centre de données situé au Luxembourg :
https://wiki.gandi.net/fr/iaas/references/server/create
$ gandi vm create --hostname luxembourg --datacenter LU-SD1 --ip-version 4 --memory 512 --cores 2 --image 'Ubuntu 16.04 LTS' --password password: **Repeat for confirmation:** * root user will be created. * Configuration used: 2 cores, 512Mb memory, ip v4+v6, image Ubuntu 16.04 LTS, hostname: luxembourg, datacenter: LU Creating your Virtual Machine luxembourg. Progress: [###################################] 100.00% 00:00:57 Your Virtual Machine luxembourg has been created. Waiting for the vm to come online
Étape 4 - Créer le nouveau disque système
Créez et attachez le futur disque système sur le nouveau serveur :
Création du disque - https://wiki.gandi.net/fr/iaas/references/disk/create
Attachement du disque - https://wiki.gandi.net/fr/iaas/references/disk/attach
$ gandi disk create --datacenter LU --name sys_lux --size 5G --vm luxembourg Creating your disk. Progress: [#######################################] 100.00% 00:00:39 Attaching your disk. Progress: [#######################################] 100.00% 00:00:29
Connectez-vous en SSH sur le nouveau serveur nommé 'luxembourg' :
https://wiki.gandi.net/fr/iaas/references/server/ssh
$ gandi vm ssh luxembourg
- Démonter le disque de données, la commande mount
vous aidera à l'identifier :
# mount /dev/sda on / type ext4 (rw,noatime,errors=remount-ro) [...] /dev/sdc on /srv/sys_lux type ext3 (rw,nosuid,nodev,noatime)
# umount /dev/sdc
- Ouvrez les accès SSH à l'utilisateur root sur le serveur nommé 'luxembourg' :
# nano /etc/ssh/sshd_config
Remplacez la directive PermitRootLogin without-password
par PermitRootLogin yes
, puis relancez le service SSH :
# /etc/init.d/ssh restart
Copier les données vers le nouveau disque système
- Créez une copie du disque système en production et attachez-le à votre ancien serveur :
Copie du disque - https://wiki.gandi.net/fr/iaas/references/disk/duplicate
Attachement du disque - https://wiki.gandi.net/fr/iaas/references/disk/attach
$ gandi disk create --datacenter FR --source sys_france --vm france Creating your disk. Progress: [##########################################################] 100.00% 00:00:22 Attaching your disk. Progress: [##########################################################] 100.00% 00:00:23
- Connectez-vous à l'ancien serveur via SSH.
Le nouveau disque devrait être monté sur le serveur, sur le point de montage /srv/label_disque
. Avant d'effectuer la copie vers le nouveau serveur, nous allons effectuer une vérification de l'intégrité du système de fichier.
Pour cela, identifiez le disque sur lequel vous allez travailler avec la commande mount
et démontez le avec umount
:
# umount /dev/xvdb
Puis effectuez la vérification du disque avec fsck
:
# fsck /dev/xvdb
- Lancez la copie du disque :
# dd iflag=direct bs=8k if=/dev/xvdb | ssh ad.re.sse.ip "dd bs=8k of=/dev/sdc"
- Configuration du kernel sur le disque sys_lux qu'on vient de copier :
$ gandi disk update sys_lux --kernel 3.2-x86_64 Updating your disk. Progress: [###############################################] 100.00% 00:00:26
- Stoppez le serveur nommé 'luxembourg' :
$ gandi vm stop luxembourg Stopping your Virtual Machine(s) 'luxembourg'. Progress: [###########################################] 100.00% 00:00:35
- Détachez le disque sys_lux du serveur nommé 'luxembourg' :
$ gandi disk detach sys_lux Are you sure you want to detach sys_lux? [y/N]: y The disk is still attached to the vm 166658. Will detach it. Detaching your disk(s). Progress: [########################################] 100.00% 00:00:04
- Attachez à nouveau le disque sys_lux au serveur nommé 'luxembourg', cette fois-ci, nous le déclarons en tant que disque de boot :
https://wiki.gandi.net/fr/iaas/references/disk/boot
$ gandi disk attach sys_lux --position 0 luxembourg Are you sure you want to attach disk 'sys_lux' to vm 'luxembourg' [y/N]: y Attaching your disk(s). Progress: [################################################] 100.00% 00:00:20
- Démarrage du nouveau serveur :
$ gandi vm start luxembourg
- Connectez-vous au nouveau serveur pour vérifier que tout est en ordre.
Étape 5 - Préparer le nouveau pointage DNS du domaine
- Modifier les fichiers de zone DNS de vos domaines afin de les faire pointer vers les nouveaux serveurs : http://wiki.gandi.net/fr/dns/zone/edit
- gandicli : Voir les entrées existantes de votre domaine
$ gandi record list example.net
- gandicli : Supprimer l'enregistrement cible
$ gandi record delete example.net --type A --name 'nom de l'entrée ex : "www"'
- gandicli : Remplacer par la nouvelle adresse IP
$ gandi record create example.net --name www --type A --value 'ad.re.sse.ip --ttl 3600