I/O virtualizáció - Méréstechnika és Információs Rendszerek Tanszék

Download Report

Transcript I/O virtualizáció - Méréstechnika és Információs Rendszerek Tanszék

Operációs rendszerek (vimia219)
Virtualizáció
dr. Micskei Zoltán
http://mit.bme.hu/~micskeiz
Budapesti Műszaki és Gazdaságtudományi Egyetem
Méréstechnika és Információs Rendszerek Tanszék
Virtualizáció
 Számítástechnika központi fogalma
 Virtualizáció: erőforrás tényleges fizikai
tulajdonságainak elrejtése a felhasználója elől, pl.
o egy erőforrást több logikaiként felajánlani,
o több fizikai erőforrást összefogni egybe…
 Virtuális memória, virtuális fájlrendszerek…
2
A virtualizáció buzzword alkalmazásai
Teljes
Kiforratlan
Alkalmazás
becsomagolása
terminológia!
számítógép
virtualizálása
Vékony
kliensek
Életciklus, telepítés,
automatizálás…
(private cloud)
Egygépes
termékek
Tárolórendszer
felépítésének
elfedése
+ OS szintű virtualizáció:
elkülönített futási környezet
kialakítása
Forrás: http://www.microsoft.com/virtualization/default.mspx
3
Virtuális gép taxonómia*
A VM egy
ABI-t lát
A VM csak egy
hardvert lát
Multiprogramozott OS
Java,
.NET…
Forrás: J. Smith and Ravi Nair, “The architecture of virtual machines,” IEEE Computer, vol. 38, 2005, pp. 32-38.
* taxonómia: tágabb ~ osztályozás tudománya. Szűkebb ~ fogalmak közötti kapcsolatot megadó struktúra
4
Virtuális gép taxonómia (részletesebb)
Forrás: Scope Alliance, Virtualization: State of the Art, 2008.
5
Platform virtualizáció
 Platform virtualizáció: teljes számítógép
virtualizálása, egy gépen több OS futtatása
o Elnevezés még: szerver, számítógép, hardver
virtualizáció…
 Elemek:
o Gazda gép (host machine) = fizikai gép
o Vendég gép (guest machine) = virtuális gép
o Virtual Machine Monitor (VMM): a virtuális gépeket
kezelő program
6
Platform virtualizáció története
 ~1960 - IBM CP-40 rendszere
o virtualizáció a mainframe
termékvonal része
 x86 virtualizáció
o Sokáig lehetetlennek tűnt
o 1997: Stanford, Disco projekt
o 1998: VMware megoldás
o 2000- További megoldások
 Jelenleg: külön iparág alakult már
7
Miért jó a platform virtualizáció?







Tesztrendszer kiépítése
HW konszolidáció
Régi rendszerek (legacy systems)
On-demand architektúra
Rendelkezésre állás, katasztrófa védelem
Hordozható alkalmazások
…
8
Platform virtualizáció architektúrái
 Kétféle megközelítés:
App.
GUEST
App.
App.
Menedzsment
App.
App.
App.
OS
OS
Menedzsment
OS
OS
OS
Oprendszer Virt. szoftver
Virt. szoftver
Hardver
Hardver
Hosted
HOST
Jellemzően desktop megoldások:
VMware Workstation, Player,
Sun/Oracle VirtualBox,
MS VirtualPC, KVM
Bare-metal
Jellemzően szerver megoldások:
VMware ESXi, Xen,
MS Hyper-V
9
További alkalmazás: mobil virtualizáció
Bring Your Own Device (BYOD)
Funkciók elkülönítése
10
Elméleti alapok
Elméleti alapok - Követelmények
Követelmények egy virtualizációs megoldástól:
 Azonosság: a virtuális gépen futtatott
programok ugyanazt az eredményt adják
 Biztonságosság: a VMM kezeli az összes hardver
erőforrást
 Hatékonyság: a vendég gép utasításainak nagy
része beavatkozás nélkül fut
Gerald J. Popek, Robert P. Goldberg: Formal Requirements for Virtualizable Third
Generation Architectures. Commun. ACM 17(7): 412-421 (1974)
12
Alapvető probléma
 Vendég gépektől védeni kell a rendszert
 Pl.: HLT (Halt) utasítás kiadása
