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