Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

KVM PDF

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 71

Présentation de la formation

KVM
(Kernel Base Virtual Machine)

Formation KVM (Kernel Virtual Based Machine)


Plan
• Présentation du formateur
• Le plan de formation
• Publics concernés
• Connaissances requises
• Présentation du Lab
• Liens des ressources logicielles
• Autres liens utiles

Formation KVM (Kernel Virtual Based Machine)


Le plan de formation
• Introduction • Virsh le shell de virtualisation
• Concept de la virtualisation • Introduction
• KVM Kernel Base Virtual Machine • Gérer les machines virtuelles
• LibVirt La librairie universelle pour la • Manipulation des stockages
virtualisation • Manipulation avancée des machines virtuelles
• Migration des machines virtuelles
• Mieux Comprendre KVM
• Installation de KVM • Virt-manager
• Petite configuration réseau ponté rapide • Installation d'une machine
• gérer le matériel des machines virtuelles
• Les machines virtuelles • Migration des machies virtuelles
• Décortiquer la boite virtuelle • Mise en place des pilotes Virtio MS Windows®
• Installation d'une machine
• Gestion des Machines Virtuelles
• Le stockage en environnement virtualisé • clonage et modèle
• Le LVM Logical Volume Manager • Les Snapshot
• Le NAS NFS
• Le SAN ISCSI • Le réseau en environnement virtualisé
• Les FS distribues – Glusterfs • Comprendre le réseau virtualisé, bridge,
macvtap
• Channel bonding
• OpenVswitch
Formation KVM (Kernel Virtual Based Machine)
Publics concernés
• Techniciens
• Ingénieurs
• Administrateurs Systèmes
• Ingénieurs Systèmes
• Personne désirant avoir une bonne connaissance de kvm avant d’ aller plus loin
• Toute personne désirant gérer et maintenir un système virtualisé

Formation KVM (Kernel Virtual Based Machine)


Connaissances requises
• Bonnes connaissances sur la gestion et la maintenance des systèmes
d’exploitation Linux
• Connaissances (de base) sur l’administration des systèmes
d’exploitation Windows
• Connaissances (de base) sur : TCP/IP, Adressage IP, matériels réseaux
• Connaissance souhaitée ☺ :

• Bonne maitrise du Shell Linux

• Un autre produit de virtualisation

Formation KVM (Kernel Virtual Based Machine)


Présentation du Lab
• Schéma du Lab

• Infos techniques du Lab


• Nom DNS du domaine
• alphorm.local
• DHCP activé
• oui
• Nom des hyperviseurs
• nodeXX.alphorm.local
• Adresse IP du réseau (Net ID)
• 192.168.1.0 /24 (255.255.255.0)

Formation KVM (Kernel Virtual Based Machine)


Liens des ressources utiles
• KVM : http://www.linux-kvm.org/page/Main_Page

• Qemu : http://wiki.qemu.org/Main_Page

• Libvirt : http://libvirt.org/

• Libguestfs : http://libguestfs.org/

Formation KVM (Kernel Virtual Based Machine)


Autres liens utiles
• Inetdoc : http://www.inetdoc.net/guides/vm/

• Turnkey appliance : http://www.turnkeylinux.org/

Formation KVM (Kernel Virtual Based Machine)


Are you ready ? ☺

Formation KVM (Kernel Virtual Based Machine)


Introduction a KVM
Concept de
Virtualisation

Formation KVM (Kernel Virtual Based Machine)


Plan
• La full virtualisation – Émulation complète

• La Paravirtulisation

• La virtualisation matérielle – HVM

• La notion de conteneurs – containers

Formation KVM (Kernel Virtual Based Machine)


La full virtualisation – Émulation complète

• Translation Binaire
Ne requiert aucune modification
au niveau du système
d'exploitation
N'a pas "conscience" de la
virtualisation
Demande une charge importante
au CPU

Formation KVM (Kernel Virtual Based Machine)


La Paravirtulisation

