Comment créer et gérer les machines virtuelles KVM à partir de CLI

Comment créer et gérer les machines virtuelles KVM à partir de CLI

Objectif

Apprenez à créer et à gérer les machines virtuelles KVM à partir de la ligne de commande

Système d'exploitation et versions logicielles

  • Système opérateur: - Toutes les distributions Linux

Exigences

  • Accès aux racines
  • Paquets:
    • Qemu-kvm - Le package principal
    • LibVirt - Comprend le serveur LibVirtd exportant le support de virtualisation
    • libVirt-Client - Ce package contient vif et d'autres services publics côté client
    • Virgin-install - Utilité pour installer des machines virtuelles
    • Virt-Viewer - Utilité pour afficher la console graphique pour une machine virtuelle

Difficulté

MOYEN

Conventions

  • # - nécessite que les commandes Linux soient exécutées avec des privilèges racine
    directement en tant qu'utilisateur racine ou en utilisant Sudo commande
  • $ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Introduction

Savoir comment créer et gérer les machines virtuelles KVM à partir de la ligne de commande peut être vraiment utile dans certains scénarios: lorsque vous travaillez sur des serveurs sans tête, par exemple. Néanmoins, être capable de scripter les interactions avec des machines virtuelles peut considérablement améliorer notre productivité. Dans ce tutoriel, vous apprendrez à créer, supprimer, cloner et gérer les machines KVM à l'aide de quelques utilitaires.



Une certaine terminologie

Avant de commencer à travailler, il serait utile de définir ce Kvm et Qemu sont et comment ils interagissent. Kvm représente Machine virtuelle du noyau, et c'est un module du noyau Linux qui permet à un programme d'accéder et d'utiliser les capacités de virtualisation des processeurs modernes, en exposant l'interface / dev / kvm. Qemu est, au lieu de cela, le logiciel qui effectue réellement l'émulation du système d'exploitation. Il s'agit de l'émulateur de machine et du virtualiseur open source qui peuvent utiliser la fonction d'accélération fournie par Kvm Lors de l'exécution d'une machine émulée avec la même architecture de l'hôte.

Configuration préliminaire

La première chose que nous devons faire, c'est de vérifier que le CPU que nous utilisons a un support pour la virtualisation. À moins que vous ne couriez sur une très vieille machine, ce sera sûrement le cas, mais pour le vérifier, nous exécutons simplement:

$ cat / proc / cpuinfo

Faites défiler la sortie de la commande ci-dessus jusqu'à ce que vous voyiez la liste des «drapeaux» du CPU: parmi eux, vous devriez voir SVM Si vous utilisez un processeur AMD, ou vmx Si le fournisseur de processeur est Intel.

La deuxième chose que nous devons faire est de s'assurer que les modules de noyau nécessaires ont été chargés, pour vérifier cela, nous exécutons:

# lsmod | grep kvm kvm_intel 200704 0 kvm 598016 1 kvm_intel irqByPass 16384 1 kvm 


Je cours sur un processeur Intel, par conséquent, en plus du kvm module, également le kvm_intel un a été chargé. Si vous utilisez un processeur AMD, le kvm_amd Le module sera chargé à la place. Si les modules ne sont pas chargés automatiquement, vous pouvez essayer de les charger manuellement en utilisant le modprobe commande:

# modprobe kvm_intel

Enfin, nous devons commencer le libvirtd Daemon: La commande suivante la permet à la fois au moment du démarrage et la démarre immédiatement:

# systemctl activer --now libvirtd

Créer la nouvelle machine virtuelle

Maintenant que nous avons installé et commencé le libvirtd service, nous pouvons utiliser le verrouillage Commande pour configurer notre machine virtuelle. La syntaxe du programme est vraiment simple. La commande Linux suivante doit être exécutée en tant que racine, ou, si vous souhaitez le lancer en tant qu'utilisateur normal, en tant que membre du kvm groupe. La syntaxe du programme est la suivante:

# virpinstall --name = LinuxConfig-vm \ --vcpus = 1 \ --mory = 1024 \ --cdrom = / tmp / debian-9.0.0-AMD64-NETINST.ISO \ - - Disk Taille = 5 \ --os-Variant = Debian8 

Analysons la commande ci-dessus:

Tout d'abord, nous avons utilisé le --nom Option: Ceci est obligatoire et il est utilisé pour attribuer un nom à la nouvelle machine virtuelle.

L'option suivante est la --VCPUS un. Nous l'utilisons pour spécifier le nombre de CPU virtuels Pour configurer pour l'invité.

Le --mémoire L'option est utilisée pour sélectionner la quantité de mémoire réservée à la machine invitée dans Mib et --CD ROM nous permet de spécifier le chemin d'accès à un fichier ou à un appareil à utiliser comme CD-ROM virtuel: il peut s'agir d'une image ISO, d'un appareil CDROM ou d'une URL à partir de laquelle accéder à une image ISO de démarrage.



Le --disque L'indicateur est utilisé pour configurer le stockage des médias pour l'invité. Diverses options séparées par des virgules peuvent être spécifiées, par exemple: taille qui est utilisé pour spécifier la taille du disque virtuel en GB et chemin qui est utilisé pour spécifier un chemin à utiliser pour le disque (il sera créé s'il n'existe pas déjà). Si ces options sont spécifiées, vous devez vous assurer que le chemin cible est accessible et a le bon contexte de selinux (pour en savoir plus sur SELINUX, vous pouvez lire cet article).

