71
1 NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednárek David Bednárek: Technické principy virtualizace

David Bednárek: Technické principy virtualizace

  • Upload
    yuval

  • View
    61

  • Download
    0

Embed Size (px)

DESCRIPTION

David Bednárek: Technické principy virtualizace. Web Hosting jako motivace pro virtualizaci. Webhosting – postupný vývoj. Statické stránky 1 web = 1 adresář 1 proces (Apache) pro v šechny Dynamické stránky potenciálně nebezpečný kód 1 web = 1 proces ( Apache+PHP ) - PowerPoint PPT Presentation

Citation preview

Slide 1

1NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekDavid Bednrek:Technick principy virtualizace2NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekWeb Hosting jako motivace pro virtualizaciStatick strnky1 web = 1 adres1 proces (Apache) pro vechny

Dynamick strnkypotenciln nebezpen kd1 web = 1 proces (Apache+PHP)1 pota pro vechny

Uivatelsk systmyweby vyaduj odlin konfigurace1 web = 1 potabez virtualizace zbyten drah

Webhosting postupn vvoj3NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrekwww.pzr.comWebhostingwww.kzr.comFyzick potaeVirtuln potaeWebhosting a virtualizace z rychlku4NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrekwww.pzr.comvirtuln potawww.kzr.comvirtuln potaInternetfyzick potahypervizor = VMMwww.pzr.comfyzick potawww.kzr.comfyzick potaInternetFyzick potaeVirtuln potaeWebhosting a virtualizace podrobnji5NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrekwww.pzr.comvirtuln potawww.kzr.comvirtuln potaNICNICInternetfyzick potaNIChypervizor = VMMwww.pzr.comfyzick potawww.kzr.comfyzick potaNICNICInternet6NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCo je to virtualizace?Co je to virtualizace7NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekvirtualMerriam-Webster dictionaryvery close to being something without actually being itexisting or occurring on computers or on the Internetfrom Latin virtus - strength, virtuefrom vir - man

Co je to virtualizace8NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrek

Virtualizace9NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCo je to virtualizace?Iluze fyzickho zazen, kter fyzicky neexistujeDobe znm rozhranFyzickho zazenstrnka pamti, pota, disk, sov karta, ...Softwarov rozhranproces-kernel, HALImplementovno jinak ne obvyklesoftwarovjinm hardwareiSCSI adiv kombinaci software-hardwarevirtuln pam, modern virtualizace procesorPouvn termnu virtualizace je vc zvykussh/RDP nen nazvno "virtualizace konzole"iSCSI disk nen "virtuln disk"Java Virtual Machine nen virtualizace fyzickho strojeVirtualizace10NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrekel virtualizace (technick pohled)Vt poet virtulnch objekt ne fyzickchvirtuln vs. fyzick pam, virtuln potaVirtuln objekty jinho druhu ne fyzickemulace potae jin architekturyVirtuln objekty vzdlen od fyzickchvzdlen disky prezentovan jako lokln, vzdlen klvesnice+obrazovkaVirtuln objekty implementovan zcela jinak, ne fyzickdisky implementovan souboremVirtuln objekty bez vazby na fyzick svtvirtuln se

Zsahy do chovn, kter by bez virtualizace nebyly monladn, experimenty, menizen veho druhu (time sharing, thin provisioning)migrace, load balancingVirtualizace11NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekVirtualizovan zazenPotaVirtualizovan rozhranfyzick rozhran software-hardware (fyzick virtualizace)softwarov rozhran uvnit OS (paravirtualizace)Zahrnuje virtualizaci zazen uvnit potaeCPUVirtualizovan rozhran = instrukn sadaAplikan + privilegovan instrukce (hardwarov virtualizace)Aplikan instrukce (paravirtualizace)Samo o sob nema smysl - CPU nem vstup/vstupPamVirtualizovan rozhran = instrukce ten a zpisuI/O zazenVirtualizovno na rovni I/O instrukcna softwarovm rozhran uvnit OSrovn virtualizace12NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekSdlen fyzickho potae virtulnmiCPUguest OS i hypervizor pouvaj preemptivn multitaskingPamguest OS u m svou virtuln pamhypervizor pidv druhou roveDiskyvirtuln disk mapovn do spolenho diskovho prostoruiSCSI, SAN, NAS,...Sttrunk mode, NAT, virtuln st,...Dal zazenexkluzivn pstupsdlen pstupvzdlen USB apod.Varianty virtualizace13NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekVirtualizaci lze dlat na mnoha rovnchAplikan virtualizacechroot, WoW, UACskupinm proces je prezentovno jin prostedimplementovno operanm systmem

