Vous utilisez un navigateur obsolète. Il se peut qu'il n'affiche pas correctement ce site ou d'autres. Vous devez le mettre à niveau ou utiliser un navigateur alternatif.
Transférer une machine virtuelle d’Hyper-V vers Proxmox et vice versa.
Le but de ce tutoriel est de vous expliquer de façon détaillés comment convertir un disque dur virtuel d'un format a l'autre afin de permettre de l'utiliser avec différentes plateforme de virtualisation.
Avant de commencer, quelques informations sur les différences entre Hyper-V et Proxmox.
Hyper-V est une plateforme de virtualisation développée et intégrée par Microsoft.
Proxmox est une solution open source basée sur la virtualisation KVM (Kernel-based Virtual Machine) et les conteneurs LXC (Linux Containers) Il utilise un noyau linux.
Sous Proxmox un disque est obligatoirement lié à une machine virtuelle, supprimer la VM revient à supprimer aussi tous ses disques, retirer un disque revient à le supprimer définitivement.
Au contraire sous Hyper V les disques n’étaient pas automatiquement supprimer à la suppression d’une machine virtuelle, de même que le retirer de la VM ne supprime pas le disque.
Ensuite Proxmox a beaucoup plus d’option notamment au niveau de l’émulation de différents types de processeurs avec des options avancées, de puce graphique, la limitation de vitesse du disque dur … il est important de bien choisir les paramètres de sa VM afin d’obtenir une compatibilité maximale.
Vous l’aurez compris, l’un est intégré aux ordinateurs Windows et assez simple d’utilisation, l’autre est sur Linux et possède beaucoup plus d’option.
Malheureusement les VM ne sont pas directement compatible entre les deux systèmes.
Pas de panique, nous allons vous expliquer comment faire pour transférer une VM de l’un a l’autre.
1ere étape : Faire une copie du disque dur de la machine virtuelle
La première étape est de faire une copie du disque dur de votre VM, car en réalité ce sera lui uniquement qui nous intéresse.
Pensez à noter les informations concernant votre VM comme le nombre de processeurs, la quantité de ram, les connexion réseau (et si besoin les adresses mac des cartes réseau).
Nous allons utiliser un disque externe pour cela.
Sur Hyper-V
Connecter votre disque externe sur le serveur Hyper-V
Lancer le gestionnaire Hyper-V
Faite un clic droit sur votre VM puis paramètre.
Sélectionner votre disque dur virtuel et repérer son emplacement.
Copier le disque dur virtuel par exemple à la racine de votre disque externe.
Sur Proxmox
Monter le disque dur USB
Cela n’est pas tout à fait plug and play, nous allons vous expliquer comment procéder.
Commencer par brancher votre disque externe sur votre serveur.
Ensuite connecter vous a l’interface web de votre serveur Proxmox
Sélectionner le serveur puis cliquer sur « Shell »
Taper la commande
Code:
fdisk -l
afin d’avoir la liste de vos disques dur.
Comme vous le voyez, il vous affiche la liste de vos disques dur et partitions.
Il faut identifier son disque USB et la partition correspondant (ici le disque qui nous intéresse est le /dev/sdb est la partition /dev/sdb1)
Maintenant que l’on a identifié le disque et la partition, nous devons la monter dans linux, mais avant nous devons créer le répertoire dans lequel la partition sera monter.
Pour cela taper la commande
Code:
cd /media/
afin de nous placer dans le dossier media.
Nous allons créer un répertoire transfert qui nous servira de point de montage pour le disque avec la commande
Code:
mkdir transfert
Nous allons maintenant monter le disque externe dans linux grâce à la commande
Code:
mount -o rw /dev/sdb1 /media/transfert/
.
Dans l’interface web, cliquer sur « Datacenter », « Storage » et « Add » puis « Directory »
Indiquez l’ID que vous souhaitez puis dans « directory » le chemin ou est monté votre disque (ici /media/transfert ») et dans le menu déroulant « Content » sélectionner « Disk image et VZDump backup file » puis cliquer sur « Add ».
Vous voyez maintenant votre disque apparaitre dans la liste.
Copier le disque dur de la VM sur le disque USB
Ce qu’il nous faut c’est une copie du ou des disques de la machine virtuelle (VM).
Pour cela il faut localiser où se trouve le disque dur.
Sélectionnez votre VM puis hardware et regardons les informations que nous avons pour le disque dur.
« local-lvm » cela correspond à notre stockage
« vm-100-disk-0 » correspond à notre disque dur
Maintenant il faut voir ou se trouve local-lvm dans notre cas c’est le répertoire par default créer par proxmox, sinon il faut aller dans « datacenter », « storage » afin de voir où se situe les répertoires. (Dans notre cas local-lvm se situe dans « /dev/pve »)
Pour copier le disque, maintenant que nous avons le nom du disque et où il se trouve il faut utiliser la commande
Code:
cp
Pour cela retourner dans « shell »
Taper la commande
Code:
cp /dev/pve/vm-100-disk-0 /media/transfert
Le seul problème ici c’est que si votre disque fait 100 Go il va copier un fichier de 100Go indépendamment de la place réellement utilisée.
Comme expliquer nous allons nous intéresser uniquement au disque dur à partir de maintenant.
Sur Hyper-V le format de disque est VHDX alors que sur Proxmox il est en Qcow2 ou raw.
Malheureusement le format VHDX n’est pas compatible avec Proxmox et les formats Qcow2 et raw ne sont pas compatible avec Hyper-V. C’est pour cela qu’il nous faut convertir le disque dur pour passer d’une plateforme a une autre.
Pour se faire nous allons utiliser l’outil QEMU
QEMU est un émulateur et un virtualiseur de machine générique et open source.
Lorsqu'il est utilisé comme virtualiseur, QEMU atteint des performances quasi natives en exécutant le code invité directement sur le processeur hôte. QEMU prend en charge la virtualisation lors de l'exécution sous l'hyperviseur Xen ou en utilisant le module du noyau KVM sous Linux.
Sources : https://wiki.qemu.org/Main_Page
Qemu va vous permettre de convertir n’importe lequel de vos fichier disque de presque toutes les solutions de virtualisation en fichier disque d’une autre solution de virtualisation.
La commande a utilisée est la suivante :
Une fois télécharger installer le logiciel en laissant l’ensemble des paramètres par default.
Ensuite lancer PowerShell en administrateur sur votre poste.
Placer vous dans le répertoire ou qemu est installer à l’aide de la commande :
Code:
cd ‘c:\program files\qemu‘
Comme vous le voyez, à la racine de mon disque externe ayant la lettre E, j’ai deux fichiers.
Un fichier vm-100-disk-0 et Un fichier W10.vhdx
Le premier fichier vient de mon serveur proxmox et le second de mon serveur Hyper-V.
Nous allons donc voir comment convertir un disque virtuel proxmox au format Hyper-V et vice versa.
Pour convertir mon disque vm-100-disk-0 au format vhdx pour Hyper-V
La commande sera la suivante :
Code:
.\qemu-img.exe convert -f raw -O vhdx E:\vm-100-disk-0 E:\vm-100-disk-0.vhdx
Car le disque d’origine est au format raw (Proxmox utilise soit du raw soit du qcow2).
L’opération prend quelques minutes.
Maintenant nous allons convertir le disque W10.vhdx pour proxmox en qcow2.
La commande sera la suivante :
L’opération prend quelques minutes.
Voilà maintenant j’ai mes fichiers disques convertis.
Sur Proxmox
Lorsque vous installer Proxmox, les outils Qemu sont installés en même temps.
Vous n’avez donc rien à installer de plus.
Si nécessaire, nous allons monter le disque comme vu précédemment.
Pour cela nous utilisons la commande
Code:
mount -o rw /dev/sdb1 /media/transfert/
.
Nous allons nous déplacer dans le répertoire /media/transfert/ a l’aide de la commande
Code:
cd /media/transfert
Nous allons voir ce qu’il contient grâce à la commande
Code:
ls -l
Nous avons un fichier vm-100-disk-0 qui correspond à une copie d’un disque sous Proxmox et un fichier W10.vhdx qui correspond au disque de notre VM sous Hyper-V.
Pour convertir le disque de la VM sous Proxmox au format hyper-V, la commande est la suivante :
Code:
qemu-img convert -f raw -O vhdx /media/transfert/vm-100-disk-0 /media/transfert/vm-100-disk-0.vhdx
Car le disque d’origine est au format raw (Proxmox utilise soit du raw soit du qcow2).
Maintenant nous allons convertir le disque W10.vhdx pour proxmox en qcow2.
La commande sera la suivante :
3ème étapes: Création de la nouvelle machine virtuelle
Sur Hyper-V
Brancher votre disque dur externe a votre serveur Hyper V
Lancer Hyper-V et créer une nouvelle machine.
(Attention à la génération de la machine Génération 1 : bios « legacy » Génération 2 : Bios « UEFI »).
Lors de la sélection du disque dur, vous pouvez choisir de sélectionner un disque dur existant.
Indiquer alors le disque que vous avez converti de votre serveur Proxmox.
Vérifier le résumer et cliquer sur « terminer »
Une fois la machine virtuelle créer, vous pouvez modifier ses propriétés en faisant un clic droit sur celle-ci puis paramètres.
Là vous pouvez choisir l’ordre de démarrage, le nombre de processeurs, la quantité de ram …
Une fois votre VM configurée, vous pouvez valider.
Faites un clic droit sur votre VM puis se connecter.
Vous pouvez maintenant la démarrer.
Au bout de quelques instants vous retrouvez sur votre bureau Windows.
A ce stade votre VM fonctionne mais son disque dur est encore sur votre disque USB.
Pour le copier, rien de plus simple.
Arrêter votre machine virtuelle
Copier le fichier ou vous le souhaitez, par exemple dans le dossier « C:\Users\Public\Documents ».
(tous les utilisateurs utilisant Hyper V doit avoir accès au dossier où se trouve le disque dur).
Ouvrez les propriétés de votre VM puis sur disque dur cliquer sur modifier et indiquer le chemin de votre fichier.
Valider et fermer la fenêtre.
Voilà votre VM Proxmox fonctionne maintenant sous Hyper-V.
Sur Proxmox
Si vous avez converti votre fichier disque sous Windows, il vous faudra monter le disque externe sur votre serveur Proxmox.
Pour cela lisez la partie « Faire une copie du disque dur de la machine virtuelle => Sur Proxmox => Monter le disque dur USB ».
A création de la machine virtuelle sous Proxmox
Comme nous avons indiquez dans l’étape précédente que le disque transfert contient des images disques, il y a un dossier « images » qui a été créer sur le disque.
Si ce n’est pas le cas, revenez sur « Datacenter », « storage », sélectionner « transfert » puis « edit ».
Là vous pouvez ajouter le contenu de type image disque.
Nous allons maintenant créer une machine virtuelle avec par exemple l’ID 300.
Attention pour une machine Windows le type de bios est UEFI, il faut faire attention à créer une machine virtuelle avec les caractéristiques semblables à celle d’origine.
Parfois plusieurs test est nécessaire pour arriver à la configuration correcte.
B attacher le disque dur converti à la machine virtuelle
Sur votre machine virtuelle, allez dans hardware, sélectionner votre disque dur puis cliquer sur « detach ».
valider et constater qu’il passe en « unused disk 0 ».
Maintenant, il faut copier le disque dur converti afin que Proxmox l’attache à la machine virtuelle.
Cela n’est pas aussi simple que sur windows.
Nous allons commencer par créer un répertoire portant le nom de l’id de notre VM dans le dossier transfert/images.
Avec la commande
Code:
mkdir /media/transfert/images/300
Ensuite nous allons copier le fichier disque « w10.qcow2 » dans ce répertoire avec la commande :
Une fois la copie terminée, vous remarquerez que le disque n’est pas vu dans la partie hardware de notre VM.
Il faut demander au serveur de rescanner l’ensemble de ses répertoires à la recherche « d’erreurs », cela se fait grâce à la commande
Code:
qm rescan
Vous aurez un message qui ressemble à :
« rescan volumes…
VM 300 add unreferenced volume ‘transfert:300/w10.qcow2’ as ‘unused1’ to config ».
Cela signifie qu’il a bien trouver notre disque, qu’il a compris que ce disque est attaché à la VM ayant l’ID 300 et l’a ajouté dans la partie hardware de la VM comme disque non utilisé.
Nous pouvons maintenant attacher le disque à la VM et indiquer à la vm qu’il faut démarrer sur celui-ci.
Pour cela il suffit de double cliquer dessus, choisir les paramètres du disque (par exemple dire qu’il est en sata) puis dans la partie option, « boot order » indiquer que l’on veut qu’il boot sur le disque en le plaçant en premier et en vérifiant que la petite case devant est bien sélectionner.
Maintenant dans la partie console, on peut démarrer notre VM.
Comme vous le voyer au bout de quelques instants cela fonctionne, Windows démarre et nous arrivons sur le bureau.
A ce stade votre VM qui était sur Hyper-V fonctionne maintenant sur Proxmox, mais (car il y a un mais) le disque dur de la VM est stocké sur votre disque dur externe.
Pour le déplacer sur votre disque interne que vous utilisez habituellement sur votre serveur Proxmox rien de plus simple.
Commencer par éteindre votre VM.
Puis dans l’onglet « hardware » de votre VM sélectionner le disque dur puis « disk action » et « move storage »
Dans « target storage » indiquer l’endroit où vous souhaitez déplacer votre disque puis cliquer sur « move disk ».
Vous allez avoir un pop-up avec un indicateur d’avancement, à la fin vous verrez le message « TASK OK » vous pouvez donc fermer la pop-up.
Comme nous n’avons pas cocher la case « delete source » nous nous retrouvons maintenant avec 3 disques dur attacher à la VM. (Celui d’origine lors de la création, celui que nous avons rajouter qui est dans le disque dur externe, et la copie que nous avons faites sur le disque local).
Vous pouvez sélectionner un disque inutile puis cliquer sur « remove ». Le message d’avertissement vous prévient que cela va supprimer le disque virtuel.
( on a bien dit supprimer pas juste retirer de la VM le disque).
Faites pareil pour le second disque virtuel.
Ça y est votre VM qui était jadis sous hyper v est maintenant opérationnelle sous Proxmox.
Retirer le disque USB proprement
Pour retirer le disque, il suffit de taper la commande
Code:
umount /dev/sdb1
Vous pouvez déconnecter votre disque dur du serveur proxmox.
Conclusion :
Le transfert d'une machine virtuelle d’une plateforme a l’autre peut sembler complexe, mais grâce à ce tutoriel vous y arriverez à presque tous les coups (oui parfois ça ne marche malheureusement pas, dans mon cas je n’ai pas réussi pour une de mes machines sous Debian).
Assurez-vous de comprendre les différences entre les deux plates-formes et de prendre les précautions nécessaires pour minimiser les risques, (comme toujours faire une sauvegarde et ne pas travailler sur les disques originaux). J’espère que ce tutoriel vous sera utile et vous permettra de changer de solution de virtualisation facilement.
Salut
Merci pour le tuto
J'ai encore des VM qui tournent sous Virtua PC, si je dis pas de bétise chronologiquement c'est l'ancetre de Hyper-V ? Ca devrait être le même principe je supose.
Je vais essayer prochainement de faire une migration.
A une époque j'avais réussi a convertir ces VM sous VMWare Workstation en passant pour un outil VMWare.
Hello, il y a aussi un super logiciel qu je n'ai pas eu le temps de tester plus que cela mais qui ma bien dépanner . voici les spécifications si cela peu aider
A ok lors de mon utilisation j'ai pas eu de problème de demande d'achat de ce que je me souvient . Après cela date un peu mais faut que je regarde des que j'aurai reçu mon nouveau mini serveur j'essayerai de faire des transfert de VM avec . Je ferai un retour d’expérience