Guillaume Urvoy-Keller Licence R&T...

Preview:

Citation preview

Virtualisation

Guillaume Urvoy-KellerLicence R&T UNS

3/7/162

Plan

➢Références

➢Partie I➢Qu'est-ce-que la virtualisation?

➢Pourquoi virtualiser?

➢Ce que l'on peut faire une fois un parc de serveurs virtualisé

➢Les différentes solutions de virtualisation

➢Les concepts liés à la virtualisation : cloud computing et green IT

3/7/163

Plan

➢Partie II : comment ça marche➢Retour sur l'architecture d'un ordinateur et les frontièresmatériel/OS/Application

➢Les critères de Popek et Golberg pour la virtualisation d'un ISA

➢Détail sur Vmware et Player

3/7/164

Plan

➢Partie III : Switchs virtuels : OpenVswitch

➢Partie IV : Etude de cas passage à un parc virtualisé –INSA de Lyon

➢Partie V : Vmware Vsphere

➢Partie VI : Cloud

3/7/165

Références

➢Vmware Vsphere 4 - Eric Maillé – ENI éditions

3/7/166

Références

➢Virtualbox – A. Romero - PACKT

3/7/167

Références

➢Les bases « théoriques » – Smith and Nair - Elsevier

3/7/168

Partie I

3/7/169

Qu'est-ce-que la virtualisation?

➢Ensemble de techniques qui permet de faire tournerplusieurs systèmes d'exploitation sur une machinephysiquement simultanément (≠ multi-boot)

➢Couche de virtualisation est appelée hyperviseur (=hypervisor, virtual machine monitor VMM)

➢Masque ressources physiques aux systèmes d'exploitations

3/7/1610

➢2 modes de fonctionnement d'un processeur(classiquement) : mode noyau et mode utilisateur

10

Dé-privilégier un OS

OS

apps

kernel mode

user mode

3/7/161111

Dé-privilégier un OS

OS

apps

kernel mode

user mode

virtual machine monitor

OS

apps

3/7/1612

Le zoo

➢Xen Server de Citrix - 4% du marché (mais Amazon WebServices...)

➢Hyper-V de Microsoft - 20% du marché

➢Vsphere de VmWare - 60% du marché

➢Virtualbox d'Oracle

➢ KVM – Kernel Virtual Machine – Natif Linux - Openstack

➢La virtualisation se fait surtout dans les grandesentreprises actuellement → les PME sont un marché àconquérir

3/7/1613

Pourquoi virtualiser?

➢Dans les années 1990-2000, le coût desserveurs décroissent

➢En valeur absolue du fait de la concurrence

➢Par rapport au coût des mainframes encore trèsprésents

➢Les éditeurs (Microsoft, distribution Linux)recommandent une application/service parsystème d'exploitation →

➢Une machine pour le DNS

➢Une machine pour le mail

➢Une machine pour NFS, etc.

3/7/1614

Pourquoi virtualiser?

➢Au final:➢Une multiplicité de serveurs dans les datacenters (ou salles serveursdans les entreprises)

➢80% ont une utilisation moyenne inférieure à 10%

➢Des coûts d'exploitation/maintenance (personnel du serviceinformatique) qui croissent avec le nombre de serveurs

➢Des coûts en place : les salles serveurs ne sont pas indéfinimentextensibles

➢Des coûts en climatisation/électricité élevés → NE JAMAISNEGLIGER CES COÛTS

3/7/1615

Pourquoi virtualiser?

➢Les serveurs deviennent si puissants qu'une seuleapplication par serveur n'est plus justifiable

➢Processeurs 64 bits multi-coeurs

➢Un serveur en 2009 est estimé, en moyenne, 10 à 12 fois pluspuissant qu'un serveur en 2004

➢Remplacer les serveurs à raison de un pour un n'est pluspossible!!

3/7/1616

Avantages de la virtualisation

➢Plaçons-nous dans le cas où la virtualisation est effective

➢Vous avez acheté :➢Deux gros serveurs, 1 système de stockage partagé

➢Des licences d'un outil de virtualisation, par exemple VMWARE

➢Les formations pour votre personnel

3/7/1617

Avantages de la virtualisation➢Réduction des coûts

➢20 à 40% en général

➢Avantages additionnels :

➢Gain de place

➢De nouvelles fonctionnalités

3/7/1618

Avantages de la virtualisation

