Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Operációs rendszer szintű virtualizáció Tóth Dániel, Szatmári.

Slides:



Advertisements
Hasonló előadás
Virtualizációs technikák
Advertisements

Bevezető, Virtualizációs technológiák áttekintése
Bevezető, Virtualizációs technológiák áttekintése
Virtualizált Biztonságos BOINC Németh Dénes Deák Szabolcs Szeberényi Imre.
Számítógépes operációs rendszerek
Az operációs rendszer Egy olyan szoftver, ami a számítógépeink használatához nélkülözhetetlen. Főbb feladatai: programok betöltése, futtatása perifériák.
Az operációs rendszer.
Licencelés virtualizált környezetben
INTERNET.
HÁLÓZATOK.
Hálózati architektúrák
Az operációs rendszer.
1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Szolgáltatásbiztonsági kérdések virtualizált környezetben.
Szerver oldali virtualizáció
1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Szerveroldali virtualizáció Tóth Dániel, Micskei Zoltán.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Bevezető, Virtualizációs technológiák áttekintése Micskei.
Kiszolgáló oldali virtualizáció
Kiszolgáló oldali virtualizáció
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Kiszolgáló oldali virtualizáció Tóth Dániel, Micskei Zoltán,
Kliens oldali virtualizáció 1
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Memória és perifériák virtualizációja Micskei Zoltán, Tóth.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Alkalmazás és megjelenítés virtualizáció Micskei Zoltán.
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Kliens oldali virtualizáció Micskei Zoltán
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Memória és perifériák virtualizációja Tóth Dániel Virtualizációs.
Fajfrik Dóra tanárjelölt munkája alapján
Virtualizáció Korszerű Adatbázisok Ferenci László
Az operációs rendszer.
Pásztor György Szegedi Egyetemi Könyvtár OpenVZ vs. VServer.
4. Gyires Béla Informatikai Nap május 6.1 Márton Ágnes Debreceni Egyetem Informatikai Kar Informatikai Rendszerek és Hálózatok Tanszék A Virtual.
BE KI Perifériák Számítógép.
Fájlrendszerek: Linux EXT Csernik Márió 9.A.
Számítógéphálózatok A hálózatok kialakulása A hálózatok osztályozása
Doros Roland Mérnök-informatikus hallgató BMF-Nik
Storage Virtualization Presentation Virtualization Server Virtualization Desktop Virtualization Application Virtualization SYSTEM CENTER.
Szabó Gábor SZGRAHI.ELTE Számítógép Virtualizáció ELTE-IK 2011.
Az operációs rendszer.
Virtualizáció Számítógép architektúrák I. Gyakorlat Radó János.
Virtualizáció Számítógép architektúrák I. Gyakorlat Radó János.
1 Operációs rendszerek Az NT folyamatok kezelése.
Hibrid felhő Privát-, publikus és hoster felhők összekapcsolása
Windows Server 2012 Kiadások, licencelés, lehetőségek
Demo/teszt környezetek Szerver konszolidáció Adatközpontok alapja.
Számítógépes üzemmódok
Operációs rendszer.
1 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Modellezés gyakorlat Micskei Zoltán
Hálózat kiépítésével lehetőségünk nyílik más számítógépek erőforrásainak használatára. Osztott háttértár használat: egy számítógép merevlemezének megosztásával.
1 C | © 2010 Cisco | EMC | VMware. All rights reserved. Úton a cloud computing (felhő modell) felé Slamovits Tibor, EMC üzletág-vezető, kormányzat.
Operációs rendszerek Balogh Zoltán PTE-TTK IÁTT Operációs rendszerek feladatai és csoportosításuk.
Az operációs rendszerek feladata, fajtái, felépítése
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Alkalmazás és megjelenítés virtualizáció Micskei Zoltán.
Magas rendelkezésre állású Hyper-V rendszer építése
Storage újdonságok Windows Server 2012 R2 konferencia Kovács Zoltán Architect Microsoft Magyarország Kocsis Attila
Az operációs rendszer.
Óravázlat Készítette: Toldi Miklós
Szoftverek.
Felhő PC demonstráció Gergely Márk MTA SZTAKI Laboratory of Parallel and Distributed Systems
Iskolai számítógépes hálózat bővítése Készítette Tóth László Ferenc.
2. Operációs rendszerek.
Piramis klaszter rendszer
A projekt az Európai Unió társfinanszírozásával, az Európa terv keretében valósul meg. Számítógép- hálózatok dr. Herdon Miklós dr. Kovács György Magó Zsolt.
Az operációs rendszer.
Újdonságok a FreeBSD 8.0 verzióban Ádám Szilveszter
Az operációs rendszer feladatai
IT ALAPFOGALMAK OPERÁCIÓS RENDSZEREK.
HPC: Hozzáférés és első lépések
Ubuntu – ismerkedés Fájlok és könyvtárak
Hálózati architektúrák
Docker (on Windows) Hogyan kerüljük el a csapdákat?
Kisvállalati hálózat kialakítása raspberry szerverrel
OPERÁCIÓS RENDSZEREK II.
Előadás másolata:

Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Operációs rendszer szintű virtualizáció Tóth Dániel, Szatmári Zoltán Virtualizációs technológiák és alkalmazásaik

