SISTEMIOPERATIVI MACCHINE VIRTUALI Introduzione » Creareunaastrazione diuncomputerper crearediversiambientidiesecuzione ˃ evoluzionedelmodellodisistemaoperativo stratificato GiorgioGiacinto2015 » Componenti ˃ Host – ilsistemahardware ˃ Virtualmachinemanager(VMM) ohypervisor – creaedeseguemacchinevirtuali ˃ Guest – processochecontieneunacopiavirtualedel sistemahost + Disolitoèunsistemaoperativo 2 Modello del sistema processes processes processes processes GiorgioGiacinto2015 programming interface kernel hardware Senza(a)Virtualizzazione kernel kernel kernel VM1 VM2 VM3 virtual machine manager hardware (b) Virtuali Macchine 3 Definizioni » Virtualizzazionehardware ˃ sistemachecreaviasoftwareunambientevirtuale identicoaunserverfisico GiorgioGiacinto2015 » Virtualizzazionealivellodiapplicazione dettiancherun-timesystems ˃ Consentonodieseguireunprogramma indipendentementedall’architetturahardwarefisica JAVA .NET 4 Virtualizzazionehardware » Trecategorie ˃ Virtualizzazionecompleta + daunsistemafisicosirealizzanodiversisistemi virtualidellostessotipodelsistemafisicoospitante GiorgioGiacinto2015 ˃ Emulazione diunaCPUsuunaCPUditipodiverso ˃ Virtualizzazionealivellodisistemaoperativo 5 Virtualizzazionecompleta » Ilprimosistemachehaintrodottoilconcettodi virtualizzazioneèstatoCP-40dell’IBMnel1967. ˃ precursoredellafamigliadisistemidi virtualizzazionedell’IBMdal1972aoggi(z/OS) GiorgioGiacinto2015 » L’architetturadellafamigliadiprocessorix86 (IA-32eIA-64)forniscesupportoalla virtualizzazione ˃ anchesenonsecondolespecificheformalidefinite daPopek andGoldberg nel1974 Intel:VT-x AMD:AMD-V 6 Emulazione » Sistemicheconsentonodieseguiresuunacerta architetturaesistemaoperativodelle applicazioniscritteperaltrearchitetturee/o altrisistemioperativi ˃ esecuzionediapplicazionipersistemilegacy GiorgioGiacinto2015 QEMUèunodeisistemipiùdiffusi 7 Virtualizzazionealivellodi sistemaoperativo » Chiamatoanchepartizionamentoocontenitori diapplicazioni ˃ lavirtualizzazioneègestitadalkernel ˃ Vengonocreatidiversiambientivirtualidi elaborazionecheconsentonolaseparazionedella esecuzionedelleapplicazioni GiorgioGiacinto2015 » Esempi ˃ OracleSolaris ˃ IBMAIX6.1 8 Paravirtualizzazione » Virtualizzazioneassistitadalsistemaoperativo cheeseguenellamacchinavirtuale GiorgioGiacinto2015 ˃ kernel modificatosostituendoalcunechiamatedi sistemaconchiamateall’hypervisor es.XEN 9 Paravirtualizzazione » IkerneldiMSWindowseLinuxcontengonoil supportoperlaparavirtualizzazione GiorgioGiacinto2015 ˃ IlSistemaOperativoel’hypervisorcomunicanoin modopiùefficiente ˃ Riduzionedelsovraccaricodovutoallatraduzioneda partedell’hypervisor » SupportoallaparavirtualizzaioneinLinuxdal 2008. 10 GiorgioGiacinto2015 11 VirtualMachines (VM) » Lavirtualizzazioneconsentedieseguirein modoconcorrentesullostessoserveroPC ˃ sessionimultiplediunostessoSistemaOperativo ˃ diversiSistemiOperativiospiti GiorgioGiacinto2015 + suunastessamacchinafisicapossonoessere eseguiteapplicazionispecificheperdiversisistemi operativi » Macchinevirtualigestiteda ˃ VirtualMachineManager(VMM) ˃ Hypervisor 12 Architettura virrtualizzazione Applications and Processes Applications and Processes Applications and Processes Virtual Machine 1 Virtual Machine 2 Virtual Machine n GiorgioGiacinto2015 Virtual Machine Manager Shared Hardware 13 Figure 14.1 Virtual Machine Concept Vantaggi virtualizazzione: consolidamento V M GiorgioGiacinto2015 Virtualization host Physical servers 6:1 consolidation ratio 14 Figure 14.2 Virtual Machine Consolidation CaratteristichediunaVM » Costruttosoftwarechereplicail comportamentodiunamacchinafisica GiorgioGiacinto2015 ˃ simulalapresenzadiunaopiùCPU ˃ simulalapresenzadiunacertaquantitàdiRAM ˃ simulalapresenzadidispositiviI/O,dischi, connessionidirete,ecc. » IlVMMohypervisor associalerisorsediuna VMallerisorsefisichepresentinelsistema ˃ UnaVMvedesololerisorsefisicheassegnateda VMMohypervisor 15 ClassificazioneVMM » Hypervisor diTipo0 ˃ Soluzionibasatesufunzionalitàmesseadisposizione dall’hardwareattraversofirmwarespecifico + Esempi:IBMLPARs eOracleLDOMs GiorgioGiacinto2015 » Hypervisor diTipo1 ˃ Eseguitidirettamentedall’hardwarecomeunsistemaoperativo + Esempi:VMware ESX,CitrixXenServer ˃ Sistemioperativitradizionalichefornisconoanchesupportoper lacreazionedimacchinevirtuali + Esempi:MicrosoftWindowsServerconHyper-V,eRedHat Linux conKVM » Hypervisor diTipo2 ˃ Sfruttanoservizimessiadisposizionedaunsistemaoperativo ospitante ˃ Esempi:VMware WorkstationeFusion,OracleVirtualBox 16 GiorgioGiacinto2015 Hypervisor diTipo1ediTipo2 17 GiorgioGiacinto2015 Tipologie diHypervisor 18 CaratteristichediunaVM » LaVMsimulaunserveroPCfisico ˃ puòessereaccesoospento ˃ sipuòinstallareunqualunqueSistemaOperativo ˃ sipuòinstallarequalunquesoftware GiorgioGiacinto2015 » Dalpuntodivistadelserverfisico ˃ Vengonoeseguiteinmodoconcorrentediverse applicazioni MA ˃ isolateinsistemioperatividistinti 19 ComponentidiunaVM » Uninsiemedifile ˃ Configurazione + + + + + numeroCPU quantitàdiRAM periferiche interfaccediretevirtuali accessoaidispositivi(fisici)dimemorizzazionedi massa GiorgioGiacinto2015 ˃ All’avviovengonocreatiifilepergestire + paginazione + log + ecc. » LacopiadeifilediunaVMconsentedireplicare esattamenteunserver 20 VirtualizzazionedellaCPU » Duetecnicheprincipali ˃ EmulazionediCPUviasoftware + QEMU + emulatoreAndroid » AccessoallaCPUfisicamediatodall’hypervisor GiorgioGiacinto2015 ˃ L’hypervisor intercettaleistruzionigeneratedalle VMeleaccodaperl’esecuzionedapartedellaCPU 21 CPUVirtuale » LamaggiorpartedelleVMMrappresentalo statodellaCPUvistadalguestattraversouna CPUVirtuale(VCPU) GiorgioGiacinto2015 ˃ AnalogoalPCBusatodaisistemioperativipergestire iprocessi » Lemodalitàkernel eutentedelguestpossono esseregestiteindiversimodidapartedella VMM 22 Modidiesecuzionedella CPU » NelleCPUconduemodidiesecuzione ˃ utenteekernel ilsistemaguestèeseguitoinmodalitàutente ˃ ilkerneldell’hypervisorèeseguitoinmodalitàkernel mode GiorgioGiacinto2015 » Nonèsicurofareseguireilkerneldelguestsulla CPUfisicainmodalitàkernel ˃ duemodiancheperlamacchinavirtuale + virtualusermode evirtualkernelmode sonoeseguitiinrealusermode 23 Trap-and-Emulate » Cambiodimodofravirtual user mode evirtual kernel mode GiorgioGiacinto2015 ˃ Iltentativodiesecuzionediunaistruzione privilegiatainmodalitàutentecausaunerrore-> trap ˃ ilVMMprendeilcontrollodell’esecuzione,analizza l’erroreedeseguel’istruzionedelguest ˃ ilcontrolloritornaalguestinmodalitàutente » Questatecnicaènotacometrap-and-emulate ˃ usataalmenoinpartedamoltiprodottidi virtualizzazione 24 Trap-and-Emulate User Processes Privileged Instruction Guest User Mode Return Trap Operating System VMM Kernel Mode Emulate Action Update VCPU GiorgioGiacinto2015 VMM » Ilguestinmodalitàutenteèeseguitoallastessa velocitàcheavrebbesuunamacchinafisica » Leistruzioniinmodalitàkernel sonopiùlente » LeCPUmodernesupportanopiùmodidiesecuzione pervelocizzarelavirtualizzazione 25 RingO ISOsvolgonolafunzionediintermediarifraleapplicazioniel’hardware ISOevitanochechiamatealsistemapossanocompromettere l’esecuzionedeiprocessioilsistemastesso LeCPUmodernedefinisconodiversilivellidiaccessoalprocessore chiamatiRing GiorgioGiacinto2015 IllivelloconIprivilegimaggiorièchiamatoRing0. Ilkernel diunsistemaoperativoaccedeallaCPUaquestolivello Unhypervisor vieneeseguitoinRing0econtrollol’accessoallerisorseHW delleVM 26 TraduzioneBinaria » AlcuneCPU,specienelpassato,nonhannouna distinzionechiarafraistruzioniprivilegiateenon privilegiate ˃ Unastessaistruzioneconcomportamentodiversoa secondadelmododiesecuzione->istruzionispeciali GiorgioGiacinto2015 » Traduzionebinaria ˃ SelaVCPUdelguestèinmodalitàutente,ilguestpuò eseguireistruzioniinmodonativo ˃ SelaVCPUdelguestèinmodalitàkernel + ilVMMesaminaleistruzionicheverrannoeseguitedalguest – istruzionisuccessiveaquellacuisiriferisceilprogram counter delguest + Eventualiistruzionispecialisonotradotteinunnuovo insiemediistruzionichesvolgonoiltaskequivalente 27 Traduzione binaria User Processes (VMM Reads Instructions) Special Instruction Guest GiorgioGiacinto2015 Translate Execute Translation VMM User Mode Return VMM Operating System Kernel Mode Update VCPU 28 Gestionedellamemoria GiorgioGiacinto2015 » IsistemioperativieseguitinelleVMaccedono allamemoriafisicaattraversol’hypervisor 29 Tabelle delle pagine annidate Guest Guest Virtual Address Kernel Paging Data Structures Guest Physical Address 1 3 2 VMM Nested Page Table Data Structure GiorgioGiacinto2015 PML4 Directory Ptr 5 4 Directory Table Offset PML4E PDPTE PDE PTE Phy Addr 1 1 2 2 3 3 30 4 4 Host Physical Address 5 Tecnichedigestionedelle memoria » Memoryovercommitment ˃ LamemoriacomplessivaassegnataaiSOospitiè maggiorediquelladisponibilefisicamente » Ballooning GiorgioGiacinto2015 ˃ L’hypervisor attivaunballoondriver all’internodel sistemaospite + L’hypervisor gonfiailpallone inmododacostringereil SOospitealiberarememoriafisica + quandosiliberanopaginenellamemoriafisica,si attivalafasedisgonfiamentoel’hypervisor può riassegnarememoriafisica 31 GiorgioGiacinto2015 Memoryovercommitment 32 GiorgioGiacinto2015 Ballooning • LaVMhaassegnate4paginefisiche • 2delle4pagineassegnateallaVM nonsonoutilizzate • Ilballoondriver individuanellaVMle paginenonutilizzateecomunicagli indirizziall’hypervisor • L’hypervisor nonsaqualisianole paginefisichenonutilizzatedallaVM • Lepaginerisultanosempreassegnate allaVMmanonvipuòaccedere 33 Considerazionisullatecnica diballooning » Pressione dellerichiestedimemoria ˃ Quantitàdimemoriaeffettivamenteutilizzatadalle applicazioni » Fasedigonfiamento ˃ lapressione dirichiestadimemoriasitrasferisceda hypervisor aisistemiospiti GiorgioGiacinto2015 + leapplicazionideisistemiospitiavrannounaquantità inferioredimemoriafisicaadisposizione » L’hypervisor nonhavisibilitàsullapressione dellerichiestedimemoriaall’internodeisistemi ospiti 34 GestionedelsistemaI/O Virtual machine » L’hypervisor fornisceaisistemiospitiuna astrazionedelleperiferichehardware Physucal server GiorgioGiacinto2015 Hypervisor Applications Operating system NIC driver Emulated device NIC driver NIC 35 Network Figure 14.5 I/O in a Virtual Environment Vantaggi virtualizzazione I/O » Migrazione attivadellemacchinevirtualidaun sistemafisicoaunaltro ˃ Idrivervirtualisonogenerici GiorgioGiacinto2015 » Condivisionedirisorseaggregate,comele connessionidirete » Comeconseguenzal’hypervisor devegestire tuttoiltrafficoI/O ˃ Sovraccaricomitigatodalsupportoalla virtualizzazioneoffertodaiprocessoripiùrecenti 36 Supporto hardwarealla virtualizzazione I/O I/OAT GiorgioGiacinto2015 GiorgioGiacinto2015 I/OAcceleration Technology (Intel) aphysicalsubsystem thatmovesmemory copiesviadirect memoryaccess(DMA) fromthemain processortothis specializedportionof themotherboard TOE TCPOffloadEngine removestheTCP/IP processingfromthe serverprocessor entirelytotheNIC LRO LargeReceiveOffload LSO LargeSegmentOffload aggregatesincoming packetsintobundlesfor allowsthehypervisorto moreefficient processing aggregatemultiple outgoingTCP/IPpackets andhastheNIC hardwaresegment themintoseparate packets 37 38 Gartnermagicquadrant 2015 GiorgioGiacinto2015 Virtualizzazionehardware 39 GiorgioGiacinto2015 Gartnermagicquadrant 2016 40 vmwareESXi » UnhypervisorcommercialeType-1 » vmware haavviatolosviluppodelsistemadi virtualizzazioneperarchitetturex86afineanni ‘90 GiorgioGiacinto2015 » Successodelprodottodovutoa ˃ primoprodottosulmercatoperarchitetturex86 ˃ Innovazionecontinua 41 GiorgioGiacinto2015 Architettura vmware ESX Hardware monitoring agents VMware management agents Infrastructure agents (NTP, Syslog) CLI commands for configuration and support System management agents VM VMkernel VM VM support and resource management NelleprimeversionidiESXl’hypervisor erasupportatodauna installazioneLinuxchefungevadastratodigestionedelsistema Figure 14.6 ESX 42 Architettura vmware ESXi CLI commands for configuration and support Agentless hardware monitoring Agentless systems management GiorgioGiacinto2015 VM VMware management framework VMkernel Common information model Infrastructure agents (NTP, Syslog) VM VM support and resource management Local support consoles 43 Figure 14.7 ESXi GiorgioGiacinto2015 Caratteristiche di vmware ESXi Storage VMotion Permitstherelocationofthedatafilesthatcomposeavirtualmachine, whilethatvirtualmachineisinuse FaultTolerance Createsalockstepcopyofavirtualmachineonadifferenthost--- ifthe originalhostsuffersafailure,thevirtualmachine’sconnectionsgetshifted tothecopywithoutinterruptingusersortheapplicationtheyareusing SiteRecovery Manager Usesvariousreplicationtechnologiestocopyselectedvirtualmachinesto asecondarysiteinthecaseofadatacenterdisaster Storageand NetworkI/O Control Allowsanadministratortoallocatenetworkbandwidthinavirtual networkinaverygranularmanner Distributed Resource Scheduler(DRS) Intelligentlyplacesvirtualmachinesonhostsforstartupandcan automaticallybalancetheworkloadsviaVMotionbasedonbusiness policiesandresourceusage 44 XEN » Progettoopen-sourcesviluppatoainizianni 2000dallaCambridgeUniversity ˃ versionicommercialioffertedaCitrixeOracle » XENhabisognodiunsistemaoperativo dedicatopereseguirel’hypervisor GiorgioGiacinto2015 ˃ Dom0(dominiozero)èildominioinizialecheesegue XENehaaccessoallerisorsehardware » L’hypervisorXENèanchedistribuitoall’interno dimolteversionidiLinux ˃ CentOS,Debian,Fedora,Ubuntu,OracleVM,RedHat (RHEL),SUSE,eXenServer. 45 Architettura diXEN Dom0 drivers Kernel0 DomU DomU KernelU KernelU GiorgioGiacinto2015 Xen Hypervisor Hardware Figure 14.8 Xen 46 MicrosoftHyper-V » Hypervisortype-1 rilasciatonel2008come partediWindowsServer2008 » L’architetturadiHyper-Vconsistein ˃ unapartizionegenitorechefungeda amministrazionedell’hypervisor GiorgioGiacinto2015 + all’internodiWindows2008 ˃ partizionifigliechecontengonolemacchinevirtuali ospiti 47 Architettura diHyper-V Parent partition WMI drivers VM workers VSP Child partition Kernel VSC Child partition Kernel VSC Kernel GiorgioGiacinto2015 Microsoft Hyper-V VMBus Hardware Figure 14.9 Hyper-V 48 LinuxVServer » LinuxVserver èunprogettoopen-sourceche consentedicrearediversiservervirtualiLinux all’internodiunserverLinux ˃ approccioveloceeconsovraccaricoridotto GiorgioGiacinto2015 » Basatosuunasingolacopiadelkernel Linuxcui sonoapportatealcunemodificheealcune aggiunte ˃ isolamentofraiservervirtualiottenutoattraverso strumentistandarddiLinux(chroot,chcontext, chbind,capabilities) » L’interagestionedelsistemaèaffidataalkernel 49 Architettura LinuxVServer Server Applications VMn VM Admin. Remote Admin. Core Services /proc /home /usr Standard OS Image /dev /proc /home /usr /dev /proc /home /usr /dev Hosting Platform GiorgioGiacinto2015 VM1 Virtual Platform VMhost Server Applications 50 GiorgioGiacinto2015 51 JavaVM » ObiettividiunaJavaVirtualMachine(JVM) ˃ fornireunambientediesecuzioneperprogrammi scrittiinlinguaggioJava + Indipendentedall’hardware + Indipendentedalsistemaoperativo GiorgioGiacinto2015 ˃ Ilprogrammanondeveessereriadattatoperessere eseguitosudiversepiattaforme » LaJVMsupportathreadmultipli 52 RealizzazionedellaJVM » Éunamacchinaastrattacompostada uninstructionset unregistroprogramcounter unostackpermemorizzarevariabilierisultati unoheapperdatiruntimeegarbagecollection unaareamethodpermemorizzareilcodiceele costanti GiorgioGiacinto2015 ˃ ˃ ˃ ˃ ˃ 53 AndroidVirtualMachine GiorgioGiacinto2015 NotacomeDalvik LaDalvik VM(DVM) eseguefileinformato .dex (Dalvik Executable) Ogniapplicazione Android èeseguita all’internodiunacopia privatadellaDVM LalibreriaDalvik core class fornisceun ambientedisviluppo sviluppatosuJSE Dalvik consentedi eseguireinmodo efficientediverseVM suundispositivo 54 Confronto JavaeDalvik .jar .apk .class .dex .jar .class Header Header Heterogenous constant pool Heterogenous constant pool Class Field Method Class Field Attributes .class Method Header Strings constant pool Type/class constant pool Field constant pool Method constant pool Class definition Field list Method list Code header Local variables Header GiorgioGiacinto2015 .class Field .dex Header Strings constant pool Type/class constant pool Field constant pool Method constant pool Class definition Field list Method list Heterogenous Attributes constant pool Class .apk Code header Local variables Header Method Heterogenous constant pool Attributes 55 Class Field Method Figure 14.12 Java and Dalvik Formats Attributes Zygote Figure 14.12 Java and Dalvik Formats » Èunprocessoeseguitoall’avviodeldispositivo daunaDVM » ZygotegeneraunanuovaDVMognivoltachevi èunarichiestaperunnuovoprocesso GiorgioGiacinto2015 ˃ IltempodicreazionediunanuovaDVMèridotto grazieall’usoditecnichedicondivisionedielementi inmemoria » All’avviovengonoprecaricateepre-inizializzate tutteleclassicoreelerisorsediJavache potrebberoessereutilizzatedalleapplicazioni 56