Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in...

22
Virtual Machines

Transcript of Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in...

Page 1: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

VirtualMachines

Page 2: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

Background

• IBMsoldexpensivemainframestolargeorganiza<ons

• SomewantedtorundifferentOSesatthesame<me(becauseapplica<onsweredevelopedonoldOSes)

• Solu<on:IBMdevelopedvirtualmachinemonitor(VMM)orhypervisor(circa1974)

• MonitorsitsbetweenoneormoreOSesandHW

• GivestheillusionthateachOScontrolstheHW

• Monitormul<plexesrunningOSes

• Alevelofindirec<on:appsassumeseparateCPU,unlimitedmemory;nowanotherlayertoprovidesimilarillusiontoOS

Page 3: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

Today’sWorld

• WhyVMMsnow?AretherenewreasonsforusingVMMs?

• Whatarethekeychallenges/issuesinbuildingVMMs?

Page 4: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

ResurgenceinVMs

• SparkedbyworkonDisco(systemfromStanford/Rosenblum)

• ResultedinVMware--nowamarketleaderinvirtualiza<on

Page 5: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

VMObserva<ons

• Instruc<on-setarchitecturesisoneofthefewwell-documentedcomplexinterfaces

• interfaceincludesmeaningofinterruptnumbers,etc.

• Anythingthatimplementstheinterfacecanexecutetheso[wareforthepla\orm

• Virtualmachineisaso[wareimplementa<onofthisinterface

Page 6: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

Outline

• Discoproject

• Designspaceforvirtualiza<on

• Xenproject

Page 7: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

Tradi<onalProcess-OSModel

• Processesruninusermode

• Processes“trap”intoOS

• whentheywantservicesfromtheOS

• orwhentheyhave“faults”

• OSrunsinprivileged(kernel)mode

• canexecuteinstruc<onstosetup/updateTLB

• canexecuteinstruc<onstoinstalltraphandlers

Page 8: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

VirtualizingCPU

• Basictechnique:limiteddirectexecu<on

• Idealcase:

• VMMjumpstofirstinstruc<onoftheOSandletstheOSrun

• Generalizeacontextswitchonprocessestomachineswitch

• savetheen<remachinestateofoneOSincludingregisters,PC,andprivilegedhardwarestate

• restorethetargetOSstate

• GuestOScannotrunprivilegedinstruc<ons(likeTLBops);VMMmustintercepttheseopsandemulatethem

Page 9: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

SystemCallPrimer

• Consider:open(char*path,intflags,mode_tmode)

open: push dword mode push dword flags push dword path mov eax, 5 push eax int 80h

• Processcode,hardware,andOScooperatetoimplementtheinterface

• Trap:switchestokernelmode,jumpstoOStraphandler;traphandlersregisteredbyOSatstartup

Page 10: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

VirtualizedPla\orm

• Applica<onremainsthesame

• TraphandlerisinsidetheVMM;executedinkernelmode

• WhatshouldtheVMMdo?

• doesnotknowthedetailsoftheguestOSes

• butknowswheretheOS’straphandleris

• (whentheguestOSademptedtoinstalltraphandlers,VMMinterceptsthecallandrecordstheinforma<on)

• sojumpintoOS;whichexecutestheactualhandler,performsanotherprivilegedinstruc<on(iretonx86),bouncesbackintoVMM

• VMMperformsarealreturnfromtrapandreturnstoapp

Page 11: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

Execu<onPrivileges

• OScannotbeinkernelmode

• Discoproject:MIPShardwarehadasupervisormode

• kernel>supervisor>user

• supervisorcanaccesslidlemorememorythanuser,butcannotexecuteprivilegedinstruc<ons

• Noextramode:

• runOSinusermodeandusememoryprotec<on(pagetablesandTLBs)toprotectOSdatastructuresappropriately

• x86has4protec<onrings,soextramodeisavailable

Page 12: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

VirtualMemoryPrimer

• TLB:fastcacheusedineveryinstruc<on

• TLBmisshandledbyOSinsomecases(so[wareTLB)

• Insomeothercases,hardwarefillsTLBusingapagetable

• OSmanagesthepagetable

• Hardwareisaconsumerofthepagetable

• Ques<on:whatissuesarisewithvirtualmachines?

• Howdowetacklesuchissues?

Page 13: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

VirtualizingMemory

• Normally:

• eachprogramhasaprivateaddressspace

• OSvirtualizesmemoryforitsprocesses

• Now:

• mul<pleOSescansharetheactualphysicalmemoryandmustdosotransparently

• Sowehavevirtualmemory(VM),physicalmemory(PM),andmachinememory(MM)

• OSmapsvirtualtophysicaladdressesviaitsper-processpagetables,VMMmapstheresul<ngphysicaladdresstomachinememoryviaitsper-OSpagetables

Page 14: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

2-LevelTransla<on

• Letusconsiderso[waremanagedTLB

• Inavirtualizedsystem:

• Applica<ontrapsintoVMM;VMMjumpstoOStraphandler

• OStriestoinstall(VM,PM)inTLB,butthistraps

• VMMinstalls(VM,MM),returnstoOSandthenApp

• VMMmaintains(PM,MM)mappingsandevendoespaging

Page 15: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

Informa<onGap

• VMMo[endoesn’tknowwhattheOSisdoing

• Forexample,ifOShasnothingelsetorun:

• gointoanidleloopandspinwai<ngforthenextinterrupt

• Anotherexample:

• mostOSeszeropagesbeforegivingtoprocessesforsecurity

• VMMalsohastothedothesame,resul<ngindoublework!

• Oneop<onisinferenceofOSbehavior,anotherisparavirtualiza<on

Page 16: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

DesignSpace

App is not modified App is modified

OS is not modified Disco(VMWare) ---

OS is modified Xen Denali

Page 17: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

Xen

• Keyidea:changethemachine-OSinterfacetomakeVMssimplerandhigherperformance

• Pros:

• bederperformanceonx86

• somesimplifica<onsinVMimplementa<on

• OSmightwanttoknowthatitisvirtualized

• Cons:mustmodifytheguestOS

• Aimsforperformanceisola<on

Page 18: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

Xen&Paravirtualiza<on

• VM-stylevirtualiza<ononanuncoopera7vearchitecture

• Supportfull-featuredmul<-usermul<-applica<onOSes

• contrastwithDenali:thinOSesforlightweightservices

• OSesareportedtoanew“x86-xeno”architecture

• calltoXenforprivilegedopera<ons

• por<ngrequiressourcecode

• Retaincompa<bilitywithOSAPI

• Mustvirtualizeapplica<onvisiblearchitecturefeatures

Page 19: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

FullyvirtualizingtheMMU

• Constraints:

• Hardware-basedTLB

• NotagsonTLB

• Useshadowpagetables

• GuestOSmaintains“virtualtophysicalmem”map

• VMMmaintains“virtualtomachinemem”map

• Guestreadsofpagetableisfree

• GuestwritesneedswitchingtoVMM

• Accessed/dirtybitsrequireupcallsintoOS

Page 20: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

ParavirtualizingtheMMU

• Paravirtualiza<onobviatestheneedforshadows

• modifytheguestOStohandlesparsememorymaps

• GuestOSesallocateandmanagetheirownPTs

• mapXenintotop64MBinalladdressspaces

• UpdatestopagetablesmustbepassedtoXenforvalida<on(usebatching)

• Valida<onrules:

• onlymapapageifownedbythereques<ngguestOS

• onlymapapagecontainingPTEsforread-onlyaccess

• Xentrackspageownershipandcurrentuse

Page 21: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

MemoryBenchmarks

• BodyLevelOne

• BodyLevelTwo

• BodyLevelThree

• BodyLevelFour

• BodyLevelFive

Page 22: Virtual Machines - pdfs.semanticscholar.org...Virtual Memory Primer • TLB: fast cache used in every instruc

OtherNiceIdeas

• Domain0:

• runtheVMMmanagementatuserlevel

• easiertodebug

• Networkanddiskarevirtualdevices

• virtualblockdevices:similartoSCSIdisks

• modeleachguestOShasavirtualnetworkinterfaceconnectedtoavirtualfirewallrouter