À propos de libvirt

À propos de libvirt
Libvirt est l'un des outils de gestion de virtualisation les plus populaires. Il est composé d'une API de gestion et d'un démon avec lequel vous pouvez interagir avec votre pile de virtualisation. LibVirt s'efforce d'unifier le processus de gestion pour toutes les différentes technologies de virtualisation de KVM à VMware ESX et même Bhyve. Il peut également gérer les conteneurs LXC et même certaines des technologies de paravirtualisation comme Xen.

Ce n'est pas parce qu'il soutient un large éventail de technologies. Vous pouvez vous concentrer sur une technologie comme KVM et construire votre expérience LibVirt autour de cela. Cet article tentera de donner une critique complète de la technologie de l'expérience personnelle de l'auteur.

Arrière-plan

Pour comprendre ce dont Libvirt est capable et comment vous pouvez l'utiliser sur votre propre système, vous pouvez suivre les guides suivants:

  1. Installez KVM et Libvirt sur Debian
  2. Libvirt avec python

Si vous connaissez déjà des outils comme VIRSH, Virgin-install, Virt-Manager, Ovirt, etc., vous utilisez déjà Libvirt sans même le savoir. Les outils susmentionnés utilisent libvirt dans le backend et fournissent une interface conviviale si la ligne de commande ou l'interface graphique.

Architecture

Libvirt est conçu pour travailler avec n'importe quel hyperviseur et a grandi au fil des ans pour travailler avec un large éventail d'hyperviseurs. Le démon LibVirt expose une API qui peut être utilisée par des applications comme Virt-Manager ou VIRSH (et même vos scripts Python personnalisés). Les demandes de l'utilisateur sont reçues par l'API. Ces demandes pourraient être quelque chose comme créer un invité KVM, ou me montrer la mémoire utilisée par un Contianer LX donné, etc.

Le démon LibVirt délègue ensuite la demande au pilote hyperviseur de LibVirt approprié. Ce conducteur comprend et met en œuvre toutes les spécificités d'une technologie de virtualisation donnée et effectue les instructions en conséquence.

Il existe une classe différente de conducteurs pour gérer le stockage et même les réseaux de machines virtuelles.

Piscines et volumes

Les machines virtuelles ont besoin de beaucoup de stockage. La technologie de stockage elle-même est très variable de l'hyperviseur à l'hyperviseur. VMware utilise son propre format VMDK, Qemu aime utiliser QCOW2, il y a aussi des images de disque brutes et des images LXC sont également une autre histoire. De plus, vous souhaitez regrouper toutes les images de disque VM et leur fournir un support de stockage différent comme un serveur NFS, un ensemble de données ZFS ou simplement un répertoire. Cela vous permet d'utiliser libvirt dans une variété de cas d'utilisation différents, d'un seul serveur domestique à une solution de virtualisation évolutive de qualité d'entreprise.

Dans LibVirt Vernacular, un seul dispositif de stockage virtuel associé à n'importe quelle machine virtuelle, comme le fichier d'image QCOW2, RAW ou VMDK d'une machine virtuelle ou d'un ISO montable est appelée un volume. Le support de stockage utilisé sur l'hôte pour stocker un groupe de volumes associés est connu sous le nom de piscine. Vous pouvez utiliser un serveur NFS comme pool ou un ensemble de données ZFS, comme mentionné précédemment. Si vous n'avez pas de solution de stockage de fantaisie, vous pouvez simplement utiliser un répertoire.

Par défaut, Libvirt a deux piscines différentes. Le premier est / var / lib / libvirt / images et / var / lib / libvirt / bott. Les volumes pour une seule machine virtuelle peuvent être divisées sur plusieurs pools. Par exemple, je stocke toutes les ISO des images Cloud Cloud et le système d'installation du système d'exploitation dans le pool / var / lib / libvirt / botter et pour les machines virtuelles individuelles sont installées dans des fichiers d'image stockés dans / var / lib / libvirt / images.

Vous pouvez même avoir une seule piscine pour une seule machine virtuelle, ou vous pouvez diviser davantage les piscines pour les instantanés VM, les sauvegardes, etc. Tout est très flexible et vous permet d'organiser vos données conformément à votre commodité.

Configurations

VIRSH est un outil populaire pour tout configurer à partir de votre machine virtuelle, de réseautage de machines virtuelles et même de stockage. Les fichiers de configuration eux-mêmes vivent au format XML. Vous vous retrouverez à publier des commandes comme:

$ VIRSH DUMPXML VM1
$ virsh edit VM1

Et de même, il existe des sous-communs comme Net-DumpxML et Pool-Edit pour afficher ou configurer la configuration des pools, des réseaux, etc. Si vous êtes curieux de savoir où vivent ces fichiers de configuration, vous pouvez aller sur / etc / libvirt / et trouver vos hyperviseurs concernés répertoire. Le répertoire parent / etc / libvirt / lui-même contient beaucoup de configurations globales comme les pilotes (e.G Qemu.conf et lxc.conf) et leur configuration et le comportement par défaut de libvirt.

Pour examiner la configuration spécifique de composants individuels comme les machines virtuelles, les pools et les volumes, vous devez aller aux répertoires correspondants. Pour les invités Qemu, c'est / etc / libvirt / qemu

root @ deb: / etc / libvirt / qemu # ls -al
Total 24
DRWXR-XR-X 4 racine racine 4096 21 avril 10:39 .
DRWXR-XR-X 6 racine racine 4096 28 avril 17: 19…
DRWXR-XR-X 2 racine racine 4096 21 avril 10:39 Autostart
DRWXR-XR-X Root Root Root 4096 14 avril 13:49 Réseaux
-RW ------- 1 Root Root 3527 20 avril 19:10 VM1.xml
-RW ------- 1 Root Root 3527 20 avril 19:09 VM2.xml

Le répertoire Autostart contiendra des liens symboliques à VM1.XML et VM2.XML si vous avez confié les machines virtuelles à Autostart lorsque le système hôte bops ($ VIRSH Autostart VM1).

De même, le / etc / libvirt / qemu / réseau contient des configurations pour le réseau par défaut un invité Qemu. Le / etc / libvirt / stockage contient des XML définissant les pools de stockage.

Conclusion

Si vous êtes intéressé à configurer votre propre hôte de virtualisation, un bon point de démarrage sera cet article où je montre comment installer des invités Qemu-KVM sur un hôte Debian utilisant LibVirt et des outils connexes.

Après cela, vous pouvez commencer à jouer avec VIRSH CLI et voir et gérer des entités comme Domain (Libvirt appelle les machines virtuelles domaine) réseaux, piscines de stockage et volumes. Cela vous rendra assez confortable avec la technologie que vous pouvez passer à d'autres concepts comme les instantanés et le filtre réseau. J'espère que cet article s'avérera être un bon point de départ pour vous.