Operációs rendszer szintű virtualizáció  Eddig platform virtualizációval foglalkoztunk Virt. Hardver OS Virt. szoftver App. OS App. Hardver OS App. -Ha megfelel, hogy azonos az OS kernel a vendég gépek között -Ha csak izoláció, erőforrás-korlátozás kell -> nem kell VMM, elég az OS alkalmazás szétválasztása -Ha megfelel, hogy azonos az OS kernel a vendég gépek között -Ha csak izoláció, erőforrás-korlátozás kell -> nem kell VMM, elég az OS alkalmazás szétválasztása Konténer

Operációs rendszer szintű virtualizáció  Operációs rendszer szintű virtualizáció – más néven konténer alapú virtualizáció o BSD-ken: Jail o Solaris: Containers, Zones o Linux alatt: OpenVZ (Parallels Virtuozzoból a Linux kernel módú részei), Linux VServer o AIX: WPAR (workload partitions) o Windows: Parallels Virtuozzo

Operációs rendszer szintű virtualizáció  nagyon kis költségű o elvileg nem 0 – csak éppen nem lehet kimérni olyan kicsi o konténerenként nincsenek további vendég kernelek  erőforrás virtualizációs és  erőforrás gazdálkodási szempontból problémamentes o nincs fixen lefoglalt memória, nem kell trükközés ballonozással stb. o nincs fixen lefoglalt háttértár – a hoszt fájlrendszere fájl szinten elérhető  biztonsági szempontból kevésbé jó izoláció  közös kernellel kell élni (azonos verzió, fordítási paraméterek)

OS szintű virtualizáció vs. Hypervisor  Hypervisor o Egy fizikai, számos virtuális hardver o Vegyes operációs rendszerek o Kisebb sűrűség o Kisebb teljesítmény  OS szintű virtualizáció o Egy fizikai hardver, nincs virtuális o Egy kernel, userspace példányok o Nagy sűrűség o Közel natív teljesítmény

Megvalósítás  Kezdetben volt a chroot… o A fájlrendszer gyökerét átirányíthatjuk egy alkönyvtárra (egy processzre vonatkozik!) o Cél: Általában: az abszolút fájl elérési útvonalak módosítása nélkül tudjunk több példányt fenntartani egy-egy fájlból Kicsit „antipattern” alkalmazás: biztonság növelése o Ez nem teljes körű izoláció, de sok esetben működik Kernel minden adatszerkezete közös (processz lista, hálózati interfész, IP, routing, sysctl beállítások…) A chrootból ráadásul ki is lehet navigálni a VFS adatszerkezeten keresztül… o Hogy is néz ki: egy teljes alap OS installációt készítünk egy alkönyvtárba, ami kicsit eltérő is lehet az eredetitől Általában véve a programkönyvtáraknak, konfig fájloknak meg kell lenniük a chroot-on belül is o Problémás globális könyvtárak: /proc, /sys, /dev, /tmp, /var, … Lehet mount binddal trükközni, de nem lesz tökéletes…

Megvalósítás  További probléma: o nincs elkülönítés a folyamatok között o nincs külön hozzáférés szabályozás o nincs erőforrás gazdálkodás  Megoldás: o Ne látszódjanak ki a kernel singleton erőforrásai… o Ehhez módosítani kell a kernelt Bevezetni a konténer fogalmát Minden rendszerhívást ellátni a konténer kontextus szerinti válogatással Singleton erőforrásokat dinamikusan példányosíthatóvá alakítani A konténerből kifele mutató referenciák mostantól biztonsági réseknek számítanak! o A módosítások ára: <1% teljesítményveszteség Nem átlagban, a rendszerhívásokra nézve ennyi! -> különösen I/O igényes feladatoknál lényegesen jobb teljesítmény a platform-virtualizációhoz képest

