Conversion d'une machine Linux de XenServer vers Hyper-V

Je suis en train de convertir les dernières VM de mon XenServer vers Hyper-V.

La majorité d’entre elles étaient des machines Windows et j’ai effectué une sauvegarde et restauration en utilisant la Sauvegarde Windows. Pour certaines des machines Windows, j’ai utilisé le processus d’export XenServer pour créer un fichier XVA que j’ai ensuite converti en VHD utilisables dans Hyper-V.

Les deux méthodes ont fonctionné parfaitement, mais quand j’ai tenté le processus d’export et de conversion pour quelques machines Linux, cela n’a pas aussi bien fonctionné.

J’ai créé le XVA, j’ai utilisé Xenconvert pour convertir et créer les VHD, mais quand j’ai attaché ceux-ci à une VM Hyper-V, je n’ai obtenu qu’un curseur clignotant. Après quelques recherches, je pense que c’est à cause de la façon dont les disques durs sont nommés différemment. Par exemple, la machine d’origine dans /dev/ affichera xvda, xvda1..... mais dans Hyper-V, je pense que ce sera sda, sda1......

C’est là que je suis un peu perdu… J’ai démarré l’une des machines sur le menu de démarrage d’une machine convertie et j’ai regardé les options du menu et les arguments, mais je n’ai vu aucune référence à xvda. Donc soit mes hypothèses ci-dessus sont fausses, soit je cherche au mauvais endroit, soit les deux.

Toute aide serait appréciée, même si la suggestion est de faire cela d’une manière totalement différente.

EDIT 1 : (Ajout des informations du menu de démarrage)

Si je sélectionne le premier élément du menu de démarrage et que j’appuie sur e, je vois ce qui suit :

root (hd0,0)
kernel /vmlinuz-2.6.32-573.12.1.e16.x86_64 ro root=dev/mapper/VolGroup-lv_root rd_NOLUKS LANG=en_US.UTF-8 rd_NO_MD console=hvc0 KEYTABLE=us rd_LVM_LV=VolGroup/lv_swap SYSFONT=latacyrheb-sun16 rhgb crashkernel=auto quiet rd_LVM_LV=VolGroup/lv_root rd_NO_DM
initrd /initramfs-2.6.32-573.12.1.e16.x86_64.img

EDIT 2 : (Version Linux et fstab)

La version Linux est CentOS 6.7

Copie de /etc/fstab (j’ai tenté le coup et essayé de changer l’UUID par l’UUID du nouveau disque mais cela n’a pas semblé fonctionner)

RÉPONSE MODIFIÉE :
J’ai réfléchi à votre problème, et je pense que rsync ou la sauvegarde/restauration avec dd pourrait être votre meilleure option. Si vous utilisez des disques durs virtuels à expansion dynamique, alors rsync est probablement votre meilleur choix, et si vous utilisez des disques définis statiquement, alors dd est probablement votre meilleur choix.

Option 1 :
D’abord, vous devrez créer un partage samba ou cfs, ou attacher un disque physique par un autre moyen pour sauvegarder les données. Une fois que vous avez une destination de sauvegarde attachée, vous devrez exécuter la commande rsync ou dd pour sauvegarder le disque.

Exemple rsync (en utilisant Arch) :
https://wiki.archlinux.org/index.php/full_system_backup_with_rsync

Exemple dd :
http://www.thegeekstuff.com/2010/10/dd-command-examples/

Je suis presque sûr que vous pouvez rediriger rsync vers gzip si vous souhaitez créer un fichier portable.

Ensuite, vous devez installer CentOS dans une nouvelle machine Hyper-V. Puis vous devez passer par la tâche de restauration de l’image de sauvegarde (qui différera selon la commande que vous avez utilisée pour la créer).

Option 2 :
Alternativement, vous pourriez d’abord créer la nouvelle VM CentOS, puis monter l’autre fichier VHD exporté sur la même machine virtuelle sous Hyper-V. Puisque vous aurez les deux disques montés sur la même machine, vous pourriez effectuer le processus de migration à ce moment-là. Une fois que vous avez monté le disque de sauvegarde et migré votre chargeur de démarrage dessus, vous pouvez démonter le disque de la VM de remplacement. Vous pourriez ensuite réutiliser le même disque pour migrer vos autres machines (rincer et répéter pour chaque VM que vous devez migrer). Si vous avez beaucoup de machines, vous pourriez tenter de scripter ce processus, ou vous pourriez trouver un script de sauvegarde déjà existant.