➢Migration des machines virtuelles d'un serveurphysique à l'autre

➢Utile si panne → notion de disponibilité

➢TRES utile pour maintenance des serveurs physiques

3/7/1619

Avantages de la virtualisation

➢Mise en service quasi-instantanée d'une nouvellemachine

➢En général, avec une interface graphique, vous:➢Spécifiez le nombre de CPU, la quantité de mémoire, de disque, lesaccès réseaux, le système d'exploitation

➢Indiquez où se trouve l'ISO de l'OS

➢Démarrez l'installation.... mais c'est long!!!

➢ Mieux : vous avez préparé des “templates” (machinesquasi-finalisées) et vous les instanciées au derniermoment

➢Ce que fait createvm

➢Ce que font VmwareVSphere, Amazon Web Service, Openstack, etc.

3/7/1620

Avantages de la virtualisation

➢Possibilité de faire des instantanés (snapshots) desmachines

➢Exemple : ➢vous voulez installer une nouvelle fonctionnalité sur une machine,faire une mise à jour

➢Vous n'êtes pas sûr du résultat.

➢Vous :

➢Faites un instantané

➢Effectuez le test

➢Si l'installation échoue, vous … revenez dans le temps!!!

3/7/1621

Exemple : Snapshot sous Virtualbox

3/7/1622

Avantages de la virtualisation

➢Isolation

➢Avec la virtualisation, on respecte toujours la règle « unservice/une appli » par machine

➢Pas de passage de virus inter-VM, pas d'effacement de fichier,etc.

➢Ajustement des ressources pour machines virtuelles trèssimple → ajustement mémoire, CPU en un clic

➢À chaud ou à froid suivant la solution

3/7/1623

Avantages de la virtualisation

