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 :

  1. Préparer votre ancien disque système à la migration.
  2. Faire une copie du disque système du serveur virtuel que vous souhaitez migrer
  3. Créer un nouveau serveur ainsi qu'un nouveau disque de données dans un centre de données différent.
  4. 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.
  5. Modifier les fichiers de zone DNS de vos domaines afin de les faire pointer vers les nouveaux serveurs.

Les commandes commençant par `$ gandi` sont à utiliser dans le cas où vous souhaitez effectuer la migration avec l'outil en ligne de commande Gandi.cli. Pour plus d'informations, rendez-vous sur la page dédiée

É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

Nous vous conseillons de stopper les services écrivant sur le disque lors de la copie ex : bases de données, rsync,..

$ 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

Le disque système de votre nouveau serveur doit être de même taille ou plus grand que le disque système de votre ancien serveur

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"

La copie prendra du temps, vous pouvez installer et lancer l'outil 'iftop' pour voir l'état du transfert de données

- 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
Dernière modification: le 11/08/2017 à 13:10 par Alexandre L. (Gandi)