Introduction à la Virtualisation

publicité
Lavirtualisa,onrecouvrel'ensembledestechniquesmatérielleset/oulogiciellesqui
perme;entdefairefonc,onnersuruneseulemachineplusieurssystèmes
d'exploita,on,plusieursinstancesdifférentesetcloisonnéesd'unmêmesystèmeou
plusieursapplica,ons,séparémentlesunsdesautres,commes'ilsfonc,onnaientsur
desmachinesphysiquesdis,nctes.
Chaqueou,ldevirtualisa,onimplémenteuneouplusieursdecesno,ons:
ocouched'abstrac,onmatérielleet/oulogicielle,
osystèmed'exploita,onhôte(installédirectementsurlematériel),
osystèmesd'exploita,ons(ouapplica,ons,ouencoreensembled'applica,ons)
«virtualisé(s)»ou«invité(s)»,
opar,,onnement,isola,onet/oupartagedesressourcesphysiqueset/ou
logicielles,
oimagesmanipulables:démarrage,arrêt,gel,clonage,sauvegardeetrestaura,on,
sauvegardedecontexte,migra,ond'unemachinephysiqueàuneautre
Oréseauvirtuel:réseaupurementlogiciel,interneàlamachinehôte,entrehôteet
invités.
1
2
Prenonsl’exempled’unprocesseur,unefoisquelacadencedecelui-ciaa;eintsa
limitephysiquedefabrica,onetd’u,lisa,on,comprenezlàenvirons3,6Ghz,les
fondeurs(Intel&AMD)ontélaboréunnouveausystème:lemul,-cœurs.Àl’origine
unprocesseurnecon,entqu’unseulcœurcadencéàunecertainevitesse,maisdu
faitdel’améliora,ondesfinessesdegravureilestpossiblededisposerdeplusieurs
cœursphysiquessurunmêmeprocesseur.Iciilestques+onnonpasd’augmenterle
nombredeprocesseursdansunemachinemaisd’augmenterlenombredecœurs
dansunprocesseur,ce;eno,ondemiseenabîmevaencoreplusloinavecle
conceptdel’hyper-threadingquipouruncœurd’unprocesseurcrée2cœurs
logiques.Exemple:unprocesseurIntelCorei7apourcaractéris,que1processeur,4
cœursphysiqueshyper-threadés,soit2×4=8coeurslogiques.
h;p://www.sebas,en-han.fr/blog/2011/04/12/introduc,on-a-la-virtualisa,on/
Danslalogique,lavirtualisa+onfonc+onnesurlemêmeprincipe,aulieude
mul+plierlesmachinesphysiquesavecunseulsystèmed’exploita+on,onu+lise
unemachinephysiquepourvirtualiserplusieurssystèmesd’exploita+ons.
3
4
u,lisa,onop,maledesressourcesd'unparcdemachines(répar,,ondes
machinesvirtuellessurlesmachinesphysiquesenfonc,ondeschargesrespec,ves),
installa,on,déploiementetmigra,onfaciledesmachinesvirtuellesd'une
machinephysiqueàuneautre,notammentdanslecontexted'unemiseen
produc,onàpar,rd'unenvironnementdequalifica,onoudepré-produc,on,
livraisonfacilitée,
économiesurlematérielparmutualisa,on(consomma,onélectrique,entre,en
physique,monitoring,support,compa,bilitématérielle,etc.),
installa,on,tests,développements,réu,lisa,onavecpossibilitéderecommencer
arrêtdusystèmehôte,
sécurisa,onet/ouisola,ond'unréseau(arrêtdessystèmesd'exploita,on
virtuels,maispasdessystèmesd'exploita,onhôtesquisontinvisiblespour
l'a;aquant,testsd'architecturesapplica,vesetréseau),
isola,ondesdifférentsu,lisateurssimultanésd'unemêmemachine(u,lisa,on
detypesitecentral),
alloca,ondynamiquedelapuissancedecalculenfonc,ondesbesoinsdechaque
applica,onàuninstantdonné,
diminu,ondesrisquesliésaudimensionnementdesserveurslorsdeladéfini,on
del'architectured'uneapplica,on,l'ajoutdepuissance(nouveauserveuretc.)étant
alorstransparent.
Unebonnepartdestravauxsurlavirtualisa,onfutdéveloppéeaucentrede
rechercheIBMFrancedeGrenoble(aujourd'huidisparu),quidéveloppalesystème
expérimentalCP/CMS,devenantensuiteleproduit(alorsnomméhyperviseur)VM/
CMS,proposéaucataloguedès1972.
Parlasuite,lesmainframesontétécapablesdevirtualiserleursOSavecdes
technologiesspécifiquesetpropriétaires,àlafoislogiciellesetmatérielles.
LesgrandsUnixontsuiviaveclesarchitecturesNUMAdesSuperdomed'HP(PA-RISC
etIA64)etdesE10000/E15000deSun(UltraSparc).
Danslasecondemoi,édesannées1990,lesémulateurssurx86desvieillesmachines
desannées1980ontconnuunénormesuccès,notammentlesordinateursAtari,
Amiga,AmstradetlesconsolesNES,SNES,NeoGeo.
LasociétéVMwaredéveloppaetpopularisaaudébutdesannées2000unsystème
propriétairedevirtualisa,onlogiciellepourlesarchitecturesdetypex86.Leslogiciels
libresXen,Qemu,Bochs,Linux-VServeretleslogicielspropriétairesmaisgratuits
VirtualPCetVirtualServerontachevélapopularisa,ondelavirtualisa,ondansle
mondex86.
h;ps://aconit.inria.fr/omeka/exhibits/show/informa,que-grenoble/consolida,on/
ibm
5
6
Lavirtualisa,ondestockage:
Lavirtualisa,ondestockageestunprocédéquivaséparerlareprésenta,onlogiqueetla
réalitéphysiquedel'espacedestockage.Sonbutestdefaireabstrac,ondespériphériquede
stockageu,lisésetdesinterfacequileursontassociés(SATA,SCSI,...)afindelimiterl'impact
desmodifica,onsstructurellesdel'architecturedestockage.
Cetypedevirtualisa,onfaitappelàuneapplica,ond’administra,ondevolumeslogiques
(LogicalVolumeManager,LVM).Ils’agitd’unecouchelogiciellequivaperme;rede
regrouperplusieursespacesdestockage,appelésvolumesphysiques,pourensuitedécouper
cetespaceglobalsuivantlademandeenpar,,onsvirtuellesappeléesvolumeslogiques.
Ceprocessusdevirtualisa,onpeutêtrevucommeuneextensiondumodèlede
par,,onnement
classiquedesdisquesdur.
Lavirtualisa,ondestockagepermet:
-d’adjoindreunpériphériquedestockagesupplémentairesansinterrup,ondesservices;
-deregrouperdesunitésdedisquesdursdedifférentesvitesses,dedifférentestaillesetde
différentsconstructeurs;
-  deréallouerdynamiquementdel’espacedestockage.Ainsi,unserveurnécessitantun
espacedestockagesupplémentairepourrarechercherdesressourcesnonallouéessurle
disquelogique.Inversement,unserveurnécessitantmoinsd’espacedestockagepourra
libérercetespaceetlerendredisponiblepourd’autresserveurs.
Trèspeudesystèmesdémarrentdirectement,etsurplateformePCtouslessystèmes
démarrentselonunprocessus(boot)entroistemps:leBIOS,lechargeurde
démarrage(bootloader)etlesystème.Pourlessystèmesembarquésetlesanciens
calculateurs,cesphasesétaientaussiunchoixàprendreencompte.Desmoniteurs,
OSminimauxemportantdesfonc,onnalitésdedébug,ontvulejour.L'idéeini,ale
étaitdeseconcentrersurce;ephase,puisensuited'engénéraliserlesconcepts:un
systèmed'exploita,onreposantsurl'APId'unnoyauréduit.
Lessystèmesdevirtualisa,onpartentdoncduprincipedel'u,lisa,ondecouches
logiciellesintermédiaires.Afind'avoiruneidéethéoriquedesperformancesdes
applica,onsausommet,ilfautcomparerver,calementl'empilagedecouches.Ilfaut
garderàl'espritqu'ilestpossibled'élargirlesschémasenrajoutantdes
environnementsvirtualisésconsommantégalementdesressourcesdel'hôte,en
mémoirepuisendisque.
Fondamentalement,ontrouveradeuxidéesprincipales:isola,onparempilementou
parjuxtaposi,on,dontlesvaria,ons,dansdesbutsd'op,misa,on,donneront
principalementquatretypesdetechnologies:
7
8
Unemachinevirtuelleestunlogicielquitournesurl'OShôte,celogicielperme;antdelancerunou
plusieursOSinvités,c'estl'archétypedelasolu,ondevirtualisa,onparempilementdesystèmes.La
machinevirtualiselematériel(cequipassegénéralementparunémula,onpar,elle)pourles
systèmesd'exploita,oninvités:lessystèmesd'exploita,oninvitéscroientdialoguerdirectementavec
lematériel.Enpra,queonarecoursàuneémula,onlogicielledespériphériques,etparfoisausside
toutoupar,edelamachine.
Ce;esolu,onisolebienlessystèmesd'exploita,oninvités,maiselleauncoût,enpremierlieuen
performance,dontlesprincipalesvic,messerontlesentrées-sor,es.Cecoût,assezimportantdéjàs'il
suffitdeprotégerlesinstruc,onsprivilégiées,peutêtretrèsélevésileprocesseurdoitêtre
intégralementémulé.Ce;esolu,onn'estpasnonpluséconomeenmémoire,puisqueaucune
économied'échellenepeutêtreréaliséeencequiconcernelesOS(kernels)chargés.
Exemple:
Qemu:émulateurdeplateformesx86,PPC,Sparc,
VMWare:propriétaire,émulateurdeplateformex86,
Microso{VirtualPCetVirtualServer:propriétaire,émulateurdeplateformex86,
VirtualBox:émulateurdeplateformex86.
Letalond'Achilledece;esolu,onestdoncl'importanteconsomma,onenperformances.Certains
projetsminimisentl'impactdececoûtenressourcesenperme;antdescourts-circuitsop,onnels
(KVM,KQemu,VirtualBox),disponiblesuniquementhorsducontexted'émula,onbiensûr.
Lesdeuxtechnologiessuivantescons,tuentellesaussilerésultatdeconsidéra,onsd'op,misa,onde
ce;esolu,on,leprincipeétantdediminueraumieuxl'épaisseurdescouchesdevirtualisa,ontouten
conservantlemêmedegréd'isola,on.
L’hyperviseurdetype2ouarchitecturehébergéeestuneapplica,oninstalléesurunsystème
d’exploita,on,elleestdoncdépendantedecelui-ci.Lesperformancessontréduitesencomparaison
deshyperviseursdetype1carl’accèsaumatériel(CPU,RAM…)sefaitviaunecoucheintermédiaire.
Néanmoinsilproposeuneparfaiteétanchéitéentrelessystèmesd’exploita,onsinstallés.
Unisolateurestunlogicielperme;antd'isolerl'exécu,ondesapplica,onsdansdes
contextesouzonesd'exécu,on,c'estl'archétypedelasolu,ondevirtualisa,onpar
"juxtaposi,on".L'isolateurpermetainsidefairetournerplusieursfoislamêmeapplica,on(à
based'unouplusieurslogiciels)prévuepournetournerqu'àuneseuleinstanceparmachine.
Notonsquece;etechnologieconsisteenquelquesorteàgénéraliserla
no,onde"contexte"Unix:cedernierisolelesprocessus(mémoire,
accèsauxressources),onajoutealors:uneisola,ondespériphériques(c'estlerôlede
l'isolateur),voireleurpartage,lessystèmesdefichiersdonclesfichierseux-mêmesetleurs
accès.
Ce;esolu,onesttrèsperformante,dufaitdupeud'overhead(chutedeperformance
conséquentedel'ajoutdescouchesdevirtualisa,on),maislesenvironnementsvirtualisésne
sontpascomplètementisolés,ilspartagentenpar,culierlecodedunoyau.Ce;esolu,on
estaussiremarquablementéconomiqueenmémoireparconséquencedeladernière
remarque.Cesenvironnementssontdoncbienadaptésaudéploiementdenombreux
serveursvirtuelsdetestoudéveloppementbaséssurunmêmesystème.
Quelquesisolateurs:
Linux-VServer:isola,ondesprocessusenuser-space,
BSDJail:isola,onenuser-space,
OpenVZ:libre,par,,onnementauniveaunoyausousLinuxetWindows2003.C'estla
versionopen-sourcedulogicielVirtuozzo.
Lesisolateurstendentàisoleràunniveaudeplusenplusprochedusystème,voiredansle
systèmedanslecasdeOpenVZ,quipeutêtrevucommeunLinuxavecplusieurstablesde
9
10
Partantduprincipe,exposéprécédemment,qu'uneapprochepourunevirtualisa,on
efficaceconsisteàaffinerlescouches,unepremièreapprocheconsisteàproposerun
noyauléger(detypemicro-noyauparexemple),lequelestaccompagnéd'ou,lsde
supervision,etadaptépour
fairetournerdessystèmesd'exploita,onna,fs.Pourréussirce;eapproche,soiton
émulelematériel(etonrevientauxperformancesde
lamachinevirtuellepourlesI/O),soitondisposedesinstruc,onsdédiéesàla
virtualisa,on.Danscederniercas,leslogicielslibresconcernésselimiterontau
mondex86oux86-64,munisdesinstruc,onsad-hoc.
Lesprincipauxexemplesdeceprincipesont:
KVM:IntégréaunoyauGNU/Linuxàpar,rdelaversion2.6.20.
Xensurunemachineoffrantlesupportdesinstruc,onsAMDV(version3.03ouultérieure)
ouVTx(version3.0ouultérieure).
L’hyperviseurdetype1oubare-metalestunou,lquis’interposeentrelacouche
matérielleetlogicielle.Celui-ciaaccèsauxcomposantsdelamachineetpossèdeson
proprenoyau.C’estdoncpardessuscenoyauquelesOSserontinstallés.Ilpilote
donclesOSàpar,rdelacouchematérielle,ils’administreviauneinterfacede
ges,ondesmachinesvirtuelles.Ilestbeaucouppluspuissantqueleshyperviseursde
Unparavirtualiseurestunnoyauhôteallégéetop,misépournefairetournerque
desnoyauxdesystèmesd'exploita,oninvités,adaptésetop+misés.Lesapplica,ons
enespaceu,lisateurdessystèmesd'exploita,oninvitéstournentainsisurunepile
dedeuxnoyauxop,misés,lessystèmesd'exploita,oninvitésayantconscienced'être
virtualisés.Ce;eapprocheoffrel'avantaged'êtreu,lisableenl'absencedes
instruc,onsspécifiques,maiselleestimpra,cablepourdessystèmesnonlibrespour
lesquelsl'éditeurneferapasl'effortd'adapta,on.
Exemple:
Xen:noyaulégersupportantdesnoyauxLinux,Plan9,NetBSD,etc,
Unhyperviseurdetype1estcommeunnoyausystèmetrèslégeretop,misépour
gérerlesaccèsdesnoyauxd'OSinvitésàl'architecturematériellesous-jacente.Siles
OSinvitésfonc,onnentenayantconscienced'êtrevirtualisésetsontop,miséspour
cefait,onparlealorsdepara-virtualisa,on(méthodeindispensablesurHyper-Vde
Microso{etquiaugmentelesperformancessurESXdeVMwareparexemple).
Actuellementl’hyperviseurestlaméthodedevirtualisa,ond'infrastructurelaplus
performantemaiselleapourinconvénientd’êtrecontraignanteetonéreuse,bien
queperme;antplusdeflexibilitédanslecasdelavirtualisa,ond'uncentrede
traitementdedonnées.
11
12
Unnoyauenespaceu,lisateur(user-space)tournecommeuneapplica,onenespace
u,lisateurdel'OShôte.Lenoyauuser-spaceadoncsonpropreespaceu,lisateur
danslequelilcontrôlesesapplica,ons.Ce;esolu,onesttrèspeuperformante,car
deuxnoyauxsontempilésetl’isola,ondesenvironnementsn’estpasgéréeet
l’indépendanceparrapportausystèmehôteestinexistante.Ellesertsurtoutau
développementdunoyau.
Cependant,lessolu,onsenvisageablessurarchitecturex86sontlongtempsrestés
bridésparlesspécificitésdel'architecturex86etsurtoutparsonu,lisa,on.Eneffet,
ce;efamilledeprocesseurs(depuisle80386)offre,pourl'écrituredesystèmes,4
niveauxdeprivilèges,maisàprioritouslessystèmesd'exploita,onontprislepar,
deplacerlesystèmeauniveauleplusprivilégié(ring0),etlesapplica,onsauniveau
leplusfaible(ring3),sanspenseràserendreplusindépendantdesniveaux
d'exécu,on.Parconséquent,2niveauxdeprivilègessontperdus,etécrireune
couchedevirtualisa,onpourembarquerdessystèmesd'exploita,oncomplets,
nécessitantdesprivilègessupérieursàceuxduring0,nepeutplussefairequepar
émula,on.
C'estpourquoilesfabricantsdeprocesseursx86AMDetIntelontajoutédansleurs
gammesdesinstruc,onsdédiéesafindeproposerdessolu,onsdevirtualisa,on
matérielledanslasecondemoi,édesannées2000.Cesinstruc,onsperme;entla
coexistencedeplusieurs"ring0"simultanée,onparleparfoisparextensionàleur
sujetde"ring-1".
13
14
Lesupportdelavirtualisa,onpeutêtreintégréauprocesseurouassistéparcelui-ci,
lematérielsechargeant,parexemple,devirtualiserlesaccèsmémoireoude
protégerleprocesseurphysiquedesaccèslesplusbasniveaux.Celapermetde
simplifierlavirtualisa,onlogicielleetderéduireladégrada,ondeperformances.
15
16
h;p://www.lemagit.fr/conseil/CPU-et-Virtualisa,on-les-caracteris,quesfondamentales-a-verifier
SLATSecondlevelAddressTransla,on(INTEL)/RVIRapidVirtualiza,onIndexing
(AMD)
EPTExtendedPageTable
TLBTransla,onLookasidebuffer
17
18
h;ps://fr.wikipedia.org/wiki/Cgroups
L'undesbutsdelaconcep,ondecgroupsaétédefourniruneinterfaceunifiéeà
différentscasd'u,lisa,on,enallantducontrôledesimplesprocessus(commenice)à
lavirtualisa,onauniveaudusystèmed'exploita,on(commeOpenVZ,Linux-VServer,
LXC).Cgroupsfournit:
Limita,ondesressources:desgroupespeuventêtremisenplaceafindenepas
dépasserunelimitedemémoire—celainclutaussilecachedusystèmedefichier.
L'ar,cleoriginalaétéprésentéauLinuxSymposiumets'in,tuleContainers:
Challengeswiththememoryresourcecontrolleranditsperformance
Priorisa,on:certainsgroupespeuventobteniruneplusgrandepartderessources
processeuroudebandepassanted'entrée-sor,e.
Comptabilité:permetdemesurerlaquan,téderessourcesconsomméespar
certainssystèmesenvuedeleurfactura,onparexemple.
Isola,on:sépara,onparespacedenommagepourlesgroupes,afinqu'ilsne
puissentpasvoirlesprocessusdesautres,leursconnexionsréseauxouleursfichiers.
Contrôle:figerlesgroupesoucréerunpointdesauvegardeetredémarrer.
19
20
Qemunenécessitepasdeprocesseurspécifique,n'imposepasde
modifierlesystèmeinvitéetmarchesurunsystèmehôtenonmodifié.Cependant,
kQemu,approched'accéléra,ondédiée,permetd'accélérer
notablementlesperformances(toujourssanscontraintesurlagénéra,onde
processeur).
21
22
h;p://blog.octo.com/presenta,on-des-hyperviseurs-xen-et-kvm/
h;ps://www.antoinebenkemoun.fr/2010/01/les-domaines-xen-les-domaines-nonprivilegies/
Xenestcapabledefairedelaparavirtualisa,onmaisaussidelavirtualisa,on
matérielleassistée.Achacundecestypesdevirtualisa,oncorresponduntypede
domainenonprivilégié.LesdomUdeparavirtualisa,onsontappelés«domU
standards»etlesdomUdevirtualisa,onmatérielleassistéesontappelés«domU
HVM».L’acronymeHVMsignifie«Hardware-AssistedVirtualMachine».
h;p://blog.octo.com/presenta,on-des-hyperviseurs-xen-et-kvm/
23
24
Lesisolateurstendentàisoleràunniveaudeplusenplusprochedusystème,voire
danslesystèmedanslecasdeOpenVZ,quipeutêtrevucommeunLinuxavec
plusieurstablesdeprocessus,chacunedanslecontexted'unedistribu,onpropre.
25
26
27
28
Téléchargement