• Pilotes spécifique
Le système d'exploitation requiert
une modification au niveau du noyau
Communication entre l’hyperviseur
et le guest au travers de « backend »
PCI passthrough – DirectPass I/O
Très bonne performance

Formation KVM (Kernel Virtual Based Machine)


La virtualisation matérielle – HVM
• Accès direct au CPU de l’hôte
Modification matérielle sur les CPU
Technologies :
• Intel-VT-x (VT-d, VT-c)
• AMD SVM
Le noyau de l’hôte est modifié pour
ajouter les fonctions de virtualisation
matérielles

Formation KVM (Kernel Virtual Based Machine)


La notion de conteneurs - containers

• Guest OS sans noyau


Utilise le noyau de l’hôte, isolation
du guest OS
Pas de virtualisation au sens
émulation du matériel
Excellente performance, très léger,
uniquement disponible sur Unix-
Linux

Formation KVM (Kernel Virtual Based Machine)


Ce qu’on a couvert
• La full virtualisation

• La virtualisation matérielle – HVM

• La Paravirtulisation

• La notion de conteneurs - containers

Formation KVM (Kernel Virtual Based Machine)


Introduction
KVM
(Kernel Base Virtual Machine)
Plan
• Historique

• Fonctionnalitées

• Architecture

• Outils

Formation KVM (Kernel Virtual Based Machine)


Historique
• KVM est une solution de Full virtualisation assistée par le matériel

• Avi Kivity a commencé le développement de KVM en 2006 comme module


noyau au travers d’une startup nommé Qumranet
• KVM est intégré au noyau Linux 2.6 à partir de février 2007.

• Red Hat rachète Qumranet en 2008

• KVM a été choisi par OpenVirtualization Alliance comme hyperviseur.

• OpenVirtualization Alliance fait parti du projet Linux Foundation

Formation KVM (Kernel Virtual Based Machine)


Historique
KVM est la base de beaucoup de solution de virtualisation

oVirt/Redhat Virtualization

Openstack

OpenNebula

Proxmox Ve

Formation KVM (Kernel Virtual Based Machine)


Fonctionnalitées
• Virtualisation matérielle

• Paravirtualisation :

Réseau
Bloc
PCI Passthrough
Balloning memory
• OS invité Linux, FreeBSD, MS Windows, Mac OSX, nested hypervisor

• Live Migration

• Kernel Samepage Merging, Huges Pages, CPU pinning

• S’interface avec Libvirt

Formation KVM (Kernel Virtual Based Machine)


Architecture
KVM module noyau !!

Crée un périphérique /dev/kvm

QEMU-KVM s’occupe de l’émulation


des périphériques (usb, réseau,
disques, cpu ... )
Les outils permettant de créer et
utiliser des machines virtuelles KVM
interagissent avec ce périphérique

Une architecture virtualisée kvm,


repose sur le /dev/kvm et sur qemu
pour l’émulation

Formation KVM (Kernel Virtual Based Machine)


Architecture
Le périphérique /dev/kvm

permet au noyau de fonctionner


dans un mode « guest » qui permet
à chaque machine virtuelle de
posséder son propre espace
d’adressage, différent de celui du
noyau mais résidant dans l’espace
utilisateur

Formation KVM (Kernel Virtual Based Machine)


Architecture
Les processeurs virtuels (VCPU)

Périphériques paravirutalisés,
périphériques virutalisés et backend
des drivers

Tâches internes au processus qemu-kvm

Formation KVM (Kernel Virtual Based Machine)


Outils
• L’utilisateur ne va pas directement discuter avec les ioctl et le
périphérique KVM /dev/kvm.
qemu-system-{x86_64,i386, arm, ...}, qemu-img
Libvirt : virsh, virt-install, virt-clone, virt-manager (GUI)
Ovirt, proxmox, Openstack

Formation KVM (Kernel Virtual Based Machine)


Ce qu’on a couvert
• Historique

• Fonctionnalitées

• Architecture

• Le couple qemu/kvm

• Outils

Formation KVM (Kernel Virtual Based Machine)