Alkotóelemek  Kernel o Névterek: virtualizáció és izoláció o Cgroups: erőforrás menedzsment o Checkpoint/Restart: live migration  Userspace eszközök o Konténer menedzsment parancssori eszközök  OS sablonok

Névterek  Minden konténer rendelekezik: o Fájlrendszer: chroot() o Folyamat fa (PID namespace) o Hálózat (NET namespace) o IPC objektumok (IPC namespace) o …

Erőforrás-gazdálkodás  CPU – a kernel beépített ütemezője, prioritáskezelője  Memória – a kernel beépített memóriakezelője, rlimit-tel megadható maximális foglalások)  Háttértár – a fájlrendszer egy alkönyvtára, quota rendszerrel korlátozható foglalás  Hálózat – a kernel beépített Ethernet hídja vagy routing táblája, pl. IPtables QoS paraméterekkel korlátozható  Egyéb perifériák – a kernelben lévő meghajtón keresztül

Erőforrás-gazdálkodás  CPU – a kernel beépített ütemezője, prioritáskezelője  Memória – a kernel beépített memóriakezelője, rlimit-tel megadható maximális foglalások)  Háttértár – a fájlrendszer egy alkönyvtára, quota rendszerrel korlátozható foglalás  Hálózat – a kernel beépített Ethernet hídja vagy routing táblája, pl. IPtables QoS paraméterekkel korlátozható  Egyéb perifériák – a kernelben lévő meghajtón keresztül Mi hiányzik?

Erőforrás-gazdálkodás  Azt szeretnénk, ha a konténerre vonatkozna a korlátozás, nem pedig az egyes folyamatokra  Hierarchikus erőforrás foglalás: o A folyamatok fa hierarchiába szervezettek (nemcsak Unix, Windows alatt is) o Ún. Beancounter rendszer, ami csoportok szerint összesíti a foglalást  A memóriafoglalás elég sokrétű probléma: o Alkalmazás virtuális/fizikai memórialapok o Cache lapok o Pufferek (socketek, hálózati kapcsolatok) o Megosztott lapok „igazságos” költségelszámolása o Néhány alkalmazás elég „zűrös” memóriafoglaló (Java VM) – kézi beállítást igényelhet

Checkpointing/Migration  Teljes konténer állapot o Menthető Futó folyamatok Megnyitott fájlok Hálózati kapcsolatok Memória szegmensek o Visszaállítható o Visszaállítható másik szerveren

Hozzáférés a vendég gépekhez  Szöveges konzol elérés van  Grafikus felület o általában nehéz, mert globális erőforrásokhoz (Unix alatt X Server, socket) igényel hozzáférést o Gyakorlatban használt megoldás: távoli elérés szerver indítása a konténerben, tipikusan VNC szerver  Fájlrendszer o Konténeren kívülről belátunk a konténer fájlrendszerébe o Konténeren belülről nem látunk kifelé  Folyamatok o Mint a fájlrendszernél…

DEMO  Linux alatti teljesen nyílt forrású megoldás o Container neve: VE – Virtual Environment o Gyors példányosítás sablonokból (template) (egy teljes alap OS fájlrendszer kép tömörítve) o Plan rendszer – memória és I/O korlátozási beállítások külön tárolása o Grafikus felhasználói felület: Vtonf (webes konzol)  Parallels Virtuozzo – Windows o Teljes kereskedelmi megoldás OS szintű kiegészítésekkel és integrált felhasználói felülettel o OpenVZ-vel azonos elveken épül fel OpenVZ

OpenVZ és LXC  OpenVZ o Történelmileg korábbi (2000) o Kernel patch-et igényel o Live migration-t támogat  LXC o Újabb kezdeményezés (2006) o Linux-VServer és OpenVZ utóda o Ma már a mainline Linux kernel része o Jelenleg is folyamatos fejlesztés alatt áll

Hálózati topológia  Pont-pont kapcsolat a konténer és a hoszt között  A hoszt hálózati interfészei között lehetőség van NAT vagy Bridged jellegű beállításra

Összefoglalás  Konténer alapú virtualizáció - eltérő koncepció a platform virtualizációtól o Közös kernel o Kisebb erőforrás igény o Operációs rendszer szintű erőforrásokat virtualizál o Jellemzően a host felől nézve a konténer átlátszó, belülről nézve átlátszatlan  OpenVZ, Parallels Virtuozzo, LXC o Linux illetve Windows környezetben nagyon hasonló megoldások o Konténerek példányosítása sablonokból o Erőforrás beállítások kezelése plan-ek alapján

További információ  OpenVZ:  Parallels Virtuozzo:  LXC:  Publikációk: o o o ep1&type=pdf ep1&type=pdf