Si la chemin L'option n'est pas spécifiée, le disque sera créé dans $ Home /.local / share / libvirt / images Si la commande est exécutée comme utilisateur normal (membre du groupe KVM) ou dans / var / lib / libvirt / images si l'exécution de Root.

Ensuite, nous avons passé le --os-variant option. Bien que cela ne soit pas obligatoire, il est fortement recommandé de l'utiliser, car il peut améliorer les performances de la machine virtuelle. L'option essaiera d'affiner l'invité à la version spécifique du système d'exploitation. Si l'option n'est pas adoptée, le programme tentera de détecter automatiquement la valeur correcte à partir du support d'installation. Pour obtenir une liste de tous les systèmes pris en charge, vous pouvez exécuter:

$ osinfo-query OS

Si tout s'est bien passé et le visualiseur le forfait est installé, une fenêtre apparaîtra affichant le programme d'installation du système d'exploitation invité.

L'utilitaire VIRSH

L'utilitaire VIRSH peut être utilisé pour interagir avec des machines virtuelles. Par exemple, disons que vous souhaitez répertorier tous les invités configurés, en utilisant VIRSH, vous pouvez simplement exécuter:

# liste VIRSH - tout

La sortie montrera le identifiant, nom et État de tous les invités configurés, qu'ils fonctionnent ou non.

Mais que se passe-t-il si vous voulez modifier certains paramètres de la machine invité? Vous pouvez utiliser vif Pour accomplir cette tâche, par exemple:

# VIRSH Edit LinuxConfig-VM

Voici une capture d'écran de la sortie de commande:



Comme vous pouvez le voir, la sortie est une représentation XML des propriétés de la machine virtuelle, ou, en utilisant la terminologie VIRSH, un domaine. Si vous souhaitez changer, par exemple, le nombre de VCPU, il vous suffit de trouver la balise pertinente et de modifier la valeur. Dans ce cas, nous avons:

1

Nous voulons ajouter 1 VCPU, nous allons donc le changer en:

2

Tout ce que nous avons à faire maintenant, c'est simplement redémarrer la machine virtuelle pour que les paramètres soient appliqués:

# VIRSH Reboot LinuxConfig-Vm

Si nous courons maintenant LSCPU Dans la console invitée, nous devrions voir l'augmentation du nombre de processeurs:

Le vif La commande peut également être utilisée pour effectuer d'autres opérations communes: par exemple, Arrêt VIRSH peut être utilisé pour fermer l'invité, VIRSH DÉTROYAGE est l'équivalent d'une fermeture de force brute (donc elle peut être dangereuse) et VIRSH UNDEFINE peut être utilisé pour supprimer une machine invitée (pour indéfinir un domaine).

AutoStart une machine virtuelle sur le démarrage

Vous pouvez profiter du vif Commande également si vous voulez que certains invités soient démarrés automatiquement lorsque le système hôte bops: la syntaxe c'est, encore une fois, très intuitif:

# VIRSH Autostart LinuxConfig-Vm

Pour désactiver cette option, nous exécutons:

# VIRSH Autostart - Disable LinuxConfig-Vm


Cloner un invité

Un autre utilitaire, vir-clone peut être utilisé pour créer une nouvelle machine virtuelle en clonant une. Pour continuer, nous devons d'abord nous assurer que l'invité à cloner est en panne que nous courons:

Virt-Clone \ --original = LinuxConfig-vm \ --name = LinuxConfig-vm-Clone \ --file = / var / lib / libvirt / images / linuxconfig-vm.qcow2 

Ce que nous avons ici est très simple à comprendre: nous avons spécifié que l'invité est cloné en utilisant le --original Option et le nom du nouvel invité en utilisant --nom comme si nous l'installions à partir de zéro. Avec le --déposer L'option, à la place, nous référentes tous les disques durs virtuels associés à l'invité d'origine que nous voulons cloner. Le programme fera son travail et, en cas de succès, créera un nouveau domaine nommé linuxconfig-vm-clone. Nous savons déjà comment le vérifier:

# Liste VIRSH - Tout nom d'identification ----------------------------------------- ----------- - LinuxConfig-Vm Shut Off - LinuxConfig-vm-Clone Shut Off 

Dernières pensées

Dans ce tutoriel, nous avons configuré une nouvelle machine virtuelle, et nous avons vu comment interagir avec lui. Les options que nous avons spécifiées au moment de la création, sont juste le minimal nécessaire pour une configuration de travail. Beaucoup d'autres options peuvent être utilisées pour ajuster plusieurs aspects de la machine invités et ils sont vraiment bien décrits dans le verrouillage page d'homme. Comme toujours, le meilleur conseil possible est: lire le manuel.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Liste des visionneuses PDF sur Ubuntu 22.04 Jammy Jellyfish Linux
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Comment créer des instantanés d'invités Qemu / KVM
  • Meilleur lecteur PDF pour Linux
  • Comment exécuter le Raspberry Pi OS dans une machine virtuelle avec…
  • Choses à installer sur Ubuntu 22.04
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Fichiers de configuration Linux: 30 premiers