Comment la migration en direct d'une VM est-elle possible/réalisée ?

D’après cet article : Virtualisation : Qu’est-ce que KVM ? et d’autres ressources, j’ai appris qu’il est possible de migrer une VM en cours d’exécution d’un hôte à un autre ?

Migration en direct

KVM prend en charge la migration en direct, qui est la capacité de déplacer une VM en cours d’exécution entre des hôtes physiques sans interruption de service. La VM reste alimentée, les connexions réseau restent actives et les applications continuent de fonctionner pendant que la VM est déplacée.

Quelqu’un pourrait-il expliquer comment cela est rendu possible ?

En général, une VM en cours d’exécution est liée à du matériel (réel ou virtuel) comme la mémoire, les processeurs, les disques, la carte graphique, le réseau, etc. Et elle est liée à l’OS hôte (dans le cas des hyperviseurs de type 2) ou à l’hyperviseur/KVM (dans le cas des hyperviseurs de type 1). Sur le nouvel hôte, la VM doit se lier à nouveau aux ressources/pilotes mentionnés ci-dessus — ce qui pourrait indiquer un temps d’arrêt (qui pourrait être court).

Alors comment une migration en direct sans aucune interruption de service est-elle rendue possible ?

Merci d’avance pour vos réponses.

Pour que la migration en direct soit possible, il y a certains prérequis concernant les systèmes d’exploitation hôtes et leur matériel. Premièrement, ils doivent avoir un stockage partagé, monté de manière similaire. Ils doivent également avoir les mêmes versions d’OS et des configurations réseau identiques.

Une fois ces exigences satisfaites, la migration en direct consiste à copier le contenu de la mémoire du système invité d’un hôte à un autre. Ceci est expliqué en détail par exemple dans la documentation Fedora, Chapitre 20. Migration en direct KVM.