Option 3 :
Créez le nouveau fichier VHD/VHDX avec Hyper-V, puis attachez-le et montez-le sur l’invité XenServer que vous souhaitez dupliquer, et effectuez la sauvegarde directement de cette manière.

Je sais qu’il y a beaucoup d’étapes à franchir, mais voici trois options solides qui fonctionneront probablement sans trop de complications. Je suis plutôt débutant avec Linux, mais j’ai déplacé des images de disques assez facilement avec dd auparavant, et je ne vois pas pourquoi cela ne fonctionnerait pas bien ici.

RÉPONSE ORIGINALE :

Si vous utilisez LVM, alors les disques durs ne devraient pas causer le problème et les liens vers les disques devraient être intacts après la conversion, mais je ne suis pas un expert. J’ai une bonne expérience de Linux sous Hyper-V, mais pas de la conversion de machines XenServer vers Hyper-V. Cela dit, l’erreur que vous observez me suggère qu’il pourrait s’agir d’un problème avec le noyau Linux. Il serait utile de savoir quelle distribution Linux vous utilisez.

XenServer a deux types de VM :

Les VM HVM - elles sont équivalentes aux VM Hyper-V et ne nécessitent aucune modification. Ces VM peuvent être converties en machines Hyper-V par les moyens conventionnels (copier le VHD ou utiliser System Center 2012 Virtual Machine Manager (VMM) comme recommandé par Microsoft).

Les VM PV - ce sont des VM « para-virtualisées » qui n’ont pas de noyau de démarrage complet. Elles sont liées au système d’exploitation de la VM et partagent une partie du chargeur de démarrage pour amorcer la machine. Vous devez remplacer le noyau PV (kernel-xen) dans la VM par le noyau pae (kernel-pae).

Je ne sais pas quelle distribution Linux vous utilisez, et cela peut avoir un impact sur la solution réelle, mais, en supposant que les VM sont des VM PV, le lien suivant contient des instructions pour installer le noyau PV sur la machine Linux, donc vous voulez faire l’inverse de ces instructions, en adaptant pour votre distribution Linux. Ensuite, le processus d’export devrait fonctionner :

http://itproctology.blogspot.ca/2009/06/pv-enabling-hvm-from-vmware-on.html

Cette réponse suppose que vous utilisez le noyau PV sur vos VM XenServer, et suppose que c’est le problème causant l’échec de démarrage. Elle suppose également que vous avez déjà essayé d’utiliser System Center 2012 Virtual Machine Manager (VMM) pour convertir les VM (conformément aux meilleures pratiques Microsoft, étapes indiquées au lien suivant) :

https://technet.microsoft.com/en-ca/library/gg610672.aspx

Notes finales :

  • J’essaierais de désactiver le démarrage sécurisé pour voir si cela fait une différence.

  • Assurez-vous de suivre les meilleures pratiques Microsoft pour les VM Linux (selon la distribution que vous utilisez). Celles-ci se trouvent aux liens suivants, et vous pourriez essayer d’appliquer ces changements à la VM avant de procéder à l’export (assurez-vous de sauvegarder votre machine virtuelle d’abord) :

Meilleures pratiques universelles pour les VM Linux sous Hyper-V :
https://technet.microsoft.com/en-ca/library/dn720239.aspx

Meilleures pratiques spécifiques aux distributions pour les VM Linux sous Hyper-V :
https://technet.microsoft.com/en-ca/library/dn531030.aspx

Enfin, voici à quoi ressemblent mes paramètres de noyau Linux (Ubuntu/Debian) pour mes machines virtuelles (dans /etc/default/grub, assurez-vous d’exécuter sudo update-grub ensuite) :

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1366x768 elevator=noop numa=off"

L’option video=hyperv_fb ne fonctionnera qu’une fois les outils d’intégration Hyper-V installés sur la VM (spécifique à la distribution).