« Qemu » : différence entre les versions

De Wiki doc

Ligne 71 : Ligne 71 :
==Démarrage de la machine virtuelle==
==Démarrage de la machine virtuelle==


  # qemu-system-x86_64 -m 1024 -name host1 -net nic,macaddr=52:54:00:12:34:57 -net tap,ifname=host1-eth0,script=/etc/qemu/qemu-ifup,downscript=/etc/qemu/qemu-ifdown --cdrom /srv/iso/debian-live-8.7.1-amd64-lxde-bureau.iso -vnc :6 --enable-kvm -hda /root/hdd.qcow2
  # qemu-system-x86_64 -m 1024 -name host1 -vnc :6 --enable-kvm -cpu host -smp cores=2,threads=1,sockets=1 -net nic,macaddr=52:54:00:12:34:57 -net tap,ifname=host1-eth0,script=/etc/qemu/qemu-ifup,downscript=/etc/qemu/qemu-ifdown -boot d --cdrom /srv/iso/debian-live-8.7.1-amd64-lxde-bureau.iso -hda /root/hdd.qcow2


Paramètres:
Paramètres:
* '''-m 1024''' : mémoire attribué a la machine virtuelle (en octets)
* '''-m 1024''' : mémoire attribué a la machine virtuelle (en octets)
* '''-name''' : nom de la machine virtuelle
* '''-name''' : nom de la machine virtuelle
* '''-vnc :6''' : Utilisation de [https://fr.wikipedia.org/wiki/Virtual_Network_Computing VNC] sur le port 5906
* '''--enable-kvm''' : Permet la prise en charge des instructions de virtualisation du processeur
* '''-cpu host''' : Émule un processeur KVM avec théoriquement les mêmes fonctionnalités que l'hôte (ne fonctionne qu'avec le paramètre ''--enable-kvm''). Voir le paramètre ''-cpu help'' pour la liste des possibilités
* '''-smp cores=2,threads=1,sockets=1''' : Émule un [https://fr.wikipedia.org/wiki/Symmetric_multiprocessing multiprocesseur symétrique à mémoire partagée] (on peut mettre plusieurs cœurs et plusieurs processeurs sur une machine)
* '''-net  nic,macaddr=52:54:00:12:34:57''' : l'adresse MAC de la machine virtuelle ([[Lxc#Script_de_g.C3.A9n.C3.A9ration_d.27adresse_MAC|voir]])
* '''-net  nic,macaddr=52:54:00:12:34:57''' : l'adresse MAC de la machine virtuelle ([[Lxc#Script_de_g.C3.A9n.C3.A9ration_d.27adresse_MAC|voir]])
* '''-net tap,ifname=host1-eth0,script=/etc/qemu/qemu-ifup,downscript=/etc/qemu/qemu-ifdown''' : nom de l'interface réseau sur la machine maître suivie des scripts précédemment créés
* '''-net tap,ifname=host1-eth0,script=/etc/qemu/qemu-ifup,downscript=/etc/qemu/qemu-ifdown''' : nom de l'interface réseau sur la machine maître suivie des scripts précédemment créés
* '''-boot d''' : Démarre sur le cdrom ([https://wiki.gentoo.org/wiki/QEMU/Options#Boot_order valeurs possible] : c|d|n - disque principal|cdrom|réseau)
* '''--cdrom /srv/iso/debian-live-8.7.1-amd64-lxde-bureau.iso''' : lien vers l'ISO du CD-ROM
* '''--cdrom /srv/iso/debian-live-8.7.1-amd64-lxde-bureau.iso''' : lien vers l'ISO du CD-ROM
* '''-vnc :6''' : Utilisation de [https://fr.wikipedia.org/wiki/Virtual_Network_Computing VNC] sur le port 5906
* '''--enable-kvm''' : Permet la prise en charge des instructions de virtualisation du processeur
* '''-hda /root/hdd.qcow2''' : lien vers le disque virtuel précédant créé
* '''-hda /root/hdd.qcow2''' : lien vers le disque virtuel précédant créé



Version du 1 septembre 2017 à 18:34

Prérequis

Installation

Qemu est disponible dans les dépôts Debian

# apt install qemu-system-x86-64

Script réseau

Pour que la machine virtuelle puise se connecter sur Open vSwitch, des scripts sont a créer.

ATTENTION

Chaque VLAN doit avoir un script de démarrage de l’interface. le script d’arrêt est commun à tous les VLANs.

ASTUCE

Les scripts peuvent être dans l'arborescence que vous voulez.

Script de démarrage de l’interface

#!/bin/sh
OVSCOMMUT=br0
OVSTAG=100
echo "Execution de /etc/qemu/qemu-ifup"
echo "Allumage de $1 pour l'ajout au pont OVS..."
ip link set $1 up promisc on
echo "Ajout de $1 à ${OVSCOMMUT}..."
ovs-vsctl --may-exist add-br ${OVSCOMMUT}
ovs-vsctl --if-exists del-port ${OVSCOMMUT} $1
ovs-vsctl --may-exist add-port ${OVSCOMMUT} $1
ovs-vsctl --if-exists set port $1 tag=${OVSTAG}
sleep 2

Variables:

  • OVSCOMMUT : interface de votre commutateur virtuel
  • OVSTAG : numéro du Vlan

Script de d'arrêt de l’interface

#!/bin/sh
OVSCOMMUT=br0
echo "Execution de /etc/qemu/qemu-ifdown"
echo "Arrêt de $1 pour la suppression au pont OVS..."
ip link set $1 down
echo "Suppression de $1 à ${OVSCOMMUT}..."
ovs-vsctl --if-exists del-port ${OVSCOMMUT} $1
echo "Suppression de $1..."
ip link delete dev $1

Variable:

  • OVSCOMMUT : interface de votre commutateur virtuel

Modifier les droits

Ajouter les droits d’exécutions aux scripts

# chmod +x /etc/qemu/qemu-if*

Création d'une machine virtuelle

Création d'un disque virtuel

# qemu-img create -f qcow2 hdd.qcow2 10G

Paramètres:

  • -f qcow2 : type du disque vituel
  • hdd.qcow2 : nom de l'image disque
  • 10G : taille attribué au disque

Démarrage de la machine virtuelle

# qemu-system-x86_64 -m 1024 -name host1 -vnc :6 --enable-kvm -cpu host -smp cores=2,threads=1,sockets=1 -net nic,macaddr=52:54:00:12:34:57 -net tap,ifname=host1-eth0,script=/etc/qemu/qemu-ifup,downscript=/etc/qemu/qemu-ifdown -boot d --cdrom /srv/iso/debian-live-8.7.1-amd64-lxde-bureau.iso -hda /root/hdd.qcow2

Paramètres:

  • -m 1024 : mémoire attribué a la machine virtuelle (en octets)
  • -name : nom de la machine virtuelle
  • -vnc :6 : Utilisation de VNC sur le port 5906
  • --enable-kvm : Permet la prise en charge des instructions de virtualisation du processeur
  • -cpu host : Émule un processeur KVM avec théoriquement les mêmes fonctionnalités que l'hôte (ne fonctionne qu'avec le paramètre --enable-kvm). Voir le paramètre -cpu help pour la liste des possibilités
  • -smp cores=2,threads=1,sockets=1 : Émule un multiprocesseur symétrique à mémoire partagée (on peut mettre plusieurs cœurs et plusieurs processeurs sur une machine)
  • -net nic,macaddr=52:54:00:12:34:57 : l'adresse MAC de la machine virtuelle (voir)
  • -net tap,ifname=host1-eth0,script=/etc/qemu/qemu-ifup,downscript=/etc/qemu/qemu-ifdown : nom de l'interface réseau sur la machine maître suivie des scripts précédemment créés
  • -boot d : Démarre sur le cdrom (valeurs possible : c|d|n - disque principal|cdrom|réseau)
  • --cdrom /srv/iso/debian-live-8.7.1-amd64-lxde-bureau.iso : lien vers l'ISO du CD-ROM
  • -hda /root/hdd.qcow2 : lien vers le disque virtuel précédant créé

Arrêt de la machine virtuelle

L’arrêt s'effectue via la fonction dédiée à chaque système émulé. Pour forcer l’extinction, effectuer un CTRL+C.

Source