ParavirtualizaceXen, Microsoft Hyper-Vna fyzickm stroji b nkolik upravench operanch systmhypervizor e alokaci zdroj a serializaci pstupu k zazenm

VirtualizaceVMWare, [Microsoft Hyper-V]na fyzickm stroji b nkolik neupravench operanch systmhypervizor vytv kadmu z nich iluzi fyzickho hardware14NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekVirtualizace - klady a zporyMotivace pro virtualizaci15NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekLep vyuit CPUVtina pota se vtinu doby flkLep vyuit pamti, diskovho prostoru,...OS neum bezbolestn pidat nov prostor - velikosti bvaji pedimenzovnyVirtualizace doke prezentovat vt ne skuten prostorMonost migrace virtulnch potaLoad-balancing, fault-toleranceVzdlen sprvaCD pro instalaci OS lze do virtuln mechaniky vloit kliknutm myiCheckpointyNepoveden zmny v konfiguraci lze vrtitVuka uivatel/sprvcTestovn a ladn OS, st i aplikacZkoumn malwareProblmy virtualizace16NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekZtrta vkonuSiln zvis na charakteru aplikac i technologii virtualizaceNkdy jednotky, nkdy destky procentZmna charakteristik pi migraciRzn CPUNespolehliv men/ladn vkonu

Nepipravenost fyzick sov infrastrukturyMigrace virtulnch sovch karet mezi fyzickmi

Nepipravenost dodavatel softwareNevhodn licenn podmnkyProblmy s individulnmi checkpointy v komunikujcch systmech

17NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekVirtualizace - historie

Prvn ra virtualizace1972 IBM VM pro S/370Koexistence rznch OSTime-sharing a virtuln pam nad OS, kter tyto pojmy neznajLadn OSVetn VM ve VMKad dest S/370 pouval VM1980... Postupn znikMainframes vytlaeny levnjmi architekturami (minipotae, PC)Nov hardware neumooval virtualizaciNstup UnixuVM zbyten komplikuj komunikaci mezi procesyVirtualizace - historie18NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekArchitektura x86 je pro virtualizaci nevhodnDdictv procesoru Intel 802861982 v dob prvn ry virtualizacePokusy o npravu2005 Intel VT-x2006 AMD-VNprava nen dodnes dokonalVelk podl softwarov virtualizaceV prvn e virtualizace pouvna hardwarov virtualizaceNezanedbateln ztrta vkonuVoln jdra, peruenVirtualizace virtuln pamtiSituace se rok od roku zlepuje

Virtualizace - historie19NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekDruh ra virtualizace1999 VMWare WorkstationSoftwarov virtualizace (BT)VMM jako aplikace Windows NT2002 VMWare ESX ServerVMM nahrazuje OS hostitele2003 XenParavirtualizaceModifikace OS hosta

Virtualizace - poadavky20NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekPoadavky na virtualizaciGerald J. Popek and Robert P. Goldberg, 1974

Equivalence / FidelityProgram bc pod VMM se mus chovat v zsad stejn, jako by bel na ekvivalentnm fyzickm stroji pmo

Resource control / Safety VMM mus mt plnou kontrolu nad virtualizovanmi zdroji

Efficiency / PerformanceStatisticky pevldajc st strojovch instrukc mus bt provdna bez zsahu VMM21NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekImplementace VMM22NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekVirtualizace CPUVirtualizace CPU23NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekRozhran software-hardware v CPUNeprivilegovan md (aplikan procesy)Instrukn sada (neprivilegovan instrukce)Stav CPUSkuten obsah neprivilegovanch registrEfekt stavu privilegovanch registrPamov prostor procesuR/W operaceManipulace prostednictvm slueb OSMechanismus voln jdra OSSpeciln instrukce nebo (mysln) chybaPrivilegovan md (jdro OS) - navcPrivilegovan instrukceStav CPUSkuten obsah privilegovanch registrPamov prostor procesuManipulace s HW st strnkovn (TLB)I/O operaceObsluha peruen synchronnch i asynchronnch

