Clonage de machine virtuelle

Récemment, à l'occasion d'une Install Party organisée à Bordeaux par l'ABUL, j'ai tenté d'aider le possesseur d'un MacBook à y installer une distribution Linux (Ubuntu Karmic Koala pour ne pas la nommer) sous la forme d'un machine virtuelle.

Lui même avait déjà essayé sans succès sur la base d'un Parallels Desktop[1] à la légalité douteuse et d'un CD-ROM un peu rétif, sans qu'il sache s'il s'agissait d'une mauvaise gravure ou d'un lecteur défaillant.

Après lui avoir fait comprendre tout l'intérêt qu'il avait à installer Virtualbox sur sa machine, l'avoir aidé à le faire (c'est tellement simple !), me voilà en train de faire une formation éclair à son utilisation sur un cas pratique : installer sa version d'Ubuntu dans une machine virtuelle. Hélas ! Après deux blocages successifs sur 2 CD-ROM différents, force est de constater que c'est probablement son lecteur qui défaille.

A ce stade, l'idée de prendre une machine virtuelle sur un autre PC et de la transférer sur le MAC en passant par une clé USB à germé dans nos esprits; mais deux problèmes se posent :

  • Les machines virtuelles que j'ai sur mon PC portable ont un certain vécu et ne sont pas "propres" (et elle contiennent en plus des données personnelles),
  • Les MAC n'ont pas un clavier "normal", et la distribution doit être installée en tenant compte de ce particularisme (même s'il est certainement possible de modifier le clavier après coup).

Il fallait donc créer une machine virtuelle neuve, y faire l'installation "comme si c'était sur MAC" avant de passer à la phase de transfert entre les deux machines.

Pendant les 20 à 30 minutes que dure cette opération, la discussion sur les bienfaits de la virtualisation se poursuit et, après avoir montré à quoi se résumait une machine virtuelle sur son hôte (un fichier XML pour la décrire et un conteneur VDI pour la stocker), cette personne me dit : "Alors, quand ce sera fini, il faudra juste copier ces fichiers sur mon MAC, et c'est tout ?".

J'ai failli répondre "Oui", ce qui dans le cas d'une machine virtuelle neuve entre deux hôtes qui ne se croiseront jamais sur le même réseau aurait été possible; mais pourquoi faire sans finesse ce qui peut être accompli avec élégance ?

J'ai alors expliqué que, par cette méthode, les machines virtuelles d'un certain age, qui ont pris de l'embonpoint dû à leur vécu et dépassent souvent quelques giga-octets, ne pourraient être aisément déplacées à l'aide d'une simple clé USB. Virtualbox propose des fonctions d'exportation et d'importation des machines virtuelles (bizarrement appelées "applications") dévolues à cet usage. On y accède depuis le menu principal.

Menu Import Export

Donc, Une fois sa machine virtuelle créée, je lance l'assistant d'exportation, la sélectionne, passe l'écran des paramètres en laissant les valeurs par défaut et valide le nom et l'emplacement proposé pour y stocker le résultat de l'exportation. Une barre de progression commence sa marche et quelques minutes après, nous nous trouvons face à trois fichiers :

  • un gros fichier suffixé '.vmdk' qui contient l'image de la machine virtuelle, compressée,
  • un fichier suffixé '.ovf' qui contient la description portable de la machine virtuelle[2],
  • un fichier suffixé '.mf' qui ne contient que la somme de contrôle des deux autres.

Et là où on constate immédiatement l'effet positif de cette exportation, c'est dans le gain de taille (d'un facteur 3) entre le fichier '.vdi' et le '.vmdk'.

Il ne reste plus qu'à transférer les trois fichiers vers le MAC et à procéder à l'importation, opération aussi simple que la précédente. Il suffit de désigner le fichier '.ovf' pour que les caractéristiques de la machine à importer soient prise en compte.

On peut à cette occasion modifier un certain nombre de paramètres relatif à la machine virtuelle, comme la taille de la mémoire dont elle disposera, ou son nom.

A noter, et c'est là le deuxième avantage qu'il y a à procéder de cette façon, que c'est cela permet de la cloner (c'est à dire, la réimporter sur la même machine que celle où elle a été créée), ce qui serait délicat par une simple copie de fichier. En effet, lors de l'importation, un nouveau disque, avec un nouvel UUID, est créé par Virtualbox; de même qu'une nouvelle adresse MAC est affectée à chaque carte réseau de la machine importée. Elle peut ainsi cohabiter[3] avec celle dont elle est issue.

Attention tout de même, il est impératif que lors de son exportation, l'adresse IP de la machine virtuelle ne soit pas fixe mais obtenue par son client DHCP. C'est rarement le cas des installations de type "poste de travail", mais c'est quelque chose à ne pas oublier si l'on veut se fabriquer une "appliance" de type "serveur LAMP" pour y tester des logiciels comme des CRM, des ERP ou d'autres.

L'anecdote se termine par un utilisateur satisfait d'avoir sur sa machine une Ubuntu toute neuve avec qui faire connaissance; qui sait s'il n'y viendra pas définitivement dans quelques temps ...

Notes

[1] Loin de moi l'idée de jeter la pierre à quiconque, mais force est de constater que l'un des avantages rarement relevé des logiciels libres est de ne pas pousser les utilisateurs dans l'illégalité. Parallels Desktop est probablement un bon produit, mais son prix le réserve à ceux qui savent qu'ils en ont l'usage, pas aux curieux dilettantes qui veulent juste comprendre ce qu'est la virtualisation et à quoi elle pourrait bien leur servir.

[2] Le suffixe '.ovf' signifie Open Virtualization Format et définit un format d'échange et de stockage de machines virtuelles (d'appliances) rassemblant entre autres VMWare, Citrix, IBM et Sun (Virtualbox) permettant un certain niveau d'interopérabilité entre les solutions des divers éditeurs.

[3] Attention, selon l'OS installé dans la machine virtuelle, le nombre d'instances pouvant être installées et lancées simultanément peut être sujet à des limitations.

La discussion continue ailleurs

URL de rétrolien : https://catarina.fr/index.php?trackback/45

Fil des commentaires de ce billet