• Aucun résultat trouvé

Introduction à la virtualisation

N/A
N/A
Protected

Academic year: 2022

Partager "Introduction à la virtualisation"

Copied!
77
0
0

Texte intégral

(1)

Introduction à la virtualisation

Sébastien Douche @sdouche

https://github.com/sdouche/presentation-virtualisation;

1 / 77

(2)

Qui suis je ?

39 ans. Pas trés intelligent mais j'aime comprendre.

Geek depuis 1984

Fan de Logiciels Libres depuis 1995

CTO chez un éditeur logiciel depuis 2007 Développeur (Python, Go, Dart, Rust) Sysadmin (Linux / BSD)

Speaker (Git, Python, Go, organisation, management...) Adore les jeux de sociétés modernes

Motard (Honda CBR RR)

Aime l'humour noir et les blagues pourries

2 / 77

(3)

Objectif de cette soirée

3 / 77

(4)

Vous donnez un peu de culture admin et montrez l'utilité des outils de virtualisation pour le développemment

4 / 77

(5)

Je ne suis pas un spécialiste de la virtualisation, juste un grand utilisateur

5 / 77

(6)

je n'ai rien à vous vendre

6 / 77

(7)

Culture

7 / 77

(8)

2 anectodes

8 / 77

(9)

9 / 77

(10)

Déclic

10 / 77

(11)

Pattern et anti-pattern

11 / 77

(12)

On pense avec des mots

12 / 77

(13)

Multiplier les cultures donne une vision plus cohérente

13 / 77

(14)

Lean, Agile, Devops sont avant tout une question de culture

14 / 77

(15)

Valeur ➜ Principe ➜ Pratique

15 / 77

(16)

Intérets

16 / 77

(17)

La virtualisation offre plusieurs opportunités

Coté ops :

Meilleure utilisation des ressources (serveur, place, électricité, etc) Installation, déploiement et migration facilités

Isolation (sécurité, modification locale, etc)

Coté dev :

Disposer de plusieurs envionnements de développement Tester son code dans un environnent normalisé

Simuler la production

Éviter le «ça marche chez moi» !

17 / 77

(18)

Et surtout, éliminer un goulet d'étranglement et ainsi réduire le temps de cycle (cycle time)

18 / 77

(19)

Histoire

19 / 77

(20)

Les premiers travaux proviennent du centre scientifique de Cambridge d'IBM pour le développement expérimental de

CP/CMS (1967–1972). Il permet de simuler un

environnement mono-utilisateur (CMS) par dessus la gestion des VM (VM-CP). Les versions actuelles sont z/OS et z/VM.

20 / 77

(21)

Vocabulaire

21 / 77

(22)

Émulation / virtualisation

22 / 77

(23)

Hôte (host) / invité (guest)

23 / 77

(24)

Bare-metal

24 / 77

(25)

VM (Virtual Machine ou Machine virtuelle)

25 / 77

(26)

VE (Virtual Environment ou Environnement)

26 / 77

(27)

Techniques

27 / 77

(28)

Hyperviseur de type 1

28 / 77

(29)

Hyperviseur léger et optimisé pour gérer les accés aux matériels qui tourne en bare-metal

29 / 77

(30)

30 / 77

(31)

Avantages :

OS complet (avec son noyau) OS non modifié

isolation complète

Inconvénients :

lourdeur de mise en oeuvre lourdeur de gestion

overhead moyen (peut être fortement réduit)

Hyperviseur de type 1

31 / 77

(32)

Hyperviseur de type 2

32 / 77

(33)

Hyperviseur qui fonctionne sur un OS et qui émule le matériel

33 / 77

(34)

34 / 77

(35)

Avantages :

OS complet (avec son noyau) OS non modifié

isolation complète

Inconvénients :

lourdeur de mise en oeuvre lourdeur de gestion

overhead monstreux

Hyperviseur type 2

35 / 77

(36)

Virtualisation (VM) vs Para-virtualisation (PV)