Introduction
LibVirt
(La librairie universelle
pour la virtualisation)

Formation KVM (Kernel Virtual Based Machine)


Plan
• Libvirt – API de virtualisation

• Architecture

• Fonctionnalitées

Formation KVM (Kernel Virtual Based Machine)


Libvirt – API de virtualisation
• Une API, un démon et des outils de gestion pour la plupart des
plateformes de virtualisation

Formation KVM (Kernel Virtual Based Machine)


Architecture – espace noms

Formation KVM (Kernel Virtual Based Machine)


Architecture

Formation KVM (Kernel Virtual Based Machine)


Fonctionnalitées
• Gestion distante sécurisée, sasl, kerberos, TLS, certificat x509

• Gestion distante des Dom0, DomU

• Gestion distante des réseaux virtuels et interfaces, du stockage

• Monitoring des hyperviseurs(Dom0) et machines virtuelles (DomU)

Formation KVM (Kernel Virtual Based Machine)


Ce qu’on a couvert
• Libvirt – API de virtualisation

• Architecture

• Fonctionnalitées

Formation KVM (Kernel Virtual Based Machine)


Mieux Comprendre KVM

Installer KVM

Formation KVM (Kernel Virtual Based Machine)


Plan
• Installation de KVM

Formation KVM (Kernel Virtual Based Machine)


Installation de KVM
# yum install kvm qemu-kvm libvirt virsh virt-install libguestfs-tools

# yum groupinstall "Virtualisation Tools" "Virtualization Platform"


# yum install python-virtinst

Formation KVM (Kernel Virtual Based Machine)


Ce qu’on a couvert
• Installation de KVM

Formation KVM (Kernel Virtual Based Machine)


Mieux Comprendre KVM
configuration
réseau pontée rapide

Formation KVM (Kernel Virtual Based Machine)


Plan
• Schéma

• Configuration Centos/Debian

Formation KVM (Kernel Virtual Based Machine)


Schéma

Mode bridge
Permet aux DomU (vm)
Noyau d’héberger des services
réseaux dhcp, dns, ...
TCP/IP

Utilise Bridge-utils
br0
Commande brctl
Bridge

eth0 eth1

Formation KVM (Kernel Virtual Based Machine)


Configuration Centos/Debian
# yum install bridge-utils | #apt-get install bridge-utils

CentOS/Red hat Debian/Ubuntu


/etc/sysconfig/network-scripts/ifcfg-
br0 /etc/network/interfaces

DEVICE=br0 Auto lo br0


TYPE=Bridge Iface etho inet manual
ONBOOT=yes Iface br0 inet static
DELAY=0 bridge_ports eth0
BOOTPROTO=static address 192.168.1.110
IPADDR=192.168.1.110 netmask 255.255.255.0
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

/etc/sysconfig/network-scripts/ifcfg-
eth0

DEVICE=eth0
ONBOOT=yes
BRIDGE=br0

Formation KVM (Kernel Virtual Based Machine)


Ce qu’on a couvert
• Schéma

• Configuration Centos/Debian

Formation KVM (Kernel Virtual Based Machine)


Les machines virtuelles
Décortiquer la
boite virtuelle

Formation KVM (Kernel Virtual Based Machine)


Plan
• C’est quoi une machine virtuelle ?

• Fichier de configuration d’une vm

• Les disques

• Les cartes réseaux

• Le graphique

• La mémoire, les vCPU

• Ou se trouve ces paramètres ?

Formation KVM (Kernel Virtual Based Machine)


C’est quoi une machine virtuelle ?
• La représentation “logiciel” d’une machine physique

Formation KVM (Kernel Virtual Based Machine)


Fichier de configuration d’une vm
<name>ad-samba</name>
<uuid>bc3d9faf-59c8-4d7e-ee80-6a516f9c7225</uuid>
<memory unit='KiB'>536576</memory>
<currentMemory unit='KiB'>536576</currentMemory>
• Un fichier xml <vcpu placement='static'>4</vcpu>
<os>
<type arch='x86_64' machine='pc-i440fx-
trusty'>hvm</type>
<boot dev='hd'/>
• Un fichier de disques </os>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/kvm-spice</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/nfs/images/ad-samba.img'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00'
slot='0x05' function='0x0'/>
</disk>