➢Il y a souvent dans les entreprises de vieilles applicationstournant sur des OS spécifiques (ex: OS/2 d'IBM) → on peutespérer les virtualiser sans les modifier

➢Indépendance des machines virtuelles vis-à-vis du hardware→ la couche virtuel (hyperviseur) offre toujours le mêmematériel virtuel

3/7/1624

Les différentes types de virtualisation

➢Il existe plusieurs façons de catégoriser les offres➢Niveau 1 (natif ou bare-metal en anglais) versus niveau 2 (hébergéou host-based en anglais)

➢Virtuel versus paravirtuel

➢Lourde (OS virttualisé) ou légère (OS partagé)

➢ Lourde : VMWare, Virtualbox, etc

➢Légère : Docker --> voir TP

3/7/1625

Niveau 1 vs. Niveau 2

➢Niveau 1 / Bare-metal : ➢Offres dédiées à la production : salles de serveurs, datacenters.

➢L'hyperviseur est installé en premier sur la machine physique

➢On boot sur un CD comme sur un OS traditionnel pour installer l'hyperviseur

➢Exemples : Vmware ESX/ESXi serveurs, Hyper-V de microsoft

Source : wikipedia

3/7/1626

Niveau 1 vs. Niveau 2

➢Niveau 2/ Host-based➢L'hyperviseur s'installe au dessus d'une OS existant

➢Exemple : vos machines en salle 410 qui ont VMWare player etVirtualbox installés au dessus de Windows ou Linux

➢Offres utiles pour les utilisateurs finaux

➢Utiliser MacOS et Windows simultanément

➢Donner aux employés une machine virtuelle sous le contrôle du serviceinformatique pour accéder à des services clefs.

3/7/1627

Est-ce une windows avec MacOS oul'inverse??

3/7/1628

Autour de la virtualisation➢Côtés serveurs, les constructeurs (IBM, HP, DELL, NEC,CISCO,...) proposent des machines compatibles avec dessolutions de virtualisation

➢Exemple : le site de Dell listant les OS testés sur un serveur

3/7/1629

Autour de la virtualisation

➢Le stockage: ➢la virtualisation offre la consolidation des machines physiques

➢Elle va de pair souvent avec la consolidation du stockage

Utilisation de SAN : storageArea networks

Serveur VMWARE 1

Serveur VMWARE 2

Baies de disque accessibles par réseau dédié TRES haute vitesseRéseau LAN

 classique pour les clients

3/7/1630

Autour de la virtualisation : Les fabricants de processeurs

➢Intel et AMD proposent des fonctionnalités spécifiquespour le support de la virtualisation

➢Intel-VT, AMD-V

3/7/1631

Autour de la virtualisation : Les éditeurs de logiciels

➢Pour la sauvegarde :➢Data Recovery de VMWare

➢Veem Backup de Veem

➢Conversion machines physiques en machinesvirtuelles :

➢VMWare Converter

➢HP Server Migration Pack

➢Supervision de pools de serveurs virtualisés :➢Vfoglight de Vizioncore, etc.

3/7/1632

Les concepts liés à la virtualisation

➢Cloud computing➢Fournir des ressources informatiques à une entreprise quine paye que ce qu'elle consomme

➢Les entreprises ne sont plus propriétaires de leur matérielinformatique mais n'en supporte pas le coût!!

➢Une entreprise spécialisée gère un centre de calcul(datacenter) et offre une puissance de calcul et destockage à la demande – Ex: Amazon EC2

➢La virtualisation permet d'envisager ce type de service

➢ Location VM : IaaS : Infrastructure as a Service➢Si vous ne louez qu'une application (ex : Googledrive/opendoc) SaaS : Software as a Service

3/7/1633

Partie II : Virtualisation lourde et légère

3/7/163434

VM Système et VM Processus

3/7/1635

VM Système

➢Ex: Vmware, Xen

➢Package complet : OS + applications

➢OS virtualisé = OS hébergé

➢OS hôte = OS de la machine physique

➢OS hébergé est une simple application du point de vuede l'hôte (mode utilisateur et non noyau)

3/7/1636

VM Processus

➢La majorité des système d'exploitation peuvent être vuscomme des VM processus➢En effet, ils supportent plusieurs processus simultanés,chacun ayant l'illusion que les ressources machines lui sontdédiées

→ L'OS permet un partage temporel des ressources et fournitune MV processus répliquée pour chaque application

3/7/1637

VM processus obtenue avec langage de haut-niveau

➢Un compilateur génère un code intermédiaire similaire à uncode machine, appelé ISA virtuel ➢Une VM va traduire ce code ISA virtuel en code machinepour un OS et un ISA spécifique

➢Ex : Java

3/7/1638

VM processusVirtualisation légère : lescontainers Linux

3/7/1639

Container versus hyperviseur

➢Partage du noyau entre toutes les VMs (ou containers)

➢Sur un serveur typique:➢10-100 machines virtuelles

➢100-1000 containers

➢Un containter est un groupe de processus dans unemachine Linux, isolés des autres processus qui tournentsur la machine

➢Utilisation des namespaces (du noyau Linux) pour assigner à ungroupe de processus : isolation, leur propre pile réseau (interfaces,sockets, routage), volumes

➢Utilisation du cgroups (du noyau Linux) pour assigner desresources à ces processus par exemple de la CPU, de la mémoire

➢ Similaire à ce que vous faites sous Virtualbox

3/7/1640

Container versus Hyperviseur

➢De l'intérieur, ressemble à une VM

➢De l'extérieur, ressemble à des processus normaux

➢Un container peut être une VM complète ou un groupede processus par exemple un serveur Apache ou MySQL

➢Moteurs de gestion de containers:

➢LXC (LinuX Containers – August 2008)

➢Docker (started in March 2013)

➢Openvz (started in 2005)

3/7/1641

Management des VMs etcontainers

3/7/1642

Gestion de VMs

➢ Vmware Vsphere, Citrix Xen permettent de gérerquelques serveurs physiques

➢Vagrant: Gestion de VMs indépendamment deshyperviseurs

➢Notion d'images (boxes de Vagrant)

➢Configuration automatique de VM: support de Puppet, Chef, Ansible

➢Un fichier qui contient toute la configuration

3/7/1643

Fichier de configuration Vagrant

3/7/1644

Gestion de VMs

➢Plateforme de gestion de clouds

➢Openstack

➢Chaque fonction (managementdef VM, réseaux, volumes, identités) est uncomposant (au final un service Linux)

➢Nova: compute nodes (hyperviseurs)➢Cinder : volumes➢Neutron : réseaux

➢ Les composants interagissent via une API REST

➢ Les nœuds Compute (serveurs physiques) peuvent faire tourner deshyperviseurs différents : KVM, Xen, Citrix, etc

3/7/1645

Gestion de containers

➢Orchestration de containers➢Serveur unique: Docker, LXC

➢Several multiplesl: Docker Swarm

➢ Orchestration avancés : Kubernetes, Swarm, Mesos

3/7/1646

Rappel sur l'architecture des ordinateurs et lesbases des OS

➢Rappels nécessaires pour comprendre les problèmesque doivent gérer les hyperviseurs.

➢Composants

➢Couche ISA

➢Système d'exploitation (OS – Operating System)

3/7/164747

3/7/1648

Va chercher les instructions en mémoire et lesexécute

Chaque instruction passe par une série d'étapesdurant son exécution : ◦ Lecture depuis la mémoire◦ Décodage◦ Chargement instruction et opérande dans registres◦ Exécution ◦ Écriture résultat dans la mémoire

48

Processeur

3/7/1649

Processeur

➢Série d'étapes → instructions sont exécutées dans unpipeline

➢ Pipeline permet de continuer à utiliser le processeurmême si une instruction est en attente d'une lecturemémoire par exemple

➢Il peut perdurer des blocages. ➢Ex: une instruction attend le résultat d'une instruction en amont dansle pipeline

➢C'est le boulot du compilateur de présenter lesinstructions dans le meilleur ordre possible

3/7/165050

ISA

➢Architecture d'un processeur définit :➢ Un ensemble de ressources : mémoires, registres, ...➢Un ensemble d'instruction qui travaillent sur les registres et lamémoire

➢Définition des ressources de stockage + instruction →Instruction Set Architectures (ISA)➢On distingue :

➢Une partie utilisateur pour les programmes → calculs➢Une partie système pour l'OS → gestion ressources

3/7/165151

Registres

➢Registres génériques (aussi appelés de travail)

➢Peuvent héberger différents types de valeur

➢Registres typés : pour des opérandes spéciales,

➢ Propres à chaque ISA

➢par ex: pointeur vers segment mémoire dans l'ISA IA-32 d'Intel

➢Registres spécifiques :

➢Compteur de programme : indice d'instruction courante

➢Condition

3/7/165252

Instructions partie utilisateur ISA

➢Quatre ensembles principaux :➢Chargement/déchargement mémoire ↔ registres➢Arithmétique sur les entiers, logique et décalage➢Arithmétique flottante

➢Utilise les registres flottants➢Valeurs interprétées différemment des registrespour entiers

➢Branchements et sauts

3/7/165353

ISA Système

➢Processeurs offrent différents mode d'exécution(privilèges) :

➢En général 4, numéroté de 0 à 3

➢Windows et Unix utilisent en général les niveaux 0 et 3

➢Niveau 0 : mode système, donné à l'OS qui lui permet de répartiréquitablement les ressources entre programmes

➢Niveau 3 : programmes utilisateurs

➢Le mode d'exécution est stocké dans un registrespécifique

3/7/165454

Registres Systèmes

➢Registre d'horloge➢Registre traps et interruptions➢Registre de masquage des traps et interruptions➢Pointeur de table des pages

➢Correspondance pages logiques/physiquesgardée dans une structure mémoire➢Ce registre stocke son adresse

3/7/1655

Traps et interruptions

➢Traps et Interruptions mènent à un transfert du contrôle duprocesseur à l'OS➢Interruption : une requête d'un périphérique auprès de l'OS➢Trap (=déroutement):

➢Une erreur durant l'exécution d'une instruction (faute depage, division par 0, ..)

ou➢Une demande explicite d'un programme (ex: accèsdisque)

3/7/1656

ISA Système : gestion du processeur

➢L' OS doit être capable de donner le contrôle duprocesseur à un processus utilisateur

➢Saut à une instruction d'un programme utilisateur➢Changement du registre « mode d'exécution »

➢… et il doit être capable de le récupérer.➢Se fait au travers d'un timer qui va créer uneinterruption

3/7/1657

ISA Système : gestion des E/S➢Soit sous forme d'instruction spécifiques

➢Soit sous forme d'adresses mémoire spécifiquestraduites par le contrôleur mémoire comme desinstructions à effectuer

➢Grande variété de périphériques → en général l'ISA offredes instructions de base et le détail est géré par l'OS

➢Souvenez-vous : l'OS est le seul à pouvoir utiliser ces instructions ouces adresses mémoires!

3/7/1658

Système d'exploitation - Rappel

3/7/1659

Tâches de l'OS

➢Gère les ressources pour les programmes des utilisateurs(processus)

➢Multiplexage temporel du processeur entre les différentsprocessus➢Gestion de la mémoire réelle via la table des pages et laTLB

➢Quand il y a une erreur de pagination, l'OS prend la main➢Gestion des entrées/sorties: ➢Processus invoquent l'OS au travers d'appels système (trap)➢OS utilisent une interface pour les périphériques (drivers – pilotes)

3/7/166060

3/7/1661

Interface avec l'OS

➢ISA mode utilisateur accessible directement aux programmes➢ABI (Application Binary Interface) est l'interface avec l'OS➢API: librairies de haut niveau (par rapport à ABI)➢Appels systèmes:

➢Gestion des processus, ex : fork()➢Gestion mémoire, ex : malloc()➢Entrées/sorties, ex : . read()

➢Abstraction des traps et interruptions au niveau ABI = signaux

3/7/1662

ISA, ABI, API

3/7/1663

VM Systèmes : hyperviseursniveau 1 et 2

63

3/7/1664

Gestion de l'état des VMs

➢Le VMM doit stocker l'état des VMs lorsqu'une VMest remplacée par une autre➢Cet état agrège les états :

➢Des registres

➢De la table des pages mémoires

➢Des entrées/sorties

➢Deux (grandes) options pour le changement decontexte :

➢Indirection – peu efficace car, par ex., opération entreregistres imposent plusieurs accès mémoires

➢Recopie – possible si même ISA entre hôte et invité

3/7/1665

3/7/1666

Contrôle globale par VMM

➢VMM doit avoir un moyen de récupérer la main sur lesVMs

➢Equivalent au multiplexage temporel d'un OS

➢Comme pour ce multiplexage, on vise l'équité (entre VMs)

➢Moyen le plus simple : VMM gère le timer de temps

➢Comme les OS des Vms veulent l'utiliser pour leursprocessus, il faudra l'émuler pour elles → timer de tempsvirtuel

3/7/1667

Contrôle globale par VMM

3/7/1668

Virtualisation des ressources – le processeur

➢Formellement, 2 approches :

➢Emulation

➢Nécessaire si ISA différent entre hôte et invité

➢Exécution directe (en natif) :

➢Hôte et invité doivent avoir le même ISA

➢Plus rapide qu'émulation

➢Certaines instructions (dépend de l'ISA) doivent être émuléesde toutes façons :

➢Les instructions émises par les programmes peuvent être exécutés sansmodifs

➢Les instructions émises par OS invité doivent souvent être émulées ( carOS invité est vu comme un programme !)

3/7/1669

Conditions pour avoir un ISA virtualisable

➢Article Popek et Goldberg 1974

➢La virtualisation ne date pas d'hier

➢Déjà très utilisée sur mainframe IBM

➢ Hypothèses (version abrégée) :

➢Hardware = 1 (seul) processeur

➢Le processeur a 2 modes : système et utilisateur

➢Certaines instructions ne peuvent être exécutées qu'en modesystème

➢E/S non considérées mais les résultats peuvent êtreétendus

3/7/1670

Instructions sensibles et non sensibles

➢Les instructions sensibles sont celles qui sont :➢Modifient la configuration des ressources, par exemple la mémoire ou le moded'exécution (type contrôle)

➢Ex : SPT - Set CPU timer (IBM/370)

➢Dont le résultat dépend de l'état des ressources (→ type comportemental)

➢Ex : Load Real Address (IBM/370)

➢Les instructions qui ne sont ni de type contrôle nicomportementales sont dites bénignes (non sensibles)

3/7/1671

Propriété (Popek et Goldberg)

Propriété : les instructions sensibles doivent être unsous-ensemble des fonctions privilégiées (qui nepeuvent être exécutées qu'en mode privilégié)

3/7/1672

Ce que l'on peut faire si la propriété estsatisfaite

➢Toutes les instructions non sensibles peuvent êtreexécutées en mode natif (sans intervention VMM) →rapidité➢VMM garde le contrôle des ressources : unprogramme ne peut modifier les ressources systèmes(car ces fonctions ne peuvent être exécutées qu'enmode privilégié)➢Assurer l'équivalence : un programme s'exécute demanière identique dans l'environnement réel ouvirtuel and native machine

3/7/1673

Rôle VMM sous la propriété de P&G : attendreles trap!

3/7/1674

Le cas de l'ISA Intel x86

➢“Analysis of the Intel Pentiums Ability to Support aSecure Virtual Machine Monitor” USENIX 2000, J. Robin,C. Irvine

➢Sur les 250 instructions, 17 sont sensibles mais nonprivilégiées (elles sont dites critiques)

➢Exemple: popf

➢Popf en mode Utilisateur: change drapeau ALU

➢Popf en mode noyau: change ALU et les drapeaux système

➢Ne génère pas de trap en mode utilisateur

➢Q : voyez-vous le problème en environnement virtualisé?

3/7/1675

R : si le popf est exécuté par l'OS invité, il s'exécuteracomme un popf en mode utilisateur → l'OS invité n'effectuepas la modification qu'il croit ET le VMM n'en est pasinformé car pas de trap!!!

Voici ce qui se passerait si tout allait bien (ex avec LPSW del'IBM 370)

3/7/1676

Traitement des instructions critiques

➢Le VMM doit scanner le code et patcher lesinstructions critiques (avant leur exécution)➢Problème : le code a des branchements et il estparfois difficile de savoir quelle branche sera prise àl'avance

3/7/1677

Virtualisation du processeur : en résumé

➢Les conditions de Popek et Goldberg ne sont passatisfaites par les ISA actuelles

➢Le VMM doit donc scanner le code➢Mais uniquement pour l'OS invité

➢Il doit scanner pour patcher➢Des optimisations sont possibles pour améliorer les performances

3/7/1678

Une des tâches les plus complexes du fait de laprolifération des périphériques

Technique générale : offrir une interfacevirtualisée à l'OS invité

Virtualisation des E/S

3/7/1679

Virtualisation des E/S

➢Typologie de périphériques:➢Dédiés. Ex : écran, clavier. Virtualization n'est pas nécessaire maissouvent effectuée

➢Partitionnés. Ex : disque

➢Partagés. Ex: carte réseau

➢Spoolés. Ex : imprimante. Partagé, mais à un niveau de granularitéélevé (fichiers dans spooler). En pratique, imprimantes souventaccédées par le réseau → retour au cas précédent

➢Inexistants. Ex : switch virtuel qui permet la communication inter-VM.

3/7/1680

Options:◦ Appel systèmes?◦ pilotes?◦ Opération E/S?

A quel niveau virtualiser les E/S?

3/7/1681

Faciles à intercepter, car ces opérationsentrainent des traps.

Mais difficiles à interpréter car normalement c'estun driver qui envoie plusieurs opérations d'E/Ssimultanées qui ont du sens prises ensemble → ilfaudrait que le VMM ait cette vision globale

Au niveau des opérations d'E/S?

3/7/1682

Appel au pilote se fait par un appel système Pour que le VMM puisse l'intercepter, il faut qu'il

connaisse les détails de l'OS invité et du pilote. Une façon de faire, souvent utilisée, est de fournir à l'OS

invité des drivers spéciaux (dits virtuels) qui facilitentl'appel au VMM dans les E/S.

Après cela, deux options : ● VMM natif → doit avoir les « vrais » pilotes en internes● VMM hébergé → peut demander à l'OS hôte de faire le

boulot. Ex : Vmware player et Virtualbox font cela

Au niveau du pilote?

3/7/1683

Demande que leVMM émule l'ABI Trop difficile en pratique

Au niveau appel système?

3/7/1684

Un exemple de VMM hébergé :Vmware player

3/7/1685

Introduction

➢L'architecture IA-32 s'est développé comme un micro-processeur bon marché

➢Pas de support multi-utilisateurs en tête lors de la conception del'ISA

➢Au contraire, les équipes d'IBM qui travaillaient sur le System/370 etsa virtualisation contrôlaient le hard et le soft !

➢De plus, l'architecture des PC s'est développée commeune architecture ouverte → pléthore de périphériques, decartes mères, etc.

3/7/1686

Introduction

➢Vmware a donc plusieurs problèmes :➢Elle ne contrôle pas le développement du hardware

➢Elle ne contrôle pas le développement du software (Windows, Linux)

➢Débuter avec une solution hébergée était donc LAbonne stratégie

3/7/1687

Architecture hébergée

➢3 composants :➢VMM-n

➢n = natif

➢C'est le VMM

➢Il travaille en mode privilégié – module du noyau

➢VMM-u

➢ u = utilisateur

➢C'est l'application que vous lancez

➢VMM-d

➢d= driver

➢Permet la communication entre les 2 mondes

3/7/1688

Host App

VMApp

Host OS

Hardware

Mode utilisateur

Mode  provilégié

Applications

OS invité

VM

VMDriverVMMonitor

➢VMMonitor peut « changer sa personnalité » de OS hôteen application grâce à VMDriver pour demander à l'OSl'accès aux drivers

3/7/1689

Partie III : Switchs virtuels:OpenVswitch

sources : http://openvswitch.org/slides/LinuxSummit-2011.pdfhttp://openvswitch.org/slides/OpenStack-131107.pdf

3/7/1690

Introduction

➢Plusieurs VMs sur même hôte➢Partage des interfaces physiques réseau

➢Fonctionne sur les hyperviseurs Linux : Xen, KVM,VirtualBox

➢Open source, débute en 2009

3/7/1691

Liste des contributeurs

3/7/1692

Packaging

➢Stack réseau par défaut de Xen Cloud Plaborm (XCP)

➢Natif dans Citrix XenServer et base de leur switch virtueldistribué - Distributed Virtual Switch (DVS)

➢Distributions :➢ Debian

➢Ubuntu

➢ SUSE

➢Red Hat

3/7/1693

Fonctionalités

➢Protocoles réseaux :➢Openflow: basé sur un controlleur centralisé qui fournit des règles à l'ensemble des switches

➢Philosophie différente des protocoles distribués classiques (spanning tree niveau 2 ouroutage niveau 3) où chaque switch/routeur est indépendant.

➢Les switches en Openflow supportent des règles niveau 2 à 4

➢Ex : src IP = 192.168.1.0/24 sr@c MAC=AE:19:23:FC:A2 and tcp.srcport=128 --> outputport = 5

➢ Peut aussi fonctionner comme un switch classique

➢Protocoles de tunneling : GRE et VXLAN

3/7/1694

Fonctionnalités

➢Reporting:➢Netflow

➢Wireshark niveau routeur: une ligne par flot (TCP, UDP connexion) avec durée et volume. Tient dansla mémoire des switches qui n'ont pas de disque dur

➢sFlow ( netflow échantillonné – par ex, 1 trame sur 100 ou 1000)

➢Port mirroring: réplication de trafic

➢ACL (Access Control List) et QoS (Qualité de Service)

3/7/1695

L2 vs Openflow

➢L2 forwarding classique

OpenFlow : ➢Premier paquet nécessite l'installation d'un règle → le switchcontacte le controleur.

➢Paquets suivants dans le fast path

3/7/1696

Composants principaux OVS

3/7/1697

Composants de transmission

➢Ovs-vswitchd (Slow Path)➢Logique de transmission (apprentissage des @ MAC, mirroring,VLANs, et NIC bonding)

➢Configuration distante

➢Openvswitch_mod.ko (Fast Path)➢Module noyau Linux

➢ Lookup (trouver règle Openflow ou @ MAC/port), modification, etenvoie

➢ Encapsulation/decapsulation des tunnels

3/7/1698

Plan de Controle

➢ Base de données qui contient la configuration du oudes swiches: interfaces, définition des tunnels

➢Adresse OVSDB et controleur OpenFlow

➢Configuration est stockée sur le disque et ré-installationaprès reboot

3/7/1699

Déploiement typique avec Openstack

➢Tunnels (VXLAN, GRE) entreswitchs virtuels

➢Management centralisé desswitches

➢VTEP : virtual tunnelendpoint

➢Support minimal de la partswitchs physiques

➢Autres options avec plus desupport des switchesphysiques possibles

3/7/16100

Performance

➢A key factor in production environments

3/7/16101

Performance

➢Test set up: DUT = Device Under Test

➢p/vNIC = physical/virtual NIC

3/7/16102

Performance

➢Switches: Linux bridge, OVS, IP forwarding (routing entreIP par le noyau)

➢Resultats en pps (paquet par s): c'est ce qui compte.Petits paquets → stresse les entrées/sorties

3/7/16103

Performance

➢Switch envoie des paquets sur différents CPU : passage àl'échelle jusqu'à ce qu'on atteigne le maximum de coeurs

➢Visible quand on est près de la saturation → quand lespaquets deviennent petits

3/7/16104

Performance

3/7/16105

Performance

➢Transférer entre une NIC physique et une virtuelle (dansune VM) engendre plus de changements de contexe auniveau noyau entre processus OVS et processushyperviseurs

Recommended