Hyper-V est un magnifique outil, avec lequel la performance et la stabilité sont au rendez-vous. Mais coté administration, les outils laissent un peu à désirer, et malgré qu'une bonne partie des opérations courantes que l'on pourrait espérer avoir sont disponibles, elles n'en sont pas moins difficiles d'usage. On peut espérer que tout cela sera amélioré avec Windows Server 2008 R2.

Mais en attendant, les outils d'administration d'Hyper-V ne permettent que l'import d'une VM qui a au préalable déjà été exportée. Bien entendu, cela ne peut ne peut se faire que si la machine hôte originale est encore en fonctionnement. Dans le cas d'un serveur qui crash, exporter une VM deviens immédiatement plus complexe... voir impossible.

Il existe, ça et la, quelques techniques qui expliquent, à grand coup de mklink et icacls, comment recréer les liens symboliques et les permissions pour les fichiers de configuration de la VM. Mais cela reste particulièrement complexe et fastidieux, puisqu'il ne faut pas en oublier, et respecter un ordre bien précis, surtout si l'on veut effectuer l'opération d'attachement d'une VM sur un serveur live.

Après avoir trituré Hyper-V, ses symlinks et son interface WMI, j'ai donc créé un petit outil en mode GUI qui permet d'attacher et de détacher une VM qui n'a pas été exportée.

Quelques notes à son propos :

  • Une VM ne peut être détachée que si elle est en mode "Saved" ou "Stopped".
  • Il n'est pas nécessaire d'arrêter le service Hyper-V, toutes les modifications sont détectées en live par Hyper-V.
  • Une VM ne peux être importée que si elle comporte au moins un disque dur sur le controlleur IDE 0.
  • Tous les fichiers de la VM doivent être sous la même racine, HDD et Snapshots.
  • Tous les fichiers qui sont modifiés sont sauvegardés à coté des originaux, les fichiers de données ne sont pas modifiés, ni déplacés.
  • .NET 3.5 doit être installé.

Je mettrais à disposition les sources sous peu, ainsi qu'une version console.

Il y aura forcément des bugs, n'hésitez pas à m'en faire part. Je ne pourrais peut-être rien y faire, puisque il s'agit d'un outil qui effectue une opération qui (à priori) n'est pas prévue ou supportée par Microsoft.

L'outil est à télécharger ici.

--> Je vous conseille de voir ce post, je dois tester cet outil pour permettre des récupérations d'urgence!  

http://blogs.codes-sources.com/jay/archive/2009/02/19/outil-pour-d-placer-une-vm-hyper-v-sans-l-exporter.aspx