Ldfa Posté(e) le 30 décembre 2019 Partager Posté(e) le 30 décembre 2019 Définition :Simuler une machine complète pour avoir son propre environnement d’exécution. Les avantages sont nombreux, isolations des processus, plusieurs environnements différents, etc. La virtualisation matérielle est possible au moyen de ce que l’on appelle des hyperviseurs.Il existe plusieurs types d’hyperviseurs, classés en 2 niveau. Le niveau 1 est dit « natif ».Natif car les instructions processeurs du système virtuelle sont directement transmis aux hardware. Il faut donc vérifier la compatibilité entre les systèmes virtualisés et les composants matérielles.Le niveau 2 est dit « hosted ».Hosted car la virtualisation s’effectue grâce à un logiciel installé sur un système d’exploitation. Donc la machine virtualisée n’interagit pas directement avec le Hardware. KVM est un hyperviseur de type 1, il est intégré de manière native à beaucoup de distribution basées sur le noyau Linux. KVM pour Kernel-based Virtual Machine car il transforme le noyau linux sur lequel il est exécuté en hyperviseur, proxmox est basé dessus.Il en existe d’autres. Dans ce tuto on va utiliser QEMU (QuickEmulator) pour interagir avec KVM. Qemu c’est pas très clair au début, il est de type 1 et 2. Il peut simuler un environnement pour une machine totalement différente de la votre, par exemple une py sur un PC. Dans ce cas la il transforme les exécutions de processeurs pour les rendre compatibles avec le hardware, donc la il est de type2. Mais quand il est utilise avec KVM dans ce cas la il fonctionne en type 1 et donc avec des performances bien meilleures, ça envoi du pâté !!.En clair Qemu sert à manager les machines virtuels, c’est un client.Et la liaison entre Qemu et KVM est faite via l’API libvirt ( management du réseau, stockages, clavier, souris, etc ) Cas pratique ( Tuto réalisé sur Debian ): en tant que root :apt-get install qemu-kvm qemu-utils virt-manager libvirt-daemonusermod -a -G libvirt-qemu USERPour pouvoir utiliser virt-manager avec votre compte utilisateur Vérifier que tout est bon :virt-host-validate Et voila. Maintenant graphiquement vous pouvez utiliser virt-manager ( si vous savez utiliser virtualbox vous ne serez pas dépaysé )D’ailleurs si vous prêtez attention à l’interface vous vous rendrez compte que l’interface graphique est un gestionnaire de connexion pour hyperviseur KVM via libvirt.Donc vous pouvez créez puis administrer graphiquement un serveur de VMs à distance via ssh. Interface graphique de virt-manager, les options ne manquent pas 😉 Pour la gestion graphique j’en arrête la. Pour configurer en terminal, voici (en root): Activer l’accès au LAN, le réseau :virsh net-start defaultcréer et démarre l’interface virtuelle virbr0, qui est naté ( je sais pas si ca se dit ). créer et démarre automatiquement virbr0 au démarrage de l’hôte:virsh net-autostart default pour personnaliser sa configuration réseau :virsh net-edit default Vérifier que c’est OK pour le réseau :ifconfigNormalement une interface virbr0 a était crée. Pour vérifier le port forwadding :cat /proc/sys/net/ipv4/ip_forwardSi la valeur est a 0, dé-commenter dans /etc/sysctl.conf le paramètre suivant pour l’activer au démarrage :# Uncomment the next line to enable packet forwarding for IPv4#net.ipv4.ip_forward=1Et entrez la commande suivante pour l’activer de suite :sysctl -w net.ipv4.ip_forward=1 On configure le pare-feux, en remplaçant avec le nom de l’interface physique, par exemple eth0 ou enp3s0 :iptables -A FORWARD -i interfacephysique -j ACCEPTiptables -A FORWARD -o interfacephysique -j ACCEPT Par défaut les images des machines virtuelles qui seront crées avec virt-manager seront stockes dans : /var/lib/libvirt/imagesSi comme moi vous avez votre OS sur un SSD pas pratique, donc perso j’ai supprimé le répertoire par défaut pour ensuite créer un liensymbolique à la place qui pointe vers un HDD de 1TO, voici la manipulation :rm -rf /var/lib/libvirt/imagesln -s /lechemindevotrestockage /var/lib/libvirt/images Créer l’image :qemu-img create -f qcow2 /var/lib/libvirt/images/DOMAIN.img 20G-f ; format de KVM pour le fichier image, qcow2 est le format kvm par défaut, raw est compatible avec Virtualbox et VMware20G ; Remplacer par la valeur souhaité, ce sera la taille du disque dur virtuel Booter sur une ISO et installer l’OS via KVM :kvm -m 1024 -cdrom /CHEMIN_VERS_VOTRE_ISO -boot d /var/lib/libvirt/images/DOMAINE.img-m 1024 ; La quantité de ram allouée-cdrom ; spécifie le chemin vers votre ISO-boot d ; spécifie sur quelle domaine booter, un système émulé s’appelle domaine, remplacer DOMAINE par un titre parlant par exemple DebianVM Booter simplement sur l’OS fraîchement installé directement via KVM :kvm -boot -d /var/lib/libvirt/images/DOMAINE.img Attention en utilisant KVM directement et non avec libvirt, les machines virtuelles ne seront pas listés avec virtmanager ou la commande : virsh list Créer une VM et procéder à son installation via une ISO en utilisant KVM via libvirt :virt-install -n DomainKVM --virt-type kvm --memory 1024 --cpu host --vcpus 2 --cdrom /CheminVersISO --disk /var/lib/libvirt/images/DOMAINE.qcow2 --network default --os-variant BASEOS-n ; le nom du domaine–virt-type ; on choisit le type de virtualisation, ici KVM–memory ; idem que tout à l’heure–cpu ; la machine virtuelle utilisera le même processeur que l’hôte–vcpus ; nombre de cœurs alloués–cdrom ; le chemin vers votre ISO–network; on indique la configuration reseau que l’on veut, mettre defaut si on suit ce tuto–os-variant ; la base du systeme, par exemple debian, fedora, etc et sa version, par exemple debian8 ou fedora19 Importer une VM existante avec libvirt, de type KVM :virt-install -n DomainKVM --virt-type kvm --memory 1024 --cpu host --vcpus 2 --disk /var/lib/libvirt/images/DOMAINE.qcow2 --network default --os-variant --import Live de Kali en utilisant virt-install pour booter sur une ISOEn utilisant libvirt, les machines crées apparaissent dans virt-manager pour rappel qui est le client graphique. Démarrer son OS :virsh start DOMAINE Éteindre son OS, méthode 1 propre, méthode 2 sale :methode1 : virsh shutdown DOMAINEmethode2 : virsh destroy DOMAINE Les configurations des VMs crées sont stockés au format XML dans : /etc/libvirt/qemu/ Et voila, en espérant que cet article vous aura était utile, et donner envie d’essayer autre chose que Virtualbox ou VMware, ce qui est con du coup si on utilise au quotidien un noyau Linux. Pour aller plus loin : man virt-install, man virsh, man virt-clone Si vous avez des remarques/suggestions/corrections ou autre, ne pas hésiter à laisser un commentaire, promis j’essaie de pas me vexer 🙂 Sources et Liens :https://wiki.qemu.org/Main_Pagehttps://libvirt.org/https://en.wikipedia.org/wiki/Libvirthttps://fr.wikipedia.org/wiki/Hyperviseurhttps://linux.goffinet.org/09-virtualisation-kvm/https://cloudbuilder.in/blogs/2014/03/09/kvhttps://cloudbuilder.in/blogs/2014/03/09/kvm-and-qemu/m-and-qemu/ Afficher l’article complet Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.