Formation KVM (Kernel Virtual Based Machine)


C’est quoi une machine virtuelle ?

Formation KVM (Kernel Virtual Based Machine)


Les disques
• Les disques IDE, SCSI, VIRTIO, VIRTIO SCSI

Formation KVM (Kernel Virtual Based Machine)


Des cartes réseaux
• Des cartes réseaux virtualisés et para-virtualisés

Formation KVM (Kernel Virtual Based Machine)


Des périphériques graphiques
• Différents serveurs d’affichage

Formation KVM (Kernel Virtual Based Machine)


De la mémiore, de vCPUs

Formation KVM (Kernel Virtual Based Machine)


Ou se trouve ces paramètres ?
• Dans différents répertoires :
Les fichiers de configuration dans /etc/libvirt/qemu/vm.xml
Les disques sont généralement partagés entre les hôtes sur du NAS et/ou sur
du SAN
Par défault dans /var/lib/libvirt/images

Formation KVM (Kernel Virtual Based Machine)


Ce qu’on a couvert
• C’est quoi une machine virtuelle ?

• Fichier de configuration d’une vm

• Les disques

• Les cartes réseaux

• Le graphique

• La mémoire, les vCPU

• Ou se trouve ces paramètres ?

Formation KVM (Kernel Virtual Based Machine)


Les machines virtuelles
Installation d'une
machine virtuelle

Formation KVM (Kernel Virtual Based Machine)


Plan
• Installation avec qemu-system

• Installation avec virt-install

Formation KVM (Kernel Virtual Based Machine)


Installation avec qemu-system
• Création d’une image de disque
#qemu-img create -f qcow2 centos.qcow2 10G

• Installation d’un domU


#qemu-kvm –name centos6 -cdrom CentOS-6.6-x86_64-minimal.iso –m 512 –cpu 2 -hda
centos.qcow2 -boot d

Formation KVM (Kernel Virtual Based Machine)


Installation avec virt-install
• Installation d’une Vm avec virt-install
#virt-install \
--name centos6 \
--os-type linux --os-variant rhel6\
--vcpus 4 --ram 1024 \
--disk path=/var/lib/libvirt/images/centos6.qcow2 \
--network bridge=br0 \
--graphics vnc | --nographics --extra-args='console=ttyS0' -v \
--location 'http://mirror.centos.org/centos-6/6.6/os/x86_64/'

#virt-install --prompt

Formation KVM (Kernel Virtual Based Machine)


Ce qu’on a couvert
• Installation avec qemu-system

• Installation avec virt-install

Formation KVM (Kernel Virtual Based Machine)


Virsh
Introduction

Formation KVM (Kernel Virtual Based Machine)


Plan
• Introduction

• Mappe des commandes

• Se connecter et un petit tour

Formation KVM (Kernel Virtual Based Machine)


Introduction
• Outils en mode cli

• Toutes les opérations sur les guest, le stockage, les hyperviseurs, les
réseaux,
• Simple d’utilisation,

• Bien documenté

• La complétion des commandes et options !!

• En mode interactive et en mode shell

• Permet le script des commandes

Formation KVM (Kernel Virtual Based Machine)


Mappe des commandes

Formation KVM (Kernel Virtual Based Machine)


Se connecter et un petit tour
• Outils en mode cli
#virsh –-connect qemu:///system

• Connexion distante avec ssh

#virsh –c qemu+ssh:///hote/system

• Faisons un petit tour rapide

Formation KVM (Kernel Virtual Based Machine)


Ce qu’on a couvert
• Introduction

• Mappe des commandes

• Se connecter et un petit tour

Formation KVM (Kernel Virtual Based Machine)


Virsh
Gérer les machines
virtuelles

Formation KVM (Kernel Virtual Based Machine)


Plan
• Lister les VMs