Virtualizace CPU24NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCl: implementovat "jinak" rozhran software-hardwareNepiznat sdlen fyzickho CPU s jinmi virtulnmi stroji

Neprivilegovan md (aplikan procesy)Instrukn sada (neprivilegovan instrukce)Implementovno bez prav fyzickm CPU - jinak to kvli vkonu nelzeFyzick CPU je obas odebrno preemptivnm multitaskingem hypervizoruStav CPUSkuten obsah neprivilegovanch registrFyzick CPU je obas odebrno preemptivnm multitaskingem hypervizoruEfekt stavu privilegovanch registrFyzick stav je nutn jin, ale odchylka nesm bt viditelnPamov prostor procesuMechanismus virtuln pamti mus kombinovat sdlen pamti mezi VM a sdlen mezi procesy jednoho VMMechanismus voln jdra OSNelze pmo pipustit pvodn semantiku (pepnut do privilegovanho mdu a skok do OS)Virtualizace CPU25NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCl: implementovat "jinak" rozhran software-hardwareNepiznat sdlen fyzickho CPU s jinmi virtulnmi stroji

Privilegovan md (jdro OS) - navcPrivilegovan instrukceVtinou nelze pipustit pm proveden fyzickm CPUStav CPUFyzick obsah vtiny privilegovanch registr nelze piznatPamov prostor procesuManipulace s HW st strnkovn (TLB) mus bt emulovnaNutnost zaznamenat i manipulaci provdnou neprivilegovanmi instrukcemiI/O operaceU sdlench zazen nelze pipustit pm proveden fyzickm CPUObsluha peruen synchronnch i asynchronnchPeruen obvykle pepn CPU do privilegovanho reimuZatek obsluhy peruen mus bt ve VMMPstupy k virtualizaci26NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekAplikan kd je vdy vykonvn fyzickm CPUKd jdra OS lze vykonvat rznmi zpsobyFyzickm CPU bcm v aplikanm reimu [prvn ra virtualizace]Privilegovan instrukce zpsob vjimku a jsou emulovnyasov penalizace kadho pechodu aplikace-jdroNeprivilegovan instrukce musej bet identicky s privilegovanm reimemNepiznat zmnn stav procesoru neprivilegovanou instrukcBinary translation - peloen do "bezpenho" kdu [VMWare x86]Instrukce manipulujc s privilegovanou st stavu jsou upravenyVyaduje as a prostor pro peklad (on demand)Bezpen kd vykonvn fyzickm CPU [v privilegovanm reimu ?]et as na pepnn reimu CPUHardwarov podpora virtualizace [VMWare x64]Vce rovn privilegovanosti ve stavu procesoruNa stroji s N rovnmi lze emulovat virtuln stroj s N-1 rovnmiOddlen (stnov) registry pro fyzick a virtuln stav CPU

Pstupy k virtualizaci27NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekAplikan kd je vdy vykonvn fyzickm CPUKd jdra OS lze vykonvat rznmi zpsobyFyzickm CPU bcm v aplikanm reimu [prvn ra virtualizace]Binary translation - peloen do "bezpenho" kdu [VMWare x86]Bezpen kd vykonvn fyzickm CPU v privilegovanm [?] reimuHardwarov podpora virtualizace [VMWare x64]Vce rovn privilegovanosti ve stavu procesoruNa stroji s N rovnmi lze emulovat virtuln stroj s N-1 rovnmi

Paravirtualizace [Xen, nkter varianty Hyper-V]Upraven OS nepouv privilegovan instrukce Ani jinak nezasahuje pmo do privilegovanho stavu (strnkovn)OS je vykonvn fyzickm CPU v aplikanm reimuOchrana proti chybm v OSPrivilegovan akce nahrazeny volnm hypervizoruVrazn men reie ne pi emulaci rozhran SW-HWZstv reie pepnn aplikace-OS pes hypervizor

