Memória és perifériák virtualizációja. Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák https://www.vik.bme.hu/kepzes/targyak/vimiav89/

Hasonló dokumentumok
Utolsó módosítás:

Utolsó módosítás:

Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák

Virtualizáció. egy hardveren több virtuális rendszer működik egyszerre, virtuális gépekben futó önálló vendég (guest) operációs rendszerek formájában

Operációs rendszerek III.

Virtualizációs technológiák és alkalmazásaik (VIMIAV89) Házi feladat: Intel VT-d (IOMMU) technológia részleteinek megismerése

Utolsó módosítás:

Utolsó módosítás:

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

Virtualizációs technológiák és alkalmazások. Házi feladat. A Virtualbox. készítette: Andrus Tamás

Virtualizációs Technológiák Operációs rendszer szintű virtualizáció Konténerek Forrás, BME-VIK Virtualizációs technológiák

Utolsó módosítás:

UNIX / Linux rendszeradminisztráció

Operációs rendszerek. Az NT memóriakezelése

Fábián Zoltán Hálózatok elmélet

Virtualizációs Technológiák Bevezetés Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák

VIRTUALIZÁCIÓ KÉSZÍTETTE: NAGY ZOLTÁN MÁRK EHA: NAZKABF.SZE I. ÉVES PROGRAMTERVEZŐ-INFORMATIKUS, BSC

Az előadás magáncélra szabadon felhasználható. Köz- és felsőoktatásban felhasználható, csak előtte kérlek írj egy t nekem.

Az operációs rendszer szerkezete, szolgáltatásai

Dr. Illés Zoltán

Operációs rendszerek az iskolában

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Könyvtári szervervirtualizáció Oracle Virtual Machine platformon

8. Memória management

Számítógépek felépítése

Számítógép Architektúrák

Mikrorendszerek tervezése

Operációs rendszerek. Folyamatok kezelése a UNIX-ban

Szalai Ferenc

Hogyan működtethető a telefonrendszer virtuális környezetben? Mészáros Tamás Műszaki fejlesztési vezető

Operációs rendszerek. Bemutatkozás

OPERÁCIÓS RENDSZEREK. Elmélet

Számítógép felépítése

Számítógép architektúrák

Virtualizációs technológiák Linux alatt (teljesítményteszt)

Az előadás magáncélra szabadon felhasználható. Köz- és felsőoktatásban felhasználható, csak előtte kérlek írj egy t nekem.

Programozás alapjai. 10. előadás

8. témakör. Memóriák 1. Számítógép sematikus felépítése: 2.A memória fogalma: 3.A memóriák csoportosítása:

Operációs rendszerek Memóriakezelés 1.1

Operációs Rendszerek MSc

Operációs rendszerek. Az NT folyamatok kezelése

Hardver összetevők ellenőrzése Linux alatt. Hardverguruk előnyben...

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

Optimalizáció ESX-től View-ig. Pintér Kornél ügyfélszolgála3 mérnök

Informatikai technológiák laboratórium I március 25.

Hardver Ismeretek IA32 -> IA64

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

Segesdi Dániel. OpenNebula. Virtualizációs technológiák és alkalmazásaik BMEVIMIAV ősz

Felhő alapú hálózatok (VITMMA02) Virtualizáció

Problémák. Lehet hogy a program nem fér be a memóriába Mozgatás diszkre és vissza A programok lokalitásának elve

Szerver virtualizációs technológiák

Felhő alapú hálózatok (VITMMA02) Virtualizáció

Operációs rendszerek. Az X Window rendszer

Alkalmazás és megjelenítés virtualizáció

Processzus. Operációs rendszerek MINB240. Memória gazdálkodás. Operációs rendszer néhány célja előadás Memóriakezelés

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

A számítógép egységei

Számítógépes virtualizáció

Utolsó módosítás:

I/O virtualizációs módszerek

elektronikus adattárolást memóriacím

Operációs Rendszerek II. Első verzió: 2009/2010. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter

VIRTUALIZÁCIÓ. 2006/2007. tavaszi félév Tanulmány Esettanulmány: a XEN VMM KÉSZÍTETTE: BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM

Operációs Rendszerek II.

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

Adatbázis és alkalmazás konszolidáció Oracle SPARC T4/5 alapon

SC Kérdés. SC Kérdés. SC Kérdés

Informatika érettségi vizsga

386 processzor címzés

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Virtualization. Avirtualizáció már közel 30 éve jelen van a mainframe-rendszereken, azonban csak

