UNIX / Linux rendszeradminisztráció VIII. előadás Miskolci Egyetem Informatikai és Villamosmérnöki Tanszékcsoport Általános Informatikai Tanszék
Virtualizáció Mi az a virtualizáció? Nagyvonalúan: számítógép erőforrások absztrakciója. (vö: OS, mint virtuális gép fogalma) Beszélhetünk virtuális eszközökről: diszk, nyomtató, konzol, hálózat, stb. Virtuális gép koncepció 1960-as években keletkezett virtuális gép: szoftver és/vagy hardver eszközök segítségével többféle feldolgozó felület biztosítása ma ez a platform virtualizáció első képviselője: IBM M44/44X rendszer
Virtualizáció Mi a virtualizáció célja? Szerver konszolidáció, alkalmazás konszolidáció, sandboxing, több végrehajtási környezet, eszközök biztosítása, különböző OS futtatása egyidejűleg, hibakeresés, szoftver migráció, szoftver előállítási környezet, Tesztelés, minőségbiztosítás.
Virtualizáció Mára számos formája alakult ki, különböző célú virtualizációnak. Ismert típusai: emuláció vagy szimuláció natív/teljes virtualizáció hardver támogatású virtualizáció részleges virtualizáció paravirtualizáció operációs rendszer szintű virtualizáció alkalmazás virtualizáció kereszt-platform virtualizáció
Emuláció vagy szimuláció Instrukciókészlet szintű virtualizáció. Célja: másik típusú instrukció készletű eszköz biztosítása. Egész számítógép állít elő virtuálisan, akár más processzor, architektúra és eszközkészlettel. Haszna: szoftver fejlesztés még nem létező hardverre, más architektúra OS-ének futtatása
Emuláció vagy szimuláció Igen költséges eljárás, nagy overhead. Előállítható szoftver környezetben, esetleg hardver támogatással. Emulátorok: Bochs: nyílt forrású, x86 PC emulátor. Lefordítható pl. PowerPC, Alpha, Sun, MIPS, x86 környezetekben. Többféle processzort 368, 486, Pentium, Pentium Pro, Amd64 / EM64T emulációjára képes. Egyetlen architektúrát PC emulál.
Emuláció vagy szimuláció Crusoe: A Transmeta cég Crusoe nevű processzora egy dinamikus x86 emulátor. Ún. code morphing engine, melynek célja az erőteljes instrukció szintű optimalizálás. Az x86 instrukciókat hajtja végre, de saját, hatékonyabb VLIW utasításkészletén interpretálva. QEMU: nyílt-forrású processzor emulátor szoftver. Képes x86, ARM, PowerPC és Sparc processzorok emulálására. A Crusoe -hoz hasonló technikával fordítja az instrukciókat saját instrukciókészletére, de ezt szoftverként teszi.
Natív / teljes virtualizáció Virtuális gépek előállítása úgy, hogy azok teljes értékű gépként használhatók. Úttörője az 1966-ban megjelent IBM CP-40 és CP-67 gépek, a VM család elődjei. Termékek: QEMU is képes ilyenre, de csak korlátozottan VMWare: ipari célú virtuális gép szolgáltató szoftver. Három változata: Workstation, GSX Server, ESX Server kapható. Az x86 gép nem teljes virtualuzációját biztosítja. A vendég OS -re specializált driverek telepítése szükséges. Létezik Windows-ra és Linux-ra egyaránt.
Natív / teljes virtualizáció VirtualBox: a VMWare-hez hasonló, egyszerűbb, nyílt-forrású, mulit-platform. Virtual PC: A Microsoft vette meg a Connectixtől, szintén a VMWare-re hasnlít. Csak Windowson fut.
hardver támogatású virtualizáció Egyes hardver gyártók processzorok nyújtanak támogatást virtualizáció megvalósításához. Pl. Intel Core2 with VT-s feature Egyes virtualizációs szoftverek kihasználják: VirtualBox, VMWare Fusion Xen Linux KVM
részleges virtualizáció Az a lehetőség, mely a gép egyes egységeit osztottan használja, másokat megosztással virtualizálja pl. memória. Tulajdonképpen a virtuális memória koncepció is ilyen.
Paravirtualizáció Nem hardvert virtualizál, csupán hívásokat (IO, Syscall, stb.) kap el pl. API wrapperrel és azokat valósítja meg az alatta lévő architektúrán. Ez megoldható sok processzor által támogatott DIAG funkciók által. Kezelője a hypervisor, felügyeli a hívásokat és átirányítja azokat. Viszonylag olcsó, gyors virtualizáció. Általában a felületre szabott - módosított vendég OS-t kell telepíteni.
Paravirtualizáció Ilyen szolgáltatók: Xen: szabad forrású, virtuális gép monitor (hypervisor), IA-32, x86-64, IA-64 és PowerPC architektúrákra. Alapját, a hypervisor-t egy módosított Linux kernel adja ez a gazda OS. Tartományok, ún. domain-ek létrehozásával lehet további, ún. vendég OS-eket telepíteni. A CPU képességeitől függően paravirtualizációra vagy akár (Intel VT-s CPU esetén) teljes virtualizációra képes. VMWare ESX Server
operációs rendszer szintű virtualizáció Az OS kernel nyújt lehetőséget több, izolált felhasználói mód futtatására. A kernel közös, így nem lehetnek különböző OS-ek. Az izolációnak különböző szintjei: fájlrendszer diszk kvóta I/O ráta korlátozás memória korlátozás CPU korlátozás hálózati izoláció független checkpoint és live migration
operációs rendszer szintű virtualizáció Megvalósításai: chroot (Jail): tulajdon képen a legegyszerűbb, speciális esete x86-64 gépen kernel támogatás mellett egy 32bites jail létrehozása. Linux-VServer: ez a megoldás majdnem az összes izolációs szintet biztosítja WPAR: az IBM AiX sajátja OpenVZ: Linux-os teljes OS szintű virtualizáció
operációs rendszer szintű virtualizáció
alkalmazás virtualizáció Szoftver virtualizációs réteg asztali vagy szerver alkalmazások működtetésére. Az azonos konténerben futó alkalmazások osztoznak erőforrásokon, különbözőekben futók pedig izoláltak. Megvalósítások: Java Virtual Machine Microsoft Application Virtualization
kereszt-platform virtualizáció Bináris kompatibilitás biztosítása, azonos futtató környezetben. Tulajdon képen emuláción alapuló CPU virtualizáció és wrapper alapú futtató környezet. Megvalósítás: Apple Rosetta: Mac OS X -re készült PowerPC binárisok futtatása Intel processzoros rendszeren QuickTransit: bináris kód fordító (egyik natív kódkészletről másikra)
Particiónálás A virtualizáció egy formája. Alkalmazásra kerül pl. Sun E10k gépeken Az E10k felépítése: 2 Centerplane: buszrendszer, összetett arbiter max. 16 System Board: 4-4 CPU-t, memóriát, 4-4 sbus I/O kártyát hordozó fiók 2 Control Board + Centerplane Support Board: konfiguráció, vezérlés és hozzáférés ellátása System Service Processor: különálló munkaállomáson futó szoftver
Particiónálás - E10k Az SB-t tetszőleges halmaza kinevezhető ún. domain-nek. Minden domain önálló gépként működik, de van Centerplane kommunikáció van Dynamic Reconfiguration van Alternative Pathing Teljes szolgáltatásait csak Solaris OS futtatása esetén vehetjük igénybe