Reim CPUAplikanPrivilegovanOdlieno pznakem v privilegovanm registruVstup do privilegovanho reimuPeruenInstrukce pro voln jdraChybaNvrat z privilegovanho reimuInstrukce nvratuOperan systm na fyzickm CPU28NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrekaplikan procesjdro OSCPUaplikan registryprivilegovanregistryaplikan procesjdro OSVMMAplikan procesPracuje normlnJdro OSPracuje v aplikanm reimuPrivilegovan instrukce zpsob softwarov peruenVMM toto peruen obsluhuje - emuluje instrukci, kter ji zpsobilaPrivilegovan registry virtulnho CPUuloeny v pamti VMMOperan systm na virtualizovanm CPU - Trap and Emulate29NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCPUaplikan registryprivilegovanregistryprivilegovanregistryaplikan procesjdro OSVMMJdro OS vyvolv hodn privilegovanch instrukcPoet zvis na architektue CPU, systmu a OSSoftwarov emulace instrukc je pomalReie peruenReie dekdovnReie zvis na architektue CPU

Trap and Emulate - Nevhody30NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCPUaplikan registryprivilegovanregistryprivilegovanregistryPrvn ra virtualizaceIBM 370I/O eeno HW kanly = mlo privilegovanch instrukc v OSMiziv paralelismus = levn skokyJednoduch a pravideln instrukn sada = levn dekdovnMonolitick aplikace = mlo meziprocesov komunikaceTrap and Emulate byla vhodn technikaJdro OS vyvolv hodn privilegovanch instrukcPoet zvis na architektue CPU, systmu a OSSoftwarov emulace instrukc je pomalReie peruenReie dekdovnReie zvis na architektue CPU

Trap and Emulate - Nevhody31NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrekaplikan procesjdro OSVMMNevhodn architektura procesoru neumouje pouit Trap and EmulateIntel x86Typick chybyst privilegovanch registr je iteln neprivilegovanou instrukcNkter instrukce se v rznch reimech chovaj rznPli mnoho instrukc jdra OS vyvolv v aplikanm reimu chybu

Trap and Emulate - Nevhodn procesory32NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCPUaplikan registryprivilegovanregistryprivilegovanregistryProblmy reimu trap-and-emulate33NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekKomprese privilegiJdro virtualizovanho OS pracuje na jin prioritn rovni, ne si myslNkter instrukce se chovaj jinak (intel x86)eeno velmi pracn pekladem (VMWare)Spolen adresov prostorCPU nepepn adresov prostor pi voln jdraOchrana OS eena privilegovanmi strnkamiVirtualizovan OS nakld s virtulnm adresovm prostorem jako s vlastnmNezbv msto pro VMMVMWare: eeno segmentac (dostupn pouze v 32-bit reimu)Pli mnoho pechod VM-VMMaplikan procespeloen jdro OSVMMprava jdra OSBinrn kd jdra je pekladaovmi technikami upraven tak, aby neprovdl privilegovan operacePrivilegovan registry CPU si upraven kd emuluje smZsah VMM nutn pro:Pechody aplikace-jdroAkce s vznamnm efektem (nap. na strnkovn)I/O operaceSystm peruen

Softwarov emulace s pekladem (neprivilegovan md)34NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCPUaplikan registryprivilegovanregistryprivilegovanregistryaplikan procespeloen jdro OSVMMprava jdra OSBinrn kd jdra je pekladaovmi technikami upraven tak, aby neprovdl privilegovan operacePrivilegovan registry CPU si upraven kd emuluje smJdro je pekladem fakticky donuceno dobrovoln spolupracovat s VMMPechody aplikace-jdro jsou stejn drah jako bez VMPechody jdro-VMM jsou levnNutn dvra v mechanismus pekladu