Que ce soit en hyperviseur de type 1 ou 2, on peut ajouter des drivers pour indiquer au noyau qu'il est un invité. On parle

alors de para-virtualisation. Cela diminue l'overhead et améliore les performances.

36 / 77

(37)

Accélération matérielle (HVM, HPV)

37 / 77

(38)

Virtualisation assisté par le processeur

Intel (2005+) : VT-x

VT-d (I/O MMU virtualization) VT-c

AMD (2006+) : AMD-V

AMD-Vi (I/O MMU virtualization)

38 / 77

(39)

conteneur

39 / 77

(40)

Permet d'isoler l'exécution des applications dans une VE

40 / 77

(41)

41 / 77

(42)

Avantages : simplicité

rapidité de mise en oeuvre grande densité

peu d'overhead

cache commun (page sharing) meilleur gestion des ressources (cpu. disque...)

Inconvénients : un seul noyau

nécessite une couche sécurité (SELinux / Apparmor)

Conteneur

42 / 77

(43)

Isolation

Sous Linux, c'est le service noyau Namespace qui gère l'isolation : PID namespace : isolation des ID de process

Net namespace : isolation du réseau

IPC namespace : isolation des ressources IPC

UTS namespace : isolation des identifiants de nom et de domaine Mount namespace : isolation des points de montage du système

43 / 77

(44)

Limitation des ressources

Sous Linux, c'est le service noyau Control Groups (cgroups) aui gère la limitation :

# root@srv1:/sys/fs/cgroup# ls -1 blkio

cpu cpuacct cpuset devices freezer hugetlb memory perf_event

44 / 77

(45)

Processus sans privilège

Sous Linux, c'est le service noyau capabilities qui gère les droits.

45 / 77

(46)

Technologies

46 / 77

(47)

Avantages :

Licence Libre mature (2003) project actif

Utilisé par VirtualBox, Xen et KVM

Émule les architectures IA-32 (x86) / x86-64, MIPS R4000, Sun SPARC sun4m / sun4u, ARM development boards, SH4 SHIX board, PowerPC, ETRAX CRIS, MicroBlaze...

KQEMU pour les vieux matériels

Inconvénients : trés lent !

QEMU

Type : émulateur http://wiki.qemu.org

47 / 77

(48)

Avantages :

Licence Libre mature (2003)

projet actif géré par la Xen Project Governance

projet upstream depuis Linux 3.0 hyperviseur x86, x86_64,

Itanium, ARM

PV / HVM / Pv-on-HVM distribution AlpineLinux XenServer libéré

écosystême riches (2k partenaires certifiés)

nombreuses fonctionnalités(Live Migration, Save & Restore,

sécurité...)

Inconvénients :

pas dans toutes les distributions Linux / *BSD

bien adapté a Red Hat

Xen

Type : hyperviseur de type 1 http://www.xenproject.org

48 / 77

(49)

Avantages :

Licence Libre mature (2007)

hyperviseur x86, x86_64, ARM (en dev)

projet actif financé par Red Hat projet upstream depuis Linux 2.6.20

ré-intégré dans QEMU

maintenu par les distributions Linux / *BSD

HVM / Pv-on-HVM

utilisé par Red Hat comme offre de virtualisation

Inconvénients :

pas de ml utilisateur

manque de documentation écosytème financé par Red Hat demande un admin Linux plus confirmé

pas de PV

KVM

Type : hyperviseur de type 1 http://www.linux-kvm.org/

49 / 77

(50)

Avantages : gratuit

mature (2007)

projet actif financé par VMware offre la plus complète (vCenter, NSX...)

Inconvénients :

licence propriétaire écosysteme propriétaire outillage sous Windows offre complète très cher

VMware vSphere Hypervisor (ESXi)

Type : hyperviseur de type 1 http://vmware.com

50 / 77

(51)

Avantages :

Licence Libre mature (2007)

projet actif financé par Oracle IHM / CLI