VirtualBox, Debian telepítés

Bepillantás a gépházba


R320 Szerver. Műszaki adatok

Dr. Schuster György október 30.

Párhuzamos programozási platformok

A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem)

Uniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna

Bevezetés a számítástechnikába

Párhuzamos programozási platformok

Máté: Számítógép architektúrák

Előadás_#12. Előadás_12-1 -

5. tétel. A számítógép sematikus felépítése. (Ábra, buszok, CPU, Memória, IT, DMA, Periféria vezérlő)

SZÓBELI ÉRETTSÉGI TÉMAKÖRÖK

6.2. TMS320C64x és TMS320C67xx DSP használata

Melyek a Windows Server 2008 R2 tiszta telepítésének (Clean Install) legfontosabb lépései?

Hálózati operációs rendszerek II. Novell Netware 5.1 Szerver

Az interrupt Benesóczky Zoltán 2004

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

Storage optimalizálás egyetemi hálózatokban

Hitachi Flash Újdonságok. Szokol Zsolt Senior Solution Consultant 2016 március

Az Invitel adatközponti virtualizációja IBM alapokon

Virtualizáció szabad szoftverekkel. Mátó Péter

Számítógép Architektúrák

Mobil operációs rendszerek. Készítette: Kisantal Tibor

SUSE Linux megoldások. Horváth Gábor Kálmán vezető tanácsadó

MS Windows XP Professional SP2 telepítés virtuális gépre.

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák)

Átírás:

Memória és perifériák virtualizációja Kovács Ákos Forrás, BME-VIK Virtualizációs technológiák https://www.vik.bme.hu/kepzes/targyak/vimiav89/

Emlékeztető: A három virtualizációs lehetőség Virtualizáció az utasításokat (egy részüket) változatlanul hagyja végrehajtani, csak a problémás privilegizáltakkal kell valamit kezdeni Szoftveres virtualizáció (Trap & emulate + bináris fordítás) Paravirtualizáció (módosítjuk a vendég OS forrását) Hardveres virtualizáció (Trap & emulate, teljesen hardveres támogatással)

Tartalom Előző rész tartalmából: CPU virtualizáció A három alap virtualizációs megközelítés Memória virtualizáció Virtuális memória az operációs rendszerekben Virtuális memória a platform virtualizációban Virtuális memóriakezelés speciális képességei: megosztás, késleltetett allokáció, memória-ballon Perifériák virtualizációja Perifériák programozói felülete általában Periféria virtualizációs architektúrák

Virtuális memóriakezelés Modern CPU-k tartalmaznak memóriakezelő egységet (MMU memory management unit) Feladata virtuális memóriacímeket leképezni fizikaira Mi is az a virtuális memóriacím? Hol használható? CPU felhasználói (pl. ring 1-3) módjaiban virtuális címekkel dolgozik (nem feltétlenül, de a modern OS-eknél ez igaz) A folyamatok nem a fizikai memóriacímeket látják Cél: áthelyezhető legyen az oprendszer felett futó alkalmazások kódja, ne csak fix bedrótozott helyen tudjon futni (akár szoftveresen is megoldható lenne ) Cél2: eközben a teljesítmény ne romoljon számottevően (ehhez már hardver támogatás is kell)

Fizikai memória Virtuális memóriakezelés Cím: 0 Cím: N-1 Cím: 0 Cím: M-1 Folyamat memóriája A folyamat egy 0-tól induló összefüggő virtuális címtartományt lát. Tehát minden pointer a virtuális címtartományban értelmezett.

Fizikai memória Virtuális memóriakezelés Cím: 0 Cím: N-1 Cím: 0 Cím: M-1 Cím: 0 Cím: K-1 Folyamat 1 memóriája Folyamat 2 memóriája Ez minden folyamatra igaz

Virtuális memória megvalósítása lapokkal Memória lapok (pages) Virtuális fizikai memória cím hozzárendelés Tipikusan (x86) 4 kb méretű allokációs egységekben A cím utolsó 12 bitje a lapon belüli cím A cím első 20 bitje kétszintű (10-10 bit) laptábla cím Létezik óriás lap üzemmód is, ilyenkor csak egyszintű laptábla van, ezen belül 22 bit (4MB) pozíciócím Lap könyvtár (page directory) első 10 bit Lap tábla (page table) második 10 bit Pozíció a lapon belül 12 bit Fizikai memória címtartomány