Softwarov emulace s pekladem (privilegovan md)35NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCPUaplikan registryprivilegovanregistryprivilegovanregistryIntel VT-x / AMD-Vproveden se liRoot reim CPUOdpovd CPU bez virtualizaceLze vyut pro bh hostitelskho OSNon-root reimPstup k privilegovanmu stavu omezenNedouc akce zpsobuj VM exitPepnn reimuKritick st stavu CPU se nat/ukld do pamtiZahrnuje pepnut strnkovnHardwarov podpora virtualizace nov rozmr privilegovanosti36NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrekaplikan procesjdro OSaplikan registrykontrola pstupu(aplikace hostitele)jdro VMM(+ OS hostitele)CPUprivilegovanregistryPL = 3PL = 0PL = 3PL = 0rootnon-roothost VMCSguest VMCSVM entryVM exitVM exitVhody HW podpory37NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekOdstranna komprese privilegiPodmnka: Virtualizovan OS samy HW podporu virtualizace nevyuvajNelze virtualizovat virtualiztorNa IBM VM/370 bylo demonstrovno 5 rovn vnoen virtualizacePepnn adresovho prostoru pi VM entry/exitOchrana pamti VMM, pln transparence pro virtualizovan OSKomplikuje pstup VMM do pamti VM (pi emulaci I/O apod)Men poet pechod VM-VMMLze vyladit konfigurac HW kontroly pstupu k privilegovanmu stavuDemonstrovno cca. dvojnsobn zrychlen nkterch lohUnix fork and wait benchmarkKompilace rozshlch projekt s malmi moduly38NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekVirtualizace I/Oaplikan procesjdro OSAplikan procesy realizuj veker I/O volnm OSOS komunikuje s I/O zazenmPrivilegovan I/O instrukce, neboPamov mapovan zazen chrnn strnkovacm mechanismem

Pstup k I/O na fyzickm potai39NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCPUI/O zazenPrivilegovan I/O instrukce jsou provedeny emultorem ve VMMPamov mapovan zazen me bt zpstupnno pmo

Exkluzivn pstupK danmu zazen me pistupovat pouze jeden virtuln strojKrom samotnho I/O zazen je teba zpstupnit nebo virtualizovat systm peruen, ppadn DMA

Pstup k fyzickmu I/O zazen na virtulnm CPU40NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekI/O zazenaplikan procesjdro OSVMMCPUI/O instrukce pro pstup k danmu zazen nejsou privilegovanVyaduje konfigurovatelnost HW ochrany I/O prostoruExkluzivn pstupK danmu zazen me pistupovat pouze jeden virtuln strojKrom samotnho I/O zazen je teba zpstupnit nebo virtualizovat systm peruen, ppadn DMA - IOMMU

Pstup k fyzickmu I/O zazen na virtulnm CPU41NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekI/O zazenaplikan procesjdro OSVMMCPUPrivilegovan I/O instrukce resp. pstupy na pamov mapovan zazen jsou emulovny VMMVMM pro kad virtuln stroj zvl emuluje chovn hardwareDan typ hardware nemus fyzicky existovatSdlen pstupVMM z emulovanho hardware extrahuje logick akceLogick akce jsou provdny fyzickm zazenm

Pstup k virtulnmu I/O zazen na virtulnm CPU42NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrekvirtuln I/O zazenaplikan procesjdro OSVMMCPUI/O zazenZsah do OSParavirtualizace: OS je vrazn upravenKlasick virtualizace: do OS je pidn ovlada virtulnho zazenVhodyMezi OS a VMM jsou pedvny logick pkazy a nikoliv fyzick I/OPedn nevyaduje emulaci I/O instrukcLogickch pkaz je mnSerializace pkaz z rznch VM je jednodu

Pstup k virtulnmu I/O zazen s pravou OS43NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrekaplikan procesupravenjdro OSVMMCPUI/O zazenI/O instrukce pro pstup k danmu zazen nejsou privilegovanVyaduje konfigurovatelnost HW ochrany I/O prostoruSdlen pstupI/O zazen se prezentuje vcekrt v I/O adresovm prostoruI/O zazen m pro kadou adresu jednu kopii vnitnch stavovch registrKrom samotnho I/O zazen je teba zpstupnit nebo virtualizovat systm peruen, ppadn DMA - IOMMU

