libvirt

De ArchwikiFR


libvirt est un ensemble de logiciels qui fournit un moyen pratique de gérer les machines virtuelles et d'autres fonctionnalités liées à la virtualisation, telles que le stockage et la gestion des interfaces réseau. Ces logiciels comprennent une API C stable à long terme, un démon (libvirtd) et un utilitaire de ligne de commande (virsh). L'un des principaux objectifs de libvirt est de fournir un moyen unique de gérer plusieurs fournisseurs/hyperviseurs de virtualisation différents, tels que les hyperviseurs KVM/QEMU, Xen, LXC, OpenVZ ou VirtualBox (entre autres)

Voici quelques-unes des principales caractéristiques de libvirt :

  • La gestion des VM : Diverses opérations de cycle de vie de domaine telles que le démarrage, l'arrêt, la pause, la sauvegarde, la restauration et la migration. Opérations de branchement à chaud pour de nombreux types de périphériques, notamment les interfaces disque et réseau, la mémoire et les processeurs.
  • Prise en charge des machines distantes : Toutes les fonctionnalités de libvirt sont accessibles sur toute machine exécutant le démon libvirt, y compris les machines distantes. Divers transports réseau sont pris en charge pour la connexion à distance, le plus simple étant SSH, qui ne nécessite aucune configuration explicite supplémentaire.
  • Gestion du stockage : Tout hôte exécutant le démon libvirt peut être utilisé pour gérer différents types de stockage : créer des images de fichiers de différents formats (qcow2, vmdk, raw, ...), monter des partages NFS, énumérer les groupes de volumes LVM existants, créer de nouveaux groupes de volumes LVM et des volumes logiques, partitionner des disques bruts, monter des partages iSCSI, et bien plus encore.
  • Gestion des interfaces réseau : Tout hôte exécutant le démon libvirt peut être utilisé pour gérer les interfaces réseau physiques et logiques. Vous pouvez énumérer les interfaces existantes, ainsi que configurer (et créer) des interfaces, des ponts, des vlans et des dispositifs de liaison.
  • NAT virtuel et réseau basé sur les routes : Tout hôte exécutant le démon libvirt peut gérer et créer des réseaux virtuels. Les réseaux virtuels Libvirt utilisent des règles de pare-feu pour agir comme un routeur, fournissant aux machines virtuelles un accès transparent au réseau des machines hôtes.

Installation

Attention : Le paquetage ebtables a été supprimé. Le paquet iptables-nft fournit ebtables, utilisez-le à la place.

En raison de son architecture démon/client, libvirt ne doit être installé que sur la machine qui hébergera le système virtualisé. Notez que le serveur et le client peuvent être la même machine physique.

Serveur

Installez le paquet libvirt, ainsi qu'au moins un hyperviseur :

  • Le libvirt KVM/QEMU driver est le principal pilote libvirt et si KVM est activé, des invités entièrement virtualisés et accélérés par le matériel seront disponibles. Voir l'article Qemu pour plus d'informations.
  • Les autres hyperviseurs [1] pris en charge comprennent en:LXC, VirtualBox et en:Xen. Voir les articles respectifs pour les instructions d'installation. En ce qui concerne la note d'installation de libvirtd :
    • Le libvirt LXC driver ne dépend pas des outils de l'espace utilisateur en:LXC fournis par lxc, il n'est donc pas nécessaire d'installer le paquetage si vous prévoyez d'utiliser le pilote.
    • Le support en:Xen est disponible, mais pas par défaut (cf. bug 27356). Vous devez utiliser le ABS pour modifier le PKGBUILD de libvirt et le construire sans l'option -Ddriver_libxl=disabled.

Pour la connectivité réseau, installez :

Note : Si vous utilisez en:firewalld, à partir de libvirt 5.1.0 et en:firewalld 0.7.0, vous n'avez plus besoin de changer le backend du pare-feu en iptables. libvirt installe maintenant une zone appelée 'libvirt' dans firewalld et y gère ses règles réseau requises. Pare-feu et filtrage réseau dans libvirt

Client

Le client est l'interface utilisateur qui sera utilisée pour gérer les machines virtuelles et y accéder.

  • virsh — Programme de ligne de commande pour la gestion et la configuration des domaines.
https://libvirt.org/ || libvirt
  • GNOME Boxes — Application GNOME simple pour accéder aux systèmes virtuels.
https://wiki.gnome.org/Apps/Boxes || gnome-boxes
  • Libvirt Sandbox — Boîte à outils sandbox pour applications.
https://sandbox.libvirt.org/ || libvirt-sandbox
  • Remote Viewer — Client simple d'affichage à distance.
https://virt-manager.org/ || virt-viewer
  • Qt VirtManager — Application Qt pour la gestion des machines virtuelles.
https://github.com/F1ash/qt-virt-manager || qt-virt-manager
https://virt-manager.org/ || virt-manager

Une liste de logiciels compatibles avec libvirt peut être trouvée ici.

Configuration

Pour l'administration au niveau de system (c'est-à-dire les paramètres globaux et l'emplacement de l'image volume), libvirt nécessite au minimum setting up authorization, et starting the daemon.

Note : Pour l'administration de l'utilisateur-session, l'installation et la configuration du démon n'est pas nécessaire ; l'autorisation, cependant, est limitée aux capacités locales ; le frontal lancera une instance locale du démon libvirtd.

Configurer l'authentification

Depuis libvirt : Authentification de la connexion :

Le démon libvirt permet à l'administrateur de choisir indépendamment les mécanismes d'authentification utilisés pour les connexions client sur chaque socket réseau. Ceci est principalement contrôlé par le fichier de configuration principal du démon libvirt dans /etc/libvirt/libvirtd.conf. Chaque socket libvirt peut avoir son mécanisme d'authentification configuré indépendamment. Il existe actuellement un choix entre none, polkit et sasl.

Parce que libvirt tire polkit comme une dépendance pendant l'installation, polkit est utilisé comme valeur par défaut pour le paramètre unix_sock_auth (source). Les permissions basées sur les fichiers restent néanmoins disponibles.