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