Pstup k fyzickmu I/O zazen na virtulnm CPU44NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrekaplikan procesjdro OSVMMCPUI/O zazenI/O portI/O portAplikan proces vol jdroJdro nastartuje IO operaciI/O instrukcePo dobu ekn b jin aplikan vlknoDokonen operace je signalizovno peruenmTo putuje od IO zazen pes APIC(terminologie x86: advanced programmable interrupt controller)Obsluha peruen zan zkoumnm dvoduAPIC sdruuje rzn zdroje peruenJdro testuje spnost operaceI/O instrukceSamotn vsledek I/O bv v pamtiUkonen obsluhy peruen se hls APICuOchrana ped rekurzObsluha IO poadavku v OS bez virtualizace - zjednodueno45NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednreksystem callthread 1IO initctx switchAPIC checkIO cleanupAPIC cleanupctx switchthread 1thread 2hw interruptIOV relnm ppad je IO zazen asto obsazenoPoadavky ekaj ve front organizovan jdrem OSObsluha peruen typicky dokonuje star poadavek a startuje nov

Zdroj peruen je vc ne signl, kter vedou k CPUObsluha jednoho peruen obas e vce zdroj peruen najednouObsluha IO poadavku v OS bez virtualizace (1 CPU)46NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednreksystem callthread 1IO busy?req enqueuectx switchthread 2hw interruptAPIC checkIO cleanupIO initAPIC cleanupreq dequeuectx switchAPIC checkIO cleanupIO initAPIC cleanupreq dequeuectx switchthread 1thread 3hw interruptIOIOIOthr 2Obsluha IO poadavku v OS bez virtualizace (vce CPU)47NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednreksys callthr 1IO busy?req enqueuectx switchthr 4hw intAPIC checkIO cleanupIO initAPIC cleanupreq dequeuectx switchAPIC checkIO cleanupIO initAPIC cleanupreq dequeuectx switchthr1thr 5hw intIOIOIOthr 3APIC rozdluje peruen na CPUasto cyklickyIO poadavek je dokonen na jinm CPU ne vzniklnevhodn z hlediska cachealternativy:zaadit pipraven vlkno do fronty pvodnho CPUperuit ihned pvodn CPU (pomoc APIC)thread 1CPU obvykle automaticky zake vnj peruen pi vstupu do jeho obsluhyNa jinch CPU ale peruen zakzna nejsouDatov struktury jdra musej bt chrnnyCS - Spinlock

Obsluha peruen v OS bez virtualizace (vce CPU)48NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrekhw interruptAPIC checkIO cleanupIO initAPIC cleanupreq dequeuectx switchthread 2IOIOCPU: interrupts disabledCSCSthr 1Jdro OS b v aplikanm reimuPeruen jsou fyzicky povolenaVMM je mus odloit na ppustn okamikInterakce s IO a APIC mus bt virtualizovna

Kritick sekce mohou bt perueny fyzickm peruenm a peplnovnyTrvaj neppustn dlouhoOstatn virtuln CPU jsou zablokovny ve spinlocku - aktivn!

Obsluha peruen v OS s virtualizac (bez HW podpory virtualizace)49NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrekhw intvirtual APIC checkvirtual IO cleanupvirtual IO initvirtual APIC cleanupreq dequeuectx switchthr 2IOIOCSCSAPIC checkIO cleanupctx switchAPIC emulationIO emulationIO emulationAPIC emulationIO initctx switchAPIC cleanupthr 1Instalace specilnho ovladae virtulnho zazen do OSVye emulaci samotnho IO zazenNevye emulaci APIC a reii pepnn kontextuTyto sti bvaj spolen vem zazenm a nelze je vymnit bez zsahu do OSProblm spinlocku zstvObsluha peruen v OS s ovladaem virtulnho zazen50NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrekhw intvirtual APIC checkvirtual APIC cleanupctx switchthr 2IOIOCSAPIC checkIO cleanupctx switchAPIC emulationIO requestAPIC emulationIO initctx switchAPIC cleanupdevice driverPlnovn vlken v OS i ve VMM51NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekKad asynchronn (I/O) i synchronn (syscall) peruen me zpsobit oiven vlkna - co s nm?Peruen vlkno me tak zstat iv

A) peruen vlkno m pednost ped oivenmPotajc vlkna prakticky znemo bh komunikujcch1 obrtka komunikace za asov kvantum preemptivnho plnovaeB) oiven vlkno dostane pednost ped peruenmVlkna intenzivn provdjc I/O potla bh nekomunikujcchC) nco mezi tmUnix: Dynamick priority

