Deprecated: Function create_function() is deprecated in /var/www/ambient-it.net/wp-content/plugins/codecolorer/lib/geshi.php on line 4698

Vous souhaitez backuper un serveur à chaud tournant sous Linux / Ubuntu. Malheureusement si vous n’avez pas fait le choix dès le départ d’utiliser des partitions LVM, mais juste utiliser un FileSystem classique type EXT4, cela va se révéler assez compliqué : très peu d’outils intelligents existent (il y a Hotcopy d’R1Soft, mais celui-ci est limité à certaines versions de kernel et personnellement je n’ai pas réussi à le faire fonctionner sur notre machine).

Dans ce tutoriel, nous allons voir comment utiliser quelques lignes de commande bas niveau, mais qui ont le mérite d’être natives sur toutes les distributions Linux, afin de migrer et cloner une machine physique en une machine virtuelle VDI VirtualBox.

 

 

Choix du stockage & le protocole de transfert

La copie du disque ne peut pas être effectuée en local, car le disque serait alors copié en boucle. L’idéal serait que vous ayez physiquement accès au serveur pour y brancher un périphérique externe ou que votre hébergeur propose une fonctionnalité de backup ou de snapshot, sinon il faudra utiliser un moyen de transfert en ligne nous avons opté pour le protocole FTP pour sa simplicité et sa popularité. Vous pouvez également opter pour du Samba / CIFS ou tout autre protocole distant d’échange de fichier.

 

 

Copier le disque entier avec la commande dd

La commande dd va effectuer une copie de l’entrée standard vers la sortie standard, pour modifier les chemins on peut utiliser les paramètres if et of.

1
dd if=<chemin vers la partition principale> of=<chemin de la sortie>

C’est une commande bas niveau qui copie byte à byte la totalité du disque, elle n’est pas très intelligente (car elle est plus basse que la couche du FileSystem), mais a le mérite d’être tout terrain. On obtient alors un fichier brut de données, un « RAW ».

Si vous pouvez brancher un périphérique externe avec assez de stockage sur votre serveur Linux, vous pouvez utiliser cette commande directement.

 

 

Backuper votre serveur via FTP

Créez un serveur FTP puis lancez la commande FTP

1
sudo FTP

Ensuite, connectez-vous au serveur FTP

1
open <adresse ip du serveur>
SI VOUS UTILISEZ FTP AVEC UNE MACHINE SOUS WINDOWS

Il faut savoir que Windows utilise \r\n pour indiquer une fin de ligne, tandis que Linux utilise \n. Par défaut les serveurs FTP sont en mode ASCII ils vont donc effectuer automatiquement la conversion ce qui va corrompre les fichiers binaires. Afin d’éviter ce genre de soucis, je vous conseille de passer l’échange du serveur FTP en mode binaire, pour cela, utilisez cette instruction après la connexion :

1
binary

pour vérifier le mode actuel du serveur FTP c’est l’instruction

1
type

Une fois connectés, nous pouvons envoyer le fichier via FTP auquel on a ajouté une compression pour optimiser le temps de téléchargement.

1
put "| dd if=/dev/sda status=progress |gzip -c" sda.raw.gz

Le paramètre status permet d’afficher la progression de la copie. Dans ce cas, nous avons utilisé le format de compression gzip. Le paramètre -c envoi le fichier compressé sur la sortie standard.

 

 

Convertir un Raw en disque virtuel

Pour que notre copie soit utilisable par une machine virtuelle il faut convertir notre fichier .raw en fonction du logiciel de virtualisation que l’on va utiliser.

Pour Virtualbox :

1
VBoxManage convertdd sda.raw sdb.vdi --format VDI

Pour VMware :

1
VBoxManage convertdd sda.raw sdb.vmdk --format VMDK

Il faudra par la suite insérer cette image disque dans une machine virtuelle.

 

 

Comment faire la même chose sous Windows ?

Sachez que si vous pensez avoir besoin d’effectuer ce genre d’opération de backup à chaud sous Windows sachez qu’il existe pour le coup des outils assez bien fait, vous pouvez aller voir par exemple notre article sur Macrium ou bien utiliser Disk2Vhd de Sysinternals.