Virtualisation

Qu'est-ce que Hypervisor ?

Définition

A hypervisor is the software layer that creates and runs virtual machines, allocating physical CPU, memory and IO between them. A type-1 hypervisor runs directly on the hardware; KVM is unusual in being a type-1 hypervisor implemented as a Linux kernel module, which lets it use the whole Linux driver ecosystem.

Pourquoi Hypervisor est important

Un hyperviseur de type 1 s'exécute directement sur le matériel ; KVM est inhabituel en ce sens qu'il s'agit d'un hyperviseur de type 1 implémenté comme module du noyau Linux, ce qui lui permet d'utiliser tout l'écosystème des pilotes Linux.

Hypervisor en pratique

Lorsque vous exécutez un serveur sur un hyperviseur KVM, vous examinez l'allocation matérielle réelle : vCPU, RAM, I/O disque. Vous ajustez ces éléments depuis le panneau, souvent en ajoutant de la mémoire à chaud sans redémarrage. Se tromper en surallouant l'hôte, et les charges de travail bruyantes de vos voisins affament le CPU ou l'I/O de votre instance, transformant un invité parfaitement configuré en un système lent. La virtualisation imbriquée signifie que vous pouvez exécuter un hyperviseur dans votre hyperviseur, pratique pour les tests, mais cela coûte des performances et peut perturber votre propre comptage des ressources.

Ce qu'on comprend mal à propos de Hypervisor

L'erreur courante consiste à traiter l'hyperviseur comme une frontière de conteneur. Ce n'en est pas une. Un hyperviseur vous donne une machine virtuelle complète, votre propre noyau, votre propre /proc, sans espace de noms partagé. Les gens supposent que les processus de leur voisin sont invisibles ou que leur noyau personnalisé est impossible, puis se heurtent à des limitations. La correction : avec KVM, vous obtenez une véritable isolation et un contrôle total, vous pouvez donc démarrer une image faite maison ou exécuter de la virtualisation imbriquée, des choses qu'un conteneur ne peut pas faire.

Hypervisor — questions fréquentes

Que signifie hyperviseur de type 1 ?

Un hyperviseur de type 1 s'exécute directement sur le matériel hôte, et non sur un système d'exploitation. KVM est spécial car c'est un hyperviseur de type 1 implémenté comme un module du noyau Linux, il peut donc utiliser tout l'écosystème de pilotes Linux pour gérer le matériel. Cela vous donne les performances de la virtualisation sur métal nu avec la flexibilité de Linux.

En quoi KVM est-il différent des conteneurs comme OpenVZ ?

KVM fournit une véritable virtualisation : chaque invité a son propre noyau, son propre /proc, et aucun espace de noms partagé, vous disposez donc d'un accès root complet et pouvez exécuter des noyaux personnalisés. Les conteneurs partagent le noyau hôte et les espaces de noms, ce qui limite ce que vous pouvez faire. Avec KVM, vous obtenez une isolation et un contrôle, y compris la possibilité d'exécuter une virtualisation imbriquée ou de démarrer une ISO personnalisée.

Plus de virtualisation

KVM
KVM est une virtualisation matérielle complète intégrée au noyau Linux, donnant à chaque invité son propre noyau et une isolation renforcée par le matériel vis-à-vis des autres locataires.
OpenVZ
OpenVZ est une virtualisation par conteneurs dans laquelle chaque instance partage le noyau hôte, de sorte que les invités ne peuvent pas charger de modules noyau ni exécuter un système d'exploitation différent.
LXC
LXC est la conteneurisation native de Linux qui isole les processus avec des espaces de noms et des cgroups tout en partageant le noyau hôte.
Virtualisation imbriquée
La virtualisation imbriquée permet à une machine virtuelle d'exécuter elle-même des machines virtuelles, en exposant les extensions de virtualisation du processeur à l'invité.
vCPU
Un vCPU est un processeur virtuel présenté à un invité, adossé au temps d'ordonnancement sur un cœur ou un thread physique.
cloud-init
cloud-init est le mécanisme standard pour configurer une machine virtuelle au premier démarrage, en utilisant des métadonnées fournies par la plateforme.