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