13 09 | 2011

Migrer une machine physique vers une machine virtuelle

Rédigé par Sorrodje

Classé dans : Informatique, Mémos techniques


Peu importe les motivations pour faire cette manoeuvre, migrer une machine vers une VM se fait relativement facilement via un clonage de la dite machine physique puis de sa réinstallation.


Ceci dit , il y'a des manips que j'ai mis un moment à dégoter ou à deviner donc un résumé m'a paru utile au cas où.

En l'occurence j'avais un serveur personnel Debian 6 à migrer et J'ai utilisé pour cela un CD de clonezilla puis virt-manager pour créer et gérer la VM cible.


  1. Réaliser une image du disque de la machine source
  2. Créer la machine virtuelle cible
  3. Réinstaller l'image disque sur la VM
  4. Résoudre la disparition d'eth0
  5. Finaliser la nouvelle machine créée



Je ne détaille pas les manips pour le moment ( Je prendrai surement le temps plus tard de reconstituer le tout avec copies d'écran et lignes de commandes à la clé mais bon là je fais ma feignasse :p ). En outre, cet aide-mémoire a surtout pour vocation de signaler les problèmes rencontrés et la solution adoptée au lecteur éventuel comme à ma mémoire fatiguée. On considère donc que l'utilisation basique de clonezilla est connue ainsi que celle de Virt-Manager/KVM. Même raisonnement pour la configuration réseau de base d'une Ubuntu/Debian et l'utilisation des commandes UNIX nécessaires.



  1. Réaliser une image du disque de la machine source

  2. On se sert pour cela d'un CDrom de clonezilla et d'un disque externe USB (en l'occurence formaté assez classiquement en NTFS ce qui n'a pas posé de problème). On fait booter la machine physique sur ce cd. On doit pouvoir utiliser une clé USB clonezilla sans souci sur machine permettant le boot sur USB.


    Suivre les instructions clonezilla au plus simple dans le but de cloner le disque complet vers une image à envoyer sur le disque externe USB et aller au plus simple, clonezilla se charge de tout ;-)



  3. Créer la machine virtuelle cible

  4. On utilise pour cela la GUI virt-manager qui simplifie grandement l'utilisation de libvirt/KVM et surtout rend les opérations très rapides à exécuter.


    Après avoir suivi les étapes habituelles de création de la machine on en arrive à la création du Disque virtuel. Il faut le créer d'une capacité égale au disque d'origine (puisque on a fait une image du disque d'origine complet). Sinon clonezilla ne pourra achever la réinstallation de l'image clonée faute de place !


    Attention :En cas d'installation classique pour un Desktop, on sépare souvent le /home en laissant 20 ou 30Go pour la racine. Dans ce cas, il est alors judicieux de ne pas créer le disque virtuel dans l'espace par défaut de libvirt/virt-manager à savoir dans /var/lib/libvirt/ donc dans la racine de l'OS host ( une Ubuntu 11.10 pour moi en l'occurence ) mais d'avoir au préalable créé un espace de stockage pour les VM dans le /home. Sinon, le manque de place va se faire sentir rapidement dans votre /


    Le mieux à mon avis étant de monter sa machine hôte en LVM avec une config typée serveur genre avec séparation / , /var , /boot , /home ,...


    Avant de démarrer la machine, il faut aller personnaliser sa configuration pour ajouter du matériel:

    • Ajouter le lecteur de CD-ROM de la machine hôte afin de réutiliser le CD de Clonezilla pour réinstaller l'image clonée obtenue lors de l"étape précédente
    • Ajouter en tant que périphérique USB le disque externe préalablement branché à la machine Hôte de la VM
    • Configurer le Disque dur virtuel en IDE et non en Virtio ( options avancées /disk bus dans la config du disque de la VM ) . Clonezilla ne reconnaîtrait pas un disque /dev/vda de la VM ;-)


    Voilà, une fois le CD Clonezilla inséré dans lecteur de la machine hôte on est prêt pour la réinstallation.



  5. Réinstaller l'image disque sur la VM

  6. Booter la VM . Elle va par défaut booter sur le lecteur de CD ROM précédemment monté et donc sur le cd de Clonezilla.


    Comme a l'"aller" , IL faut suivre les instructions de clonezilla en vue de restaurer une image disque vers un disque. Manip très simple où il faudra simplement sélectionner l'endroit où clonezilla doit aller chercher l'image à réinstaller et donc le disque USB.


    Reste à rebooter en prenant soin d'ejecter le CD de clonezila sinon ça repart pour un tour de manège.



  7. Solutionner la disparition d'eth0

  8. Après reboot , on se retrouve donc devant notre belle Debian . Ca fait chaud au coeur . Mais avant de se débarasser de l'image disque clonée , autant vérifier que tout est OK . Or , tout n'est pas OK


    Un bon vieux ifconfig des familles en mode root nous montre qu'organe manque à l'appel sur notre OS transplanté : pas d'eth0 ! . En fait notre Debian fait la tête en ne reconnaissant pas ses petits et en particulier l'interface réseau.


    A que cela ne tienne, on va lui forcer un peu la main. Il suffit d'aller supprimer un fichier créé par udev à propos des interfaces réseau : /etc/udev/rules.d/70-persistent-net.rules. Udev va le recréer automatiquement au reboot en prenant en compte l'interface réseau virtuelle de la VM ;-)


    Après redémarrage , on retrouve bien notre eth0 dument paramétrée avec l'adresse MAC de l'interface virtuelle et une IP ( différente selon votre configuration réseau Sur la VM ( ip fixe ou via DHCP ) et de la connexion ( pont ou NAT )



  9. Finaliser la nouvelle machine créée

  10. Par principe , la machine créée est identique à la machine source. même nom de machine , même IP , même(s) utilisateur(s) , paquets , configs , ... Du coup si par exemple on chercher à cloner une machine physique vers une VM tout en gargant active la machine physique il faudra remanier l'identité de la MV en lui donnant donc un nouveau nom dans /etc/hosts et dans le cas de machines à IP fixes une nouvelle IP dans /etc/network/interfaces

Écrire un commentaire

Quelle est la dernière lettre du mot etqvo ? : 

Archives

Contrat Creative Commons
Ce(tte) oeuvre est mise à disposition selon les termes de la Licence Creative Commons Paternité - Partage à l'Identique 2.0 France
.