Virtuális memória megvalósítása lapokkal További jellegzetességek: A laptáblák is a fizikai memóriában foglalnak helyet Csak az operációs rendszer kernel módosíthatja őket Minden folyamathoz másik táblakészlet tartozik, a kernel kontextus váltáskor cseréli ki mindig a megfelelőre Az MMU a CPU laptábla regisztere alapján tudja, hogy hol kell keresni legfelső szintű lap könyvtárat Automatikusan feloldja a virtuális címeket fizikaira, a virtuális címeket használó kód módosítás nélkül fut A virtuális címtartományból kicímzés vagy read-only bittel jelölt lapra írás hibát (fault) vált ki a CPU-ban

Tartalom Előző rész tartalmából: CPU virtualizáció A három alap virtualizációs megközelítés Memória virtualizáció Virtuális memória az operációs rendszerekben Virtuális memória a platform virtualizációban Virtuális memóriakezelés speciális képességei: megosztás, késleltetett allokáció, memória-ballon Perifériák virtualizációja Perifériák programozói felülete általában Periféria virtualizációs architektúrák

Memória virtualizálása A Ring 0-tól eltérő futó folyamatok virtuális memóriát látnak A virtuális -> fizikszintekenai cím feloldása hardverben történik laptáblák alapján. Gyors, TLB cache-eli fizikai-virtuális cím hozzárendelést. Használhatjuk-e ezt a vendég gépek memóriájához? Több szint kell: a VM-ben is kell saját laptábla a saját alkalmazásokhoz De a CPU ilyet nem támogat VM1 VM2 Vendég: virtuális memória Vendég: fizikai memória Gazda: fizikai memória

Memória virtualizálása Folyamat Vendég laptábla Árnyék laptábla A virtuális gépben futó folyamat virtuális memóriája A virtuális gép fizikai memóriája VM allokációs laptábla Fizikai memória a hardverben

Memória virtualizálása Mi van, ha vendég kernel módosítani akarja a laptábláját? Megfelelően frissíteni kell az árnyék táblát is 1. Természetesen Trap and emulate, de hogyan? Read-only-ra állítjuk a vendég kernel számára látható laptáblákat, ha azt módosítani akarja, akkor jön a kivétel, átkerül a vezérlés a VMM-hez ami biztonságosan elvégzi a módosítást az árnyék táblán is 2. természetesen?! trap and emulate? A vendég kernel egyszerűen ne maga akarja módosítani a laptáblát, kérje meg a VMM-et erre 3. Hardveres kiegészítés több szintű laptáblák kezelésére Core i7 és Phenom processzoroktól kezdve van (EPT / RVI) Az egész árnyék tábla frissítési problémát hardveresen lekezeli

Tartalom Előző rész tartalmából: CPU virtualizáció A három alap virtualizációs megközelítés Memória virtualizáció Virtuális memória az operációs rendszerekben Virtuális memória a platform virtualizációban Virtuális memóriakezelés speciális képességei: megosztás, késleltetett allokáció, memória-ballon Perifériák virtualizációja Perifériák programozói felülete általában Periféria virtualizációs architektúrák

Extra memória virtualizálási lehetőségek Memórialap deduplikáció azonos tartalmú memórialapok megosztása több vendég VM között hasonlóképpen azonos lapok megosztása egy vendégen belül is gyakorlati haszna főleg speciális alkalmazásokban (Virtual Desktop Infrastructure), tipikusan több példány fut azonos OS-ből Megvalósítása gyors hash számítás, ez alapján egyezés keresés közösített lapok megbontása beleíráskor, copy-on-write elv Hasonló: memória tömörítés Egészen új lehetőség VMM-ekben (az ötlet persze régi) CPU költsége nagyon nagy lenne, ezért: az inaktív, amúgy háttértárra kilapozásra ítélt lapokat szokás tömöríteni -> a ki/be tömörítés még így is gyorsabb a merevlemeznél Nem csodaszer kompromisszumot kell kötni a tömörítetlen és tömörített lapoknak fenntartott memória mérete között, csak korlátozott méretben előnyös