• Démarrer, arrêter, suspendre, relancer les machines virtuelles

• Obtenir des infos sur les DomU


Stats, matériel, mémoire

• Modifier quelques paramètres à chaud


Mémoire, vCPU, block IO, Network IO

Formation KVM (Kernel Virtual Based Machine)


Lister les Vms
Se connecter sur l’hyperviseur
# virsh –connect qemu:///system
Virsh#

Lister les machines les vms actives


# virsh list
virsh#list

Lister toutes les machines


Virh#list --all

Formation KVM (Kernel Virtual Based Machine)


Démarrer, arrêter, suspendre, relancer…
Se connecter sur l’hyperviseur Forcer l’arrêt d’un guest
# virsh –connect qemu:///system Virh#destroy machine00
Virsh#
Forcer le reboot d’une machine virtuelle
Démarrer une vm Virh#reset machine00
#virsh start machine00
virsh#start machine00 Mise en pause d’un guest
Virh#suspend machine00
Arrêter proprement une vm
Virh#shutdown machine00 Réactiver une machine virtuelle
Virh#resume machine00
Redémarrage d’un DomU
Virh#reboot machine00

Formation KVM (Kernel Virtual Based Machine)


Obtenir des infos sur les DomU
Lister les stats mémoire Info sur les disques
virsh # dommemstat SAMBA4 virsh # domblkinfo SAMBA4 vda
actual 614400 Capacity: 5368709120
rss 362480 Allocation: 1830817792
Physical: 1830817792
Les info d’une vm
#virsh dominfo machine00 Lister les cartes réseaux
virsh#dominfo machine00 Virsh#domiflist SAMBA4
Interface Type Source Model MAC
Récupérer l’état des vm -------------------------------------------------------
Virh#domstats machine00 vnet0 bridge br0 virtio 52:54:00:7a:eb

Lister les disques Stats sur carte réseau


virsh # domblklist SAMBA4 Virsh#domifstat SAMBA4 vnet0
Target Source vnet0 rx_bytes 50129
------------------------------------------------ vnet0 rx_packets 929
hdc - vnet0 rx_errs 0
vda /var/lib/libvirt/images/NFS-IMAGES/samba vnet0 rx_drop 0

Formation KVM (Kernel Virtual Based Machine)


Modifier quelques paramètres a chaud
Modifer la mémoire
# virsh –connect qemu:///system Lister la bande passantes d’une vm
Virsh#setmem SAMBA4 786432 --config –live virsh#blkiotune SAMBA4
weight : 1000
Modifier les vcpu device_weight :
#virsh vcpuinfo SAMBA4
virsh# setvcpus --count 2 SAMBA4 Modifier la bande passante d’un disque d’une vm
virsh # blkiotune SAMBA4 --weight 1000
Positionner 1MB/s sur une carte
virsh#domiftune SAMBA4 vnet0 --live –inbound \ Modifier la bande passante d’un disque d’une vm
1000,1000,1000 --outbound 1000,1000,1000 Virsh# blkdeviotune SAMBA4 vda --
--config --live --read-bytes-sec --
Lister la bande passante sur une carte read-iops-sec --total-bytes-sec --total-iops-sec --
virsh # domiftune SAMBA4 vnet0 write-bytes-sec --write-iops-sec
inbound.average: 1000 --current --read_bytes_sec --read_iops_sec -
inbound.peak : 1000 -total_bytes_sec --total_iops_sec --write_bytes_sec
inbound.burst : 1000 --write_iops_sec
outbound.average: 1000
outbound.peak : 1000
outbound.burst : 1000

Formation KVM (Kernel Virtual Based Machine)


Ce qu’on a couvert
• Lister les Vms

• Démarrer, arrêter, suspendre, relancer les machines virtuelles

• Obtenir des infos sur les DomU


Stats, matériel, mémoire

• Modifier quelques paramètres à chaud


Mémoire, vCPU, block IO, Network IO

Formation KVM (Kernel Virtual Based Machine)

Vous aimerez peut-être aussi