Virtualizáció - Méréstechnika és Információs Rendszerek Tanszék

Download Report

Transcript Virtualizáció - Méréstechnika és Információs Rendszerek Tanszék

Operációs rendszerek alapjai (vimia024)
Virtualizáció
Micskei Zoltán
Előadások: http://www.mit.bme.hu/~micskeiz
dr. Kovácsházy Tamás kiegészítéseivel az Operációs
Rendszerek (vimia219) tárgy fóliái alapján
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
Vékony
kliensek
Alkalmazás
becsomagolásaEgyre fontosabb:
terminológia!
dinamikus
Adatközpont,
életciklus kezelés,
konvertálás,
telepítés
…
számítógép
virtualizálása
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
Egygépes
termékek
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)
Kiegészítő
anyag
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 alakul
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ó
 Kétféle megközelítés:
App.
GUEST
App.
App.
Menedzsment
App.
App.
App.
OS
OS
Menedzsment
OS
OS
OS
Oprendszer Virt. szoftver
Fő
komponens:
VMM –
Virtual
Machine
Monitor
Virt. szoftver
Hardver
Hosted virtualizáció
Hardver
HOST
Jellemzően desktop megoldások:
VMware Workstation, Server,
Player, Sun VirtualBox,
MS VirtualPC, KVM, UML
Bare-metal
virtualizáció
Neve:
VMM – Virtual
Machine
Monitor
Hypervisor
(Jellemzően) szerver megoldások:
VMware ESX Server, Xen
Enterprise, MS Hyper-V
9
Új terület: mobil virtualizáció
10
DEMO Virtualizáció érdekességek
 Seamless window mód
o A guest alkalmazások direkt módon a hoszt egy ablakában
jelennek meg, „nem lehet a guest OS-t látni”.
 Állapot elmentése
o A futó gép állapota elmenthető, lényegében a virtuális gép
a hibernáláshoz hasonló módon inaktív állapotba
helyezhető, és az elmentett állapot másolható.
o A futó gép akár másik host gépre migrálható így.
 P2V/V2P konverzió
o Fizikai gép virtuális gépbe mozgatása (a régi gép az újon
belül pl.).
o Virtuális gép fizikai gépbe mozgatása (tesztrendszerből
végleges HW-én futó gép, ha ez pl. teljesítmény okokból
szükséges)
11
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)
13
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
14
Kiegészítő
anyag
Elméleti alapok
• CPU virtualizáció
• Memória virtulizáció
• I/O virtualizáció
Alapvető módszerek – Tiszta emuláció
Kiegészítő
Virtuális gép
anyag
Alkalmazás
Virtuális HW
Emulátor
Virtuális HW
állapota
HW
Teljes virtuális HW állapot
eltárolása az emulátorban
(regiszterek, flag-ek)
Minden utasítást megvizsgál a
VMM
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ú
16
Alapvető módszerek – Trap and emulate
Kiegészítő
anyag 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 vagy érzékeny műveletek trapet 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
17
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 a CS szegmens regisztert olvasva
megtudhatja,
hogy virtualizált
Következmény:
nem használható a
trap & emulate módszer a klasszikus x86-on
18
Megoldások az x86 CPU virtualizációra
 Binary translation (szoftveres)
 Paravirtualizáció
 Hardveres virtualizáció
19
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
20
Paravirtualizáció
 Vendég OS forrásának módosítása
 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
Kiegészítő
anyag
o környezettől, terheléstől is függ
o HW virtualizáció kezdetben kiforratlanabb, mint a BT
 Összemosódnak a határok
o Megoldások több módszert használnak vegyesen
2006. VMware: BT is better than HW assisted virtualization
2008. VMware: Paravirtalization + BT is better than pure BT
2009. Comparing Hardware Virtualization
Performance Utilizing VMmark v1.1
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
 Vendég OS forrásának módosítása
 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
Kiegészítő
anyag
I/O eszközök kezelése (paravirt.)
Virtuális gép
Vendég OS
Kiegészítő
anyag
Virtuális gép
Vendég OS
Normál driver
VMM
Emulált
virtuális HW
Paravirt. driver
Egyszerűsített hívások,
adatstruktúrák
megosztása
VMM
HW kezelő
HW kezelő
I/O eszköz
I/O eszköz
 Speciális csomag telepítése 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
ESX, Virtual Infrastructure…
nyílt forrású hypervisor
Presentation Server, XenServer
Virtual PC, Hyper-V, VM Manager
Solaris Containers, Oracle VM,
VirtualBox
Kernel based Virtual Machine
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és
 Live Migration – virtuális gépet futás közben
átrakjuk másik gépre
36
Cloud computing
???
37
Cloud computing
Kiegészítő
anyag
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
Virtual Appliance
 Appliance: célhardver (pl. tűzfal)
 Virtual Appliance:
o adott célra összeállított virtuális gép
 Előny:
o nincs telepítés, függőség
o csak a feltétlen szükséges
komponensek vannak telepítve
 JeOS
o Just enough Operating System
 Operációs rendszerek szerepe?
40
További információ
 Tantárgyak:
 Informatikai technológiák szakirány, Rendszertervezés ágazat,
Intelligens rendszerfelügyelet
 Választható ősszel: Virtualizációs technológiák és alkalmazásaik
 Cikkek:
o VMware: A Comparison of Software and Hardware
Techniques for x86 Virtualization
o Xen and the Art of Virtualization
o A brief architecture overview of VMware ESX, XEN and
MS Viridian
42
Ö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 ?
43