Migration vers Proxmox

Pour migrer des VM vers proxmox, il y a deux possibilités :

  1. Utiliser la restauration d'un logiciel de backup externe (par exemple Veeam)
  2. Utiliser l'import de Proxmox

Dans tous les cas, il faudra s'assurer que les drivers iSCSI soient bien installés et fonctionnels.

Pour Windows, la méthode est très simple. Il faut avant d'éteindre la VM sur l'ancien système, installer les drivers VirtIO. L'équipe de Fedora propose un CD avec tous les drivers précompilés pour une large gamme de Windows allant de Windows 2000 au dernier Windows : https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso.

Pour les éditions de Windows 10 (et Windows Server 2019) et supérieur, l'exécutable à la racine du CD fonctionnera et installera tous les drivers. Pour les OS plus anciens, il faudra installer manuellement à partir des différents dossiers de drivers qui sont présents dans le CD.

Pour que le Windows démarre, il faut impérativement avoir au moins le driver block storage (scsi). Il peut aussi être intéressant d'y ajouter le driver réseau et le driver de gestion dynamique de la mémoire.

Méthode post-migration

Si pour une raison quelconque vous n'avez pas pu installer le driver scsi avant la migration et vous vous retrouvez avec une VM qui ne démarre pas. Rien n'est perdu. Vous pouvez passer en réparation de Windows. En théorie, n'ayant pas pu démarrer le système passera tout seul en réparation. Montez l'image du disque avec les drivers sur la VM.

En imaginant que le CD est monté sur le lecteur D et le système en lecteur E, la commande DISM pour installer un driver ressemblera à :

drvload D:\vioscsi\2k11\amd64\vioscsi.inf
dism /Image:E:\ /Add-Driver /Driver:D:\vioscsi\2k11\amd64\vioscsi.inf

Redémarrez la machine, elle démarrera correctement.

Sur linux, les drivers sont fournis à partir de la version 2.6. Ils sont généralement sous la forme d'un module noyau. Généralement les différentes distributions linux utilise des outils pour ne pas intégrer tous les modules afin d'avoir un noyau plus léger. Cet outil dépend de la famille de linux utilisé.

Pour la famille redhat, cette image de démarrage est créé par dracut. Pour ajouter les drivers dans l'image créé par Dracut, il faut modifier le fichier /etc/dracut.conf ou ajouter un fichier dans /etc/dracut.conf.d/ et modifier ou ajouter la ligne suivante :

10-virtio.conf
add_drivers+=" virtio_scsi virtio_net virtio_balloon "
Les drivers virtio virtio_ring virtio_pci peuvent potentiellement être ajoutés mais non présent sur tous les systèmes.

Pour lancer la construction d'une nouvelle image de démarrage :

dracut -f -v --regenerate-all

Vous pouvez aussi installer les guest tools :

yum install qemu-guest-agent

Pour la famille Debian, l'image de démarrage est créé par initramfs-tools. Cet outil est installé par défaut.

Ajouter les lignes suivantes au fichier /etc/initramfs-tools/modules :

virtio
virtio_ring
virtio_pci
virtio_scsi
virtio_net
virtio_balloon

Lancez la reconstruction de l'image de démarrage via :

update-initramfs -k all -u

Vous pouvez aussi installer les guest tools :

apt install qemu-guest-agent

Vous pouvez démarrer votre linux depuis un live CD. Rentrez dans le système avec un chroot et montez bien tous les lecteurs. Lancez ensuite directement la commande pour refaire l'image de démarrage. En théorie, comme vous serez déjà sur proxmox, il intègrera directement les modules nécessaires pour gérer le disque.