Extra memória virtualizálási lehetőségek Dinamikus allokáció: Ami memóriát nem használ a vendég, azt ne is kapja meg Gyakorlati haszna önmagában elenyésző, a legtöbb OS az összes szabad memóriát disk cache-nek használja Háttértárra swappelhetők a lapok a vendég OS tudta nélkül Memória felfújás (memory ballooning) Ha kifogy a host memóriája, akkor elvesz a vendégtől Egy ágens vagy driver a vendég kernelben (paravirtualizációs szemléletmód) elkezd memóriát foglalni a VMM utasítására. A VMM az ágens által foglalt memórialapok mögé nem is allokál fizikai memóriát, így nyer vissza helyet Egyrészt a vendég fel fog adni a disk cache-ből, Másrészt el fog kezdeni kilapozni a saját swap területre, elkerüli, hogy a host is swappeljen

Kitekintés: VMware ESXi memóriakezelés Jelmagyarázat: granted (lila) active (kék) overhead (sárga) zero (piros) consumed (zöld) shared (szürkés-kék)

Tartalom Előző rész tartalmából: CPU virtualizáció A három alap virtualizációs megközelítés Memória virtualizáció Virtuális memória az operációs rendszerekben Virtuális memória a platform virtualizációban Virtuális memóriakezelés speciális képességei: megosztás, késleltetett allokáció, memória-ballon Perifériák virtualizációja Perifériák programozói felülete általában Periféria virtualizációs architektúrák

Perifériákról általában A perifériák kezelése jellegzetesen CPU felprogramozza a perifériát, regiszterek átírása Periféria eseményt jelez a CPU felé, megszakítás Ilyenkor valamilyen módon le kell kezelni az eseményt, valamit reagálni kell rá (driver felelőssége) Periféria maga elvégzi a feladatát, közvetlen memória hozzáférés Kiolvas elküldendő adatot, vagy berak beérkező adatot a memóriába Külön lefoglalt fizikai memóriaterület kell erre a célra

Perifériákról általában Az üzenet egy saját (gyakran szabványos) protokollon keresztül jut el a perifériához Cél periféria Ezt szeretném programozni Az adapter modell Adapter Az adaptert kell megkérni, hogy adja át a perifériának az üzenetet

Perifériákról általában Perifériának szánt konkrét utasítás, adat Rétegzett programozási modell (pl. USB, SCSI, SATA): Cél periféria Periféria protokollja Adapter programozás Az adapter modell Adapter

Tartalom Előző rész tartalmából: CPU virtualizáció A három alap virtualizációs megközelítés Memória virtualizáció Virtuális memória az operációs rendszerekben Virtuális memória a platform virtualizációban Virtuális memóriakezelés speciális képességei: megosztás, késleltetett allokáció, memória-ballon Perifériák virtualizációja Perifériák programozói felülete általában Periféria virtualizációs architektúrák

Meghajtó Backend Ütemező Teljes periféria emuláció Virtuális gép Meghajtó Virtualizációs réteg Backend Távoli hozzáférés szerver Meghajtó Backend Statikus Hozzárendelés Meghajtó Meghajtó Meghajtó Hardver

Lehetőségek perifériák virtualizációjára I. Emuláció Trap and emulate -> az I/O műveleteket kell elfogni Adódik: ring 1-3-ban az I/O műveleteket elfogja a CPU Memóriatartományba illesztett periféria: read-only memórialappal fogható el Valamilyen létező hardver működését emuláljuk Szoftveres komponens segítségével: backend Hardver pontos emulálása (regiszterek, megszakítás, DMA) Vendégben használható a klasszikus meghajtó program Minden I/O művelet egy kör a VMM-ben -> lassú

Lehetőségek perifériák virtualizációjára II. Paravirtualizáció Egyszerűsítsük az emulált hardvert, tervezzünk nem létező fajta hardvert, amit a legkevesebb művelettel lehet vezérelni Egy összetett művelet akár csak egy VMM hívás Saját hardverek, amik magas szintű műveleteket végeznek Pl. hoszt fájlrendszerhez hozzáférés Itt kezd keveredni a virtualizáció és az OS Speciális meghajtót kell telepíteni a VM-ben!

Paravirtualizált I/O eszközök (VMware Tools, Hyper-V Integration Components kell)

További információ Carl Waldspurger and Mendel Rosenblum. I/O virtualization. Commun. ACM 55, 1 (January 2012), 66-73. DOI=10.1145/2063176.2063194 Abramson, D. et al. "Intel Virtualization Technology for Directed I/O." Intel Technology Journal. (August 2006). Darvas Dániel, Horányi Gergő. Intel és AMD technológiák a hardveres virtualizáció megvalósítására, virttech házi feladat, 2010. Garaczi Tamás. Intel VT-d (IOMMU) technológia részleteinek megismerése, virttech HF, 2010.