Jdro OS pedpokld znm poet stle bcch CPUTo pi virtualizaci neplatIluze vtho potu CPU je vytvena preemptivnm plnovaem ve VMMPerioda plnovae rozhoduje o efektivit komunikujcch virtulnch CPU52NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekHardwarov podpora virtualizace Intel x86HW podpora virtualizace x8653NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekIntel VT-x a VT-dada rozen CPU i podprnho chipsetu k podpoe virtualizaceNeustle pibvaj dalJednotliv pravy jsou asto pouiteln nezvisleVznamn virtualizan softwary je vyuvaj tm vechnyIntel spolupracuje s producenty softwareAMD-Vpravy ve stejnm ase (2006) podobnm smremVtina nen kompatibiln s Intelem

Situace znepehlednna obchodn politikouRzn verze CPU maj rzn stupe podporyObchodn nzvy maskuj podstatu vciNkter rozen jsou triviality, jin jsou velmi netrivilnIntel VT-x klov sousti54NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekRoot/non-root execution (2005)een problmu komprese privilegi

Extended Page Table (EPT) (2008)een problmu virtualizace virtuln pamti

VMCS Shadowing (2013)Podpora rekurzivn virtualizace

Intel VT-x dal sousti55NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekFlexPriorityVirtualizace klov sti adie peruen (APIC)Pause-loop exitingDetekce spin-lock zpsobujc exit do VMMPro provoz vce virtulnch procesor na mn fyzickchVGuest Preemption Timerasova s lep granularitou a rychlej obsluhouPro virtualizaci aplikac s mrnmi real-time nrokyFlexMigrationVirtualizace identifikace CPU a jeho schopnostVirtual Processor ID (VPID)Kl zznamu v TLB obsahuje identifiktor VMNen teba invalidovat celou TLB pi pepnn VM-VMM a VM-VMReal-mode supportPodpora virtualizace pi startu virtualizovanho OSIntel VT-d podpora virtualizace v chipsetu56NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekIOMMUI/O zazen pistupuj k pamti pes MMU podobn jako CPUAddress Translation Services (ATS) supportRozen standardu sbrnice PCI ExpressLarge Intel VT-d PagesUmouje sdlen CPU a DMA verz strnkovacch tabulekInterrupt-remapping supportsten virtualizace adie peruenVirtual Machine Device QueueNetwork Interface Card s vce stavovmi prostory pro pm pstup z VMSingle-Root I/O Virtualization (SR-IOV)I/O zazen deklaruj sv schopnosti virtualizaceRozen standardu PCI Express

57NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekVirtualizace virtuln pamtiAdresov prostor z pohledu procesuJeden nebo vce souvislch sekRozloen a vznam uren dohodou aplikace a OSDlen na strnky je neviditelnVirtuln pam ve fyzickm potai58NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrekadresov prostor z pohledu procesuABDCEAbstraktn pohled na virtuln pamVirtuln strnky jsou mapovny na fyzick rmceStrnky odloen na disk mapovny nejsouFyzick adresov prostor je sdlen mnoha procesyVirtuln pam ve fyzickm potai59NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrekvirtuln adresov prostorABDCAEDfyzick adresov prostorXERealizace dvourovovm strnkovnm (x86)Pi vpadku TLB procesor prochz dv rovn strnkovacch tabulekStrnkovac tabulky uloeny ve fyzickm adresovm prostoruFyzick adresa koene uloena v registru CPUVirtuln pam ve fyzickm potai60NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCPUvirtuln adresov prostorABDCAEDfyzick adresov prostorXEKd a data OS bvaj soust virtulnho adresovho prostoruPepnn strnkovn pi kadm voln OS by bylo neefektivnStrnky OS pstupn pouze v privilegovanm reimu procesoruVoln OS provedeno speciln instrukc, kter zapn privilegovan reimVirtuln pam ve fyzickm potai61NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCPUOSvirtuln adresov prostorABDCAEDfyzick adresov prostorXEOSOperan systm pln strnkovac tabulkyStrnkovac tabulky jsou mapovny podobn jako data OSOS zapisuje do strnkovacch tabulek bnmi instrukcemiZpis vtinou mus bt nsledovn privilegovanou instrukc "TLB flush"Virtuln pam ve fyzickm potai62NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCPUOSvirtuln adresov prostorABDCAEDfyzick adresov prostorXEOSVMM poskytuje iluzi fyzickho adresovho prostoruMapovn fyzickho prostoru hosta na fyzick prostor hostiteleVMM me odkldat strnky na disk podobn jako OS