o Elvárt: csak a vendég álljon le
o Ha végrehajtanánk: mindenki leáll
 Megoldás: VMM felügyelje a vendég utasításait
o Privilegizált utasítások kezelése
13
Elméleti alapok
• CPU virtualizáció
• Memória virtulizáció
• I/O virtualizáció
Alapvető módszerek – Tiszta emuláció
Virtuális gép
Alkalmazás
Teljes virtuális HW állapot
eltárolása az emulátorban
(regiszterek, flag-ek)
Virtuális HW
Minden utasítást megvizsgál a VMM
Emulátor
Virtuális HW
állapota
HW
Alkalmazza a hatását az emulátorban,
átalakítja a hívást, végrehajtja
Előny:
• Más CPU is emulálható
Hátrány:
• Lassú
15
Alapvető módszerek – Trap and emulate
Virtuális gép
Alkalmazás
Virtuális HW
Emulátor
Virtuális HW
állapota
HW
Trap: hardveres kivételkezelő rutin ami
után a végrehajtás folytatódhat
A nem privilegizált utasítások közvetlenül
a valós CPU-n hajtódnak végre
A privilegizált műveletek trap-et
váltanak ki, és a VMM veszi
át a végrehajtást
HW támogatás szükséges:
• védelmi szintek (pl. x86-on ring)
• virtuális gép alacsony védelmi szinten
• privilegizált utasítások nem megfelelő
szinten kiadva trap-et okoznak
16
x86 virtualizáció korlátai
 Egyes architektúrák könnyen virtualizálhatóak, az
x86 nem ilyen volt
 ~250 utasításból 17 megsérti a klasszikus
feltételeket, pl.
 POPF utasítás: EFLAGS regisztert módosítja
o Ha nem ring 0-n adjuk ki, akkor nem ír felül bizonyos
biteket, és nem is dob kivételt
 Privilegizált állapot kiolvasható
o Virtuális gép megtudhatja, hogy virtualizált
Következmény: nem használható a
trap & emulate módszer a klasszikus x86 esetében
17
Megoldások az x86 CPU virtualizációra
 Binary translation (szoftveres)
 Paravirtualizáció
 Hardveres virtualizáció
18
Binary translation
 utasítások nagy része
közvetlenül fut
 privilegizált utasítások
átírása futás közben
 nem igényel forráskódot
 átírt változatot eltárolja
 vendég OS nem tud
arról, hogy virtualizált
19
Binary translation – példa
Guest Code
vEPC
mov
Translation Cache
ebx, eax
cli
mov
ebx, eax
mov
[VIF], 0
and
ebx, ~0xfff
and
ebx, ~0xfff
mov
ebx, cr3
mov
[CO_ARG], ebx
sti
call
HANDLE_CR3
ret
mov
[VIF], 1
test
[INT_PEND], 1
start
jne
call
HANDLE_INTS
jmp
HANDLE_RET
Forrás: Carl Waldspurger, Introduction to Virtual Machines
20
Paravirtualizáció
 Fejlesztők módosítják a vendég OS forrását
 Problémás utasítások lecserélése
 Hypercall: VMM-et hívja közvetlen
21
Hardveres virtualizáció
 ~2005: Intel Virtualization Technology (VT-x)
és AMD AMD-V
 HW-es támogatás: root mode, VMCS
o Utasítások, pl.: VMCALL, VMLAUNCH
 Működik a trap &
emulate módszer
22
Melyik a legjobb/leggyorsabb módszer?
 Folyamatosan változik a válasz
o környezettől, terheléstől is függ
o HW virtualizáció kezdetben kiforratlanabb, mint a BT
 Megoldások több módszert használnak vegyesen