Linux, Windows, Mac OS X, Solaris

packages pour toutes les distributions

simple d'utilisation

Documentation (manuel

utilisateur 455 pages, FAQ, ml...)

Inconvénients :

instabilité occasionnelle performance

(http://bit.ly/1h9odf3)

Oracle VM VirtualBox

Type : hyperviseur de type 2 http://virtualbox.org

51 / 77

(52)

Avantages :

Licence Libre

facilité de mise en oeuvre

Inconvénients :

ne gère que l'isolation FS

chroot / FreeBSD Jail

Type : conteneur

Par défaut sur toutes les distributions Linux / BSD

52 / 77

(53)

Avantages :

Licence Libre maturité (2001)

fonctionne à partir du noyau 2.4 sécurité ?

Inconvénients :

demande un noyau Linux patché se synchronise avec les noyaux RHEL

QOS basic (ulimit, rlimit...) plus trop utilisé

Linux-VServer

Type : conteneur

http://linux-vserver.org

53 / 77

(54)

Avantages :

Licence Libre mature (2005)

Projet très actif (sponsorisé par Parallels)

beaucoup de fonctionnalité documenté (quick start de 119 pages)

QOS / quota

isolation user, process, FS, réseau, device

fonctionnalités (snapshot, dump / restore, etc)

sécurisé

Inconvénients :

demande un noyau Linux patché se synchronise avec les noyaux RHEL

pas de support des distributions Linux

OpenVZ

Type : conteneur http://openvz.org

54 / 77

(55)

Avantages :

Licence Libre intégré upstream

utilise des technos standards bindings python3, ruby, lua and Go

Inconvénients :

manque d'outillage

nécessite Apparmor ou SELinux

LXC

Type : conteneur

http://linuxcontainers.org

55 / 77

(56)

Autres : Bochs

Solaris Zone DOSEMU

VMware Player

VMware Workstation VMware Fusion

Oracle VM

Microsoft Hyper-V Server Microsoft VirtualPC

Microsoft Virtual Server Parallels Server Bare Metal Parallels Desktop

Parallels Parallels Server IBM z/VM

56 / 77

(57)

Formats

57 / 77

(58)

Plusieurs format existent :

IMG / RAW VDI

VHD

Qcow2 (standard Logiciel Libre)

VMDK (Standard, Fixed, Split2G, Stream Optimized, ESX) Note : Il est plus effiace d'utiliser des partitions LVM / ZFS / BTRFS

58 / 77

(59)

OVF

59 / 77

(60)

OVF

Format normalisé de description d'une VM. Chaque logiciel posséde son namespace (vbx, vmdk...)

Malheureusement, il est incomplet.

60 / 77

(61)

OVF

Exemple :

?xml version="1.0"?>

<Envelope

ovf:version="1.0"

xml:lang="en-US"

xmlns="http://schemas.dmtf.org/ovf/envelope/1"

xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:vbox="http://www.virtualbox.org/ovf/machine">

<References>

<File ovf:id="file1"

ovf:href="spv-sysdisk.vmdk"

ovf:size="430392832" />

</References>

<DiskSection>

<Info>List of the virtual disks used in the package</Info>

<Disk ovf:diskId="sysdisk"

ovf:fileRef="file1"

vbox:uuid="8583a587-88c1-45c3-9365-033899064841"

ovf:capacity="16106127360"

ovf:populatedSize="430392832"

...

/>

61 / 77

(62)

Le format OVA embarque la VM + le fichier OVF

62 / 77

(63)

Sélections d'outils Libres

63 / 77

(64)

Petites sélections personnelles :

Libvirt (OpenVZ, LXC, KVM, Xen, VMWare) http://libvirt.org ProxMox VE (OpenVZ, KVM) https://www.proxmox.com Docker (LXC) http://docker.io

Vagrant (VirtualBox) http://www.vagrantup.com oVirt (KVM, Xen, VirtualBox) http://www.ovirt.org virt-manager (KVM, Xen, LXC) http://virt-manager.org Libguestfs (KVM) http://libguestfs.org

virt-tools (KVM) http://virt-tools.org

Kimchi (KVM) https://github.com/kimchi-project/kimchi Ganeti (KVM, Xen) https://code.google.com/p/ganeti ConVirt Open Source (KVM, Xen)

http://www.convirture.com/products_opensource.php xen-tools (Xen) http://www.xen-tools.org

Zentific (Xen) http://www.zentific.com

Xen Orchestra (Xen) http://xen-orchestra.com Xen Server (Xen) http://www.xenserver.org

64 / 77

(65)

Cloud Computing

65 / 77

(66)

Architecture OpenStack Folsom

66 / 77

(67)

Principales technologies Libres Cloud :

OpenStack

http://www.openstack.org

Apache CloudStack

http://cloudstack.apache.org

OpenNebula

http://opennebula.org

Eucalyptus

https://www.eucalyptus.com

67 / 77

(68)

Software Configuration Management (SCM)

68 / 77

(69)

Les outils SCM sont un gros pas en avant en simplifiant grandement le travail d'administration

69 / 77

(70)

Qualités

configuration as Code

documente parfaitement les changements

utilisation d'outils communs avec les dev (outil, langage, etc) langage commun (dev / op)

rapidité de déploiement flexible

idempotence

70 / 77

(71)

Principaux outils Libres

CFEngine (C)

http://cfengine.com

Puppet (Ruby)

http://puppetlabs.com

Chef (Ruby, Erlang)

http://www.getchef.com

SaltStack (Python)

http://www.saltstack.com

Ansible (Python)

http://www.ansible.com

71 / 77

(72)

Démo

72 / 77

(73)

KVM

KVM seul

qemu-system-x86_64 -nodefaults \

-drive file=debian7.qcow2,if=none,media=disk,id=hd0 \ -device driver=virtio-blk-pci,drive=hd0 \

-boot order=c \ -enable-kvm \ -vga cirrus

présentation rapide de virt-manager / virsh manipulation de VM avec libguestfs

73 / 77

(74)

VirtualBox

présentation rapide de VirtualBox IHM / CLI démo avec une VM

format OVF / import OVF + VMDK

présentation rapide de Vagrant http://docs.vagrantup.com/v2/

74 / 77

(75)

LXC

présentation rapide de LXC (template, commandes) lancement conteneur Ubuntu

présentation rapie de Docker http://douche.name/presentation-docker)

75 / 77

(76)

Salt

démo shell distribué

exemple simple de template SLS exemple de modules Salt maison

76 / 77

(77)

That's all folks!

77 / 77

Références

Documents relatifs

A défaut, la preuve de réalisation de l’opération mentionne la mise en place d’un matériau d’isolation en plancher bas avec ses marque et référence et la surface de

DC input current required at each input of an amplifier to provide zero output voltage when the input signal and input offset voltage are zero.. The specified maximum is for

Les plaques Utherm Roof A, avec ou sans écran thermique et posées en 1 ou 2 lits d’isolation jusqu’à 240 mm, sont destinées à recevoir un revêtement d’étanchéité

The -th entry in this table, called the -th finger of process , contains a reference to the first process whose logical identifier follows process ’s logical identifier by at least

URSA, spécialiste de la laine minérale et du polystyrène extrudé, propose une large palette de produits et de solutions d’isolation thermique et acoustique.. Fabricant européen

Proofpoint Email Isolation et Proofpoint Browser Isolation vous permettent de bloquer les attaques qui ciblent vos utilisateurs par le biais de la messagerie d'entreprise, de

The individual URNs in the namespace shall be assigned through the process of development of documents by SMPTE, through definition by SMPTE standards, or through the

Lorsque l’examinateur est obligé d’intervenir, dans le cas d’un montage incorrect ou d’une manipulation erronée, aucune étoile n’est attribuée pour cette tâcheV.