Virtuln pam ve virtulnm potai63NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekAEDvirtualizovan fyzick adresov prostor hostaXOSADfyzick adresov prostor hostiteleOSProvdn kd pracuje s virtulnm adresovm prostorem hostaPotebn mapovn vznikne sloenmmapovn definovanho operanm systmem hostamapovn definovanho virtualizac potae hosta

Virtuln pam ve virtulnm potai64NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekAEDvirtualizovan fyzick adresov prostor hostaXOSADfyzick adresov prostor hostiteleOSvirtuln adresov prostorABDCEVe virtulnm adresovm prostoru bAplikan procesy hostaOS hostaVMMPotebujeme 3 rovn privilegi ke strnkmVirtuln pam ve virtulnm potai65NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekAEDvirtualizovan fyzick adresov prostor hostaXOSADfyzick adresov prostor hostiteleOSOSvirtuln adresov prostorABDCEVMMRealizace sloenho mapovn Strnkovacmi tabulkami ve fyzickm prostoru hostiteleObsahuj fyzick adresy v prostoru hostiteleVirtuln pam ve virtulnm potai - bez HW podpory66NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCPUADfyzick adresov prostorVMMOSOSvirtuln adresov prostorABDCEVMMV systmu jsou dvoj strnkovac tabulky Strnkovac tabulky hostitele pouvan fyzickm CPUObsahuj fyzick adresy v prostoru hostiteleVirtualizovan strnkovac tabulky hosta pouvan OS hostaObsahuj virtualizovan fyzick adresy v prostoru hostaVirtuln pam ve virtulnm potai - bez HW podpory67NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCPUADfyzick adresov prostorVMMOSOSvirtuln adresov prostorABDCEVMMCPUAEDvirtualizovan fyzick adresov prostorXOSVMM pot vsledn mapovn ze strnkovacch tabulek hostaOS hosta zapisuje do svch tabulek neprivilegovanmi instrukcemiVMM mus zajistit pimenou koherenci fyzickch tabulek a tabulek hostaVirtualizovan tabulky hosta mohou bt mapovny read-only a zpisy emulovnyKoherenci lze udrovat v rmci emulace privilegovan instrukce "TLB flush"Virtuln pam ve virtulnm potai - bez HW podpory68NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCPUADfyzick adresov prostorVMMOSOSvirtuln adresov prostorABDCEVMM+virtualizacepamti hosta hostitelemSlab VMM neum odkldn virtualizovan pamti na diskMapovn virtualizovanch fyzickch adres na fyzick je identitaVMM pouze kontroluje, zda OS hosta nemapuje nedouc fyzick adresyOS hosta se mus vyrovnat s drami ve fyzickm adresovm prostoruPouvno pevn pi paravirtualizaci (Xen)Virtuln pam ve virtulnm potai - bez druh virtualizace69NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekCPUADfyzick adresov prostorVMMOSvirtuln adresov prostorVMMCPUAEDvirtualizovan fyzick adresov prostorXOSOSABDCEXEYZExtended (Intel) / Nested (AMD) Page TablesSkldn dvojho mapovn provd procesor smTk se mechanismu hardware page-walkTLB obsahuje sloen mapovne i chybn naplnn strnkovacch tabulekVirtuln pam ve virtulnm potai - EPT / NPT[RVI]70NSWI150 Virtualizace a Cloud Computing - 2012/2013 David BednrekAEDvirtualizovan fyzick adresov prostor hostaXOSADfyzick adresov prostor hostiteleOSOSvirtuln adresov prostorABDCEVMMProcesor dr dv sady strnkovacch tabulek a skld jeVechny adresy v GPT (ponaje CR3) jsou pekldny na fyzick pomoc NPTPro ptirovov strnkovn je zapoteb 25 pstup do pamtiVirtuln pam ve virtulnm potai - EPT/NPT71NSWI150 Virtualizace a Cloud Computing - 2012/2013 David Bednrek