Szoftveres (BT)
Paravirtualizáció
Hardveres (Intel VT-x,
AMD-V)
VMware
ESX/ESXi
Microsoft
Hyper-V
Xen
+
- (már nem)
+ (részben)
+
+
+
+
23
Elméleti alapok
• CPU virtualizáció
• Memória virtulizáció
• I/O virtualizáció
Ismétlés
Hogy néz ki a virtuális memória -> fizikai memória
leképezés lapszervezés esetén?
25
Memória virtualizálása - szoftveres
Vendég laptáblák
VM1
VM2
Vendég: virtuális
memória
Vendég: „fizikai”
memória
Gazda: fizikai
memória
VM allokációs
laptáblák
Kétszeres címfordítás helyett:
árnyék laptáblák
GOND: szinkronizálás
26
Memória virtualizálása - paravirtualizáció
 Árnyék laptáblák használata itt is
 Vendég OS forrását módosítják
 Ha a vendég módosítja a laptábláit, akkor
értesítse a VMM-et is erről
27
Memória virtualizálása - hardveres
 HW támogatás az újabb CPU-kban
o AMD Rapid Virtualization Indexing , Intel Extended Page Tables
 Beágyazott laptábla (Nested page table)
o vendég fizikai -> gazda fizikai leképezés eltárolása
o cím leképezési rutin ezt is bejárja
 TLB bejegyzések azonosítóval ellátása
 Nagy teljesítménynövekedés:
o 2008. 04., KVM: MMU paravirtualization is dead
o 2009., VMware: Performance Evaluation of AMD RVI
Hardware Assist, akár 42%-os növekedés is
28
Elméleti alapok
• CPU virtualizáció
• Memória virtulizáció
• I/O virtualizáció
I/O eszközök kezelése (szoftveres)
Virtuális gép
Vendég OS
Normál driver
A teljes, valós
kommunikáció
emulálása
VMM
Emulált
virtuális HW
HW kezelő
I/O eszköz
30
I/O eszközök kezelése (paravirt.)
Virtuális gép
Virtuális gép
Vendég OS
Vendég OS
Normál driver
Paravirt. driver
VMM
Emulált
virtuális HW
Egyszerűsített hívások,
adatstruktúrák
megosztása
HW kezelő
VMM
HW kezelő
I/O eszköz
I/O eszköz
 Speciális csomag telepítése szükséges a vendégben
o VMware Tools, Virtual PC Additions
o Mindig telepítsük a vendég gépen!
31
I/O eszközök kezelése (hardveres)
 Hardveres támogatás
o Intel VT-d, AMD IOMMU
o PCI szabvány kiegészítése: I/O Virtualization (IOV)
 I/O eszközök
o megosztása virtuális gépek között
o közvetlen hozzárendelése egy virtuális géphez
32
Megoldások, cégek, termékek
Játékosok
http://www.virtualization.info/radar/
34
Játékosok – 2
ESXi, vSphere…
nyílt forrású hypervisor
XenServer, XenApp
Hyper-V, System Center
Solaris Containers, Oracle VM,
VirtualBox
Kernel based Virtual Machine (KVM)
mainframe, powerVM
…
35
DEMO Központi menedzsment
 Erőforráskészlet – korlátozások, garanciák
 VM térkép
 Teljesítmény mérése
 Live Migration – virtuális gépet futás közben
átrakjuk másik gépre
36
Cloud computing
???
37
Cloud computing
Cloud
38
Számítási felhők rétegei
IaaS
• Virtuális gépet kapunk
• Amazon EC2, RackSpace…
PaaS
• Futtatókörnyezetet kapunk
• Java konténer, .NET, adatbázis…
• MS Azure, Google AppEngine…
SaaS
• Szolgáltatást érünk el
• Google Docs, SalesForce CRM…
39
Kitekintés: Mirage OS
40
További információ
 Szakirány:
 Informatikai technológiák szakirány, Rendszertervezés ágazat,
(pl. Intelligens rendszerfelügyelet tantárgy)
 Választható tárgy (ősz):
 Virtualizációs technológiák és alkalmazásaik
 Cikk:
o Ole Agesen et al.: The evolution of an x86 virtual
machine monitor, SIGOPS Oper. Syst. Rev. 44, 4
(December 2010)
41
Összefoglalás
 Virtualizáció: növekvő jelentőségű
 Ellentmondásos terminológiák
 Versengő technológiák, rengeteg gyártó
 Operációs rendszerek
o Funkciók megvalósítása a hypervisor-ban
o Kisebb jelentőség?
42