Outils pour utilisateurs

Outils du site


kvm

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

kvm [2014/12/21 19:42] (Version actuelle)
Ligne 1: Ligne 1:
 +===Virtualisation par KVM===
  
 +==Préliminaires==
 +
 +Kvm (pour Kernel-based Virtual Machine) est une solution de virtualisation récente, légère et très performante. Elle repose sur un module noyau (inclus dans les noyaux de version >2.6.20, le backport est possible sur certains noyaux antérieurs,​ voir le [[http://​kvm.qumranet.com/​kvmwiki/​HOWTO|wiki de kvm]]), et un émulateur (une version modifiée de [[qemu:​|Qemu]]).
 +Kvm est développé sous licence libre, ainsi que les outils utilisateurs (lgpl et gpl). Le développement et asuré en grande partie par la société [[http://​www.qumranet.com/​|Qumranet]] qui est spécialisée dans les solutions Open-Sources.
 +
 +Kvm est une solution dite de "full virtualization"​ , le système invité n'a pas besoin d'​être modifié. Chaque système invité est traité par le noyau comme un processus autonome, qui au lieu d'​être décomposé en processus utilisateur et noyau, ajoute une troisième catégorie de processus "​invité"​ (guest) lui même décomposé en deux niveaux utilisateur et noyau.
 +Plus de détails sur la [[http://​www.ibm.com/​developerworks/​linux/​library/​l-linux-kvm/​index.html|page dédiée à kvm d'​IBM]].
 +
 +Si vous disposez d'un noyau récent le module kvm est déjà présent, pour le vérifier utilisez :
 +
 +<​code>​ /​sbin/​modprobe -l | grep kvm</​code>​
 +
 +Vous devriez voir trois composants : kvm.ko qui est la partie commune du module, et kvm-intel ou kvm-amd qui est la partie spécifique à l'​architecture du processeur.
 +
 +Votre processeur doit également supporter cette forme de virtualisation,​ seuls les processeurs récent sont dans ce cas. Si le vôtre est compatible la commande :
 +
 +<​code>​egrep '​vmx|svm'​ /​proc/​cpuinfo</​code>​
 +ou
 +<​code>​hwinfo --cpu | egrep '​vmx|svm'</​code>​
 +
 +doit vous renvoyer une longue série de « flags » parmi lesquels les valeurs "​vmx"​ ou "​svm"​. Pour faire simple si la commande renvoie quelque chose c'est bon, sinon vous ne pourrez pas utiliser kvm.
 +
 +==Installation==
 +
 +Prenons l'​exemple de [[debian:​debian:​|Debian]],​ comme indiqué précédemment le module est déjà présent si votre noyau est récent, pour le charger il suffira d'​utiliser « modprobe » en appelant le module qui correspond à votre architecture :
 +
 +<​code>#​ modprobe kvm && modprobe kvm-intel (ou kvm-amd)</​code>​
 +
 +Normalement si depmod (liste les dépendances des modules) est correctement configuré il suffit de charger le module spécifique à l'​architecture processeur, le module commun sera chargé comme une dépendance.
 +
 +Il vous faut ensuite les outils qui vont vous permettre d'​interagir avec le module kvm, en particulier la version modifiée de Qemu:
 +
 +<​code>#​ apt-get install kvm</​code>​
 +
 +Sur certaines distributions le paquet nécessaire peut s'​appeler "​kvm-qemu"​.
 +
 +==Utilisation==
 +
 +La syntaxe est exactement la même que [[qemu:​|Qemu]],​ la seule différence étant l'​invocation de kvm (kvm-qemu sur certains systèmes) à la place de qemu.
 +
 +Création d'un disque virtuel "​Dreamlinux.img"​ au format qcow2 (image dynamique) de 10 Go (facultatif) :
 +
 +<​code>​qemu-img create -f qcow2 ./​Dreamlinux.img 10G</​code>​
 +
 +Lancement de la machine virtuelle avec une image .iso comme disque de démarrage (option -cdrom), utilisation du disque virtuel précédemment créée(option -hda , pourra être utilisé pour l'​installation,​ facultatif),​ en simulant une machine dualcore (-smp 2) et en lui allouant 1024Mo de mémoire vive (-m 1024) :
 +
 +<​code>​kvm -smp 2 -m 1024 -cdrom ~/​DL3.1_080405DE_en.iso -hda ./​Dreamlinux.img</​code>​
 +
 +Une invocation plus simple destinée à tester une distribution sur cdrom sera :
 +
 +<​code>​kvm -cdrom /​mon_image_iso</​code>​
 +
 +Kvm utilisera les paramètres par défaut, notamment 128Mo de mémoire vive ce qui peut être un peu juste.
 +Lors de l'​utilisation de kvm la barre des titres de la fenêtre d'​émulation doit indiquer "​qemu/​kvm"​ et non qemu seul (ce n'est plus vrai avec les dernières versions, seul "​qemu"​ apparaît).
 +
 +De nombreuses options sont disponibles,​ elles sont pour la plupart similaires à celles de Qemu. Consultez les pages de manuel (man kvm ou man kvm-qemu) et la documentation sur [[http://​kvm.qumranet.com/​kvmwiki/​HOWTO|le site de kvm]].
 +
 +Il faudra particulièrement veiller aux réglages réseau car la méthode par défaut utilisée par kvm est très efficace pour fournir un accès réseau à la machine virtuelle, mais limitée pour une utilisation avancée (accès ssh ou vnc à la machine virtuelle impossible par défaut).
 +
 +Le choix du format de l'​image est important, "​qcow2"​ est un très bon choix si l'​image n'est utilisé que par
 +kvm, "​vmdk"​ présente l'​avantage de rendre l'​image compatible avec VmWare et VirtualBox.
 +
 +Il est possible d'​obtenir le support d'un lecteur de disquette, de l'usb, d'​émuler une carte son performante,​ ou de désactiver l'acpi sur la machine invitée (indispensable pour windows xp) par exemple.
 +Il est également possible de démarrer la machine virtuelle en mode "​snapshot"​ pour ne pas écrire les changements sur la machine virtuelle avant de les avoir validés.
 +
 +En cas de problème au démarrage, vérifiez que vous avez bien un périphérique /dev/kvm avec les droits root:kvm, et vérifiez dans /etc/group que le groupe kvm existe, et que vous en êtes membre.
 +
 +==Interface graphique==
 +
 +J'​entends d'ici les grincements de dents : kvm s'​utilise en ligne de commande, il n'y a pas d'​interface graphique officielle pleinement fonctionnelle pour le moment.
 +
 +L'​interface de gestion des machines virtuelles **virt-manager** ([[http://​virt-manager.org/​index.html|Virtual Machine Manager]]) est en développement,​ elle est pour le moment instable au mieux, et incomplète quant à l'​accès qu'​elle fournie aux options de kvm. Vous pouvez l'​essayer sur Debian Testing et Ubuntu 8.04 à partir des dépôts standard. À terme elle sera une solution graphique complète de création, administration et monitoring des machines virtuelles (kvm mais aussi qemu et xen).
 +Le développement étant très actif  (notamment mené par RedHat) il est conseillé de tester régulièrement l'​application
 +
 +Cependant il est possible d'​utiliser [[http://​qemulator.createweb.de/​|Qemulator]] très facilement, il fourni une interface assez complète et suffisamment intuitive pour qui est familier de la virtualisation (si vous avez utilisé [[virtualbox:​|VirtualBox]] ou Vmware vous devriez vous y retrouver très vite).
 +Qemulator est disponible sur les dépôts Testing Debian, après installation avec apt-get vous trouverez un raccourci dans le sous-menu "​utilitaires"​ du menu K (kde), et quelque part sous Gnome ... ;-)
 +
 +Qemulator est prévu pour utiliser Qemu et son module kqemu, pour que cela fonctionne avec kvm il va falloir le modifier un peu.
 +
 +Rien de bien compliqué en fait, ouvrez Qemulator et créez une machine virtuelle comme vous le feriez dans VirualBox ou autre, ensuite ouvrez les préférences de Qemulator (menu Settings>​Preferences , à ne pas confondre avec les "​settings"​ de la machine virtuelle). Une fenêtre autonome s'​ouvre pour présenter les réglages possibles, dans le premier onglet "​Path"​ rendez-vous dans le partie inférieure nommé "qemu programs for all plateforms"​. Effacer tous les chemins vers les exécutables relatifs à Qemu (il faut les sélectionner et utiliser le bouton "​remove"​ ). Créez ensuite les nouveaux chemins vers kvm pour les types d'​architectures que vous utilisez (ici x86 et x86-64), mettez donc comme nom "​x86"​ et "​x86-64"​ pour le second, et dans les deux cas indiquez le même chemin /​usr/​bin/​kvm (kvm traite de la même façon les deux architectures).
 +Au final vous devriez avoir quelque chose d'​identique à la capture d'​écran ci-dessous.
 +N'​oubliez pas d'​enregistrer les changements.
 +
 +
 +La fenêtre principale et celle des préférences de Qemulator.
 +{{ autre:​qemulator_kvm.png?​580 }}
 +
 +Maintenant ouvrez les "​settings"​ de la machine virtuelle (qui s'​ouvrent dans un panneau intégré au bas de la fenêtre principale),​ faites vos réglages mais veillez à ce que dans l'​onglet "​Qemu"​ la ligne cochée soit bien "use kqemu (default)"​. cela peut paraître étrange car on ne veut justement pas utiliser kqemu, mais comme Qemu par défaut détecte et utilise kqemu s'il est présent seule cette option n'​ajoute rien à la ligne de commande générée par Qemulator. Choisir "​don'​t use kqemu" ajouterait l'​option "​-no-kqemu"​ à la commande, celle-ci n'​étant pas reconnue par kvm.
 +
 +Qemulator offre de nombreux réglages, il permet d'​activer le support de l'usb, d'​intégrer un partage Samba...
 +
 +Voilà, l'​adaptation est finie, désormais en lançant votre machine virtuelle avec Qemulator vous devriez voir dans la barre des titres de la fenêtre d'​émulation la mention "​qemu/​kvm"​. N'​oubliez pas de charger le module kvm, Qemulator ne le fera pas pour vous.
 +
 +
 +[[http://​www.linuxpedia.fr/​forum/​index.php?​action=pm;​sa=send;​u=15|Envoyer un message au mainteneur]]
kvm.txt · Dernière modification: 2014/12/21 19:42 (modification externe)