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