Hypervisor

A hypervisor– olyan szoftver vagy hardver, ami virtuális számítógépek futtatását végzi. A hypervisort működtető számítógép a host (kiszolgáló, virtual-izációs szerver). A virtuális számítógépek a vendégek (angolul guest), ezek számára a hypervi-zor egy virtuális környezetet biztosít, amelyen a vendég operációs rendszer fut. Több ilyen vir-tuális számítógép osztozkodhat a host gép erőforrásain.Ellentétben egy emulátorral, a vendég a legtöbb utasítást a natív hardveren hajtja végre. Több példányban futó különböző operációs rendszerek oszthatják meg a virtualizált hardver erőforrásait, például Linux, Windows és ma-cOS példányok mindegyike futtatható egyetlen fizikai x86-os gépen. Ez ellentétben áll a műve-leti rendszer szintű virtualizációval, ahol az összes példánynak (általában konténereknek nevezett) egyetlen magot kell osztaniuk.

A hipervizor kifejezés egy variációja a felügyelőnek, ami a műveleti rendszer kernelének hagyományos neve: a hipervizor a felügyelők felügyelője, a hyper- pedig a super- erősebb vál-tozata. A kifejezés a körülbelül 1970-es évekre datálódik; az IBM forcai a 360/65-re alkalmaz-ták, és később a CP-67 DIAC kezelőre is használták. A korábbi CP/CMS (1967) rendszerben a Felügyeleti Program kifejezést használták helyette.

Történet

Az első teljes virtualizációt nyújtó hypervizorok a SIMMON teszt eszközök és az egyedi IBM CP-40 kutatási rendszerek voltak, amelyek 1967 januárjában kezdték meg a termelési fel-használást, és az IBM CP/CMS operációs rendszer első verziójává váltak. A CP-40 egy S/360-40 gépen futott, amelyet a Cambridge Scientific Center módosított dinamikus címfordítás támogatására, egy funkciónak, amely lehetővé tette a virtualizációt. Eddig a számítógép hardvere csak olyan mértékben lett virtualizálva, hogy lehetővé tegye a többfelhasználós al-kalmazások egyidejű futtatását, például a CTSS és az IBM M44/44X esetében. A CP-40-nel a hardver felügyelő állapota is virtualizált lett, lehetővé téve több operációs rendszer egyidejű futtatását külön virtuális gép kontextusokban.

A programozók hamarosan megvalósították a CP-40-et (CP-67-ként) az IBM System/360-67-hez, az első termelési számítógép rendszertehetséges teljes virtualizációval. Az IBM ezt a gépet 1966-ban szállította ki; tartalmazta az oldal-címfordítási tábla hardvert a virtuális memória és más technikák lehetővé tételéhez, amelyek teljes virtualizációt tettek lehetővé az összes kernel feladat számára, beleértve az I/O és interrupt kezelést is. (Megjegyzés, hogy a "hivatalos" operációs rendszer, a TSS/360 nem alkalmazott teljes virtualizációt.) Mind a CP-40, mind a CP-67 1967-ben kezdték meg a termelési felhasználást. A CP/CMS elérhető volt az IBM ügyfelek számára 1968-tól a 70-es évek elejéig, forráskódban, támogatás nélkül.

A CP/CMS része volt az IBM kísérletének a strapabíró időmegosztású rendszerek építésére nagygépeihez. A hypervizor által több operációs rendszer egyidejű futtatásával a rendszer strapabírósága és stabilitása növekedett: még akkor is, ha egy operációs rendszer összeomlott, a többi továbbra is zavartalanul működött. Valóban, ez lehetővé tette a béta vagy kísérleti ver-ziók telepítését és hibakeresését, anélkül hogy veszélyeztetnék a stabil fő produkciós rendszert, és anélkül, hogy további drága fejlesztési rendszereket igényelne.

Az IBM bejelentette a System/370 sorozatot 1970-ben, anélkül, hogy megfelelő lenne a virtual-izációhoz szükséges virtuális memória funkció, de hozzáadta azt az 1972. augusztusi Advanced Function bejelentésben. A virtualizáció szerepelt minden utódszereplő rendszerben, így a mai napig az összes modern IBM nagygép, beleértve a Z sorozatot, kompatibilis marad a 60-as évekbeli IBM S/360 sorozattal. Az 1972-es bejelentés tartalmazta a VM/370-et is, amely a CP/CMS újraillesztése volt az S/370 számára. Ellentétben a CP/CMS-sel, az IBM támogatást is biztosított ehhez a verzióhoz (bár továbbra is forráskódban terjesztették ki több verzióban). A VM a Virtual Machine rövidítése, kiemelve, hogy az összes, nem csak néhány hardware inter-fész virtualizált. Mind a VM, mind a CP/CMS korai elfogadást és gyors fejlesztést élvezett az egyetemeken, vállalati felhasználóknál és időmegosztó szolgáltatóknál, valamint az IBM-n belül. A felhasználók aktív szerepet játszottak a folyamatos fejlesztésben, elöljáróban azon trendek figyelését, amelyeket a modern nyílt forráskódú projektekben látunk. 2000-től népszerűségének és támogatásának felívelése volt a z/VM termék formájában, például Linux platformként az IBM Z-en.

Ahogyan fent említettük, a VM vezérlő programja tartalmaz egy hypervizor-hívás kezelőt, amely elfogja a DIAG ("Diagnózis", opcode x'83') utasításokat, amelyeket egy virtuális gépben használnak. Ez biztosítja a fájlrendszer-hozzáférés és más műveletek gyors nem-virtualizált végrehajtását (A DIAG egy modell-függő privilégizált utasítás, nem használják a normál pro-gramozás során, így nem virtualizált. Ezért elérhető a "házigazda" operációs rendszer számára jelzésként). Amikor először megvalósították a CP/CMS 3.1 kiadásában, ez a DIAG használat egy operációs rendszeri felületet biztosított, ami analóg volt a System/360 Felügyelő Hívás utasításhoz (SVC), de az nem igényelte a rendszer SVC virtualizálásának módosítását vagy bővítését.

A hypervisor kifejezést először 1965-ben használták az IBM 360/65 gépeken. Lehetővé tette, hogy az IBM 360/65 gép megossza memóriáját, félig IBM 360-ként, félig pedig emulált IBM 7080-ként viselkedve. A hypervisor-ként említett szoftver váltott a két üzemmód között időosztásos alapon. A hypervisor kifejezést a felügyelő szoftver (supervisor) fejlesztéseként értelmezték.

1985-ben az IBM bemutatta a PR/SM hypervizort a logikai partíciók (LPAR) kezelésére.

Osztályozás

Robert P. Goldberg kétféle hypervisort vázolt fel:[1]

  • • 1-es típus (natív, hardveres): a hypervisor közvetlenül a hoszt gép hardverén fut, irányítja a hoszt hardvert és a vendég operációs rendszereket. Ide tartoznak a klasszikus hypervisorok: a SIMMON és a CP/CMS. A modern implementációk az Oracle Vm Server for Sparc, a XenServer, a VmWare ESX és a Microsoft Hyper-V. • 2-es típus (hosztolt): hagyományos operációs rendszer környezetben fut. A hypervisor a második réteg az operációs rendszer felett, és ezen fut harmadik rétegként a vendég operációs rendszer. Erre példa a KVM, a VmWare Workstation és a VirtualBox.

Operációs rendszerek között

Több tényező vezetett a virtualizációs technológia újbóli elterjedéséhez 2005 körül a Unix, Linux és más Unix-szerű operációs rendszerek között:

• A bővülő hardverkapacitás lehetővé teszi, hogy minden egyes gép több egyidejű munkát végezzen

• Az erőfeszítések a költségek csökkentése és a szerverek összevonása révén, a kezelés egyszerűsödik

• A nagy multiprocesszoros és klaszter telepítések ellenőrzésére irányuló igény, például szerverfarmokban

• A javított biztonság, megbízhatóság és eszközfüggetlenség, amely lehetséges a hipervi-zor architektúrából

• A képesség, hogy futtassuk bonyolult, operációs rendszer-függő alkalmazásokat különböző hardver- vagy operációs rendszer-környezetekben

• A képesség, hogy több erőforrást allokáljunk, több alkalmazást illesszünk be egy hostra

• A nagy Unix-eladók, például HP, IBM, SGI és Sun Microsystems már értékesítettek vir-tualizált hardvert a 2000-es évek előtt. Ezek általában nagy, drága rendszerek voltak (a multimillió dolláros tartományban a csúcskategóriában), bár a virtualizáció elérhető volt néhány alacsony és középkategóriás rendszeren, például az IBM pSeries szervere-ken, a HP Superdome sorozaton és a Sun/Oracle T-sorozatú CoolThreads szervereken.

Bár a Solaris mindig az egyetlen hivatalosan támogatott vendég operációs rendszer volt a Sun/Oracle által fejlesztett Logical Domains hipervizoron, az utóbbi időben, 2006 óta, a Linux (Ubuntu és Gentoo), valamint a FreeBSD is portolva lett a hipervizorra (és mindegyik egy-szerre futtatható ugyanabban a processzorban, mint teljesen virtualizált független vendég operációs rendszerek). A Wind River "Carrier Grade Linux" is fut Sun Hypervisor-on. Teljes virtualizáció az SPARC processzorokon könnyűnek bizonyult: az 1980-as évek közepétől kezdve a Sun szándékosan tisztán tartotta a SPARC architektúrát olyan elemektől, amelyek akadályozták volna a virtualizációt.

Az HPE nyújtja a HP Integrity Virtual Machines (Integrity VM) lehetőséget több operációs rendszer futtatására az Itanium processzorral működő Integrity rendszereiken. Az Itanium ké-pes futtatni HP-UX, Linux, Windows és OpenVMS-t, és ezeket a környezeteket támogatják vir-tuális szerverként az HP Integrity VM platformon. A HP-UX operációs rendszer hostolja a In-tegrity VM hipervizor réteget, amely lehetővé teszi a HP-UX fontos funkcionalitásainak kihasználását és jelentős különbséget jelent ez a platform és más általános platformok között - például processzor cseréje futás közben, memória cseréje futás közben, és dinamikus kernel frissítések rendszer újraindítás nélkül. Bár erősen támaszkodik a HP-UX-re, a Integrity VM hipervizor valójában egy hibrid, ami a hardveren fut, míg a vendégek futnak. Normál HP-UX alkalmazások futtatása egy Integrity VM hoston nem ajánlott, mert a Integrity VM saját memó-riakezelést, tervezést és I/O irányelveket használ, amelyek a virtuális gépek számára vannak optimalizálva, és nem olyan hatékonyak normál alkalmazások esetén. Az HPE továbbá szigorúbb felosztást biztosít az Integrity és HP9000 rendszereikhez VPAR és nPar technológia útján, előbbi megosztott erőforrás-felosztást nyújt, míg utóbbi teljes I/O és feldolgozási el-szigetelést. A virtuális szerver környezet (VSE) rugalmasa miatt gyakrabban használják az újabb telepítéseknél.

IBM által biztosított a virtuálizációs partíció technológia, amelyet ismert logikai partícionálás (LPAR) a System/390, zSeries, pSeries és IBM AS/400 rendszereken. Az IBM Power Systems esetében a POWER Hypervisor (PHYP) egy natív (bare-metal) hypervisor firmware-ben, amely izolációt biztosít az LPAR-ek között. A processzor kapacitást vagy kifejezetten egy LPAR-ra biztosítják, vagy jogosultsági alapon, ahol a felhasználatlan kapacitás elérhetővé válik és újraosztható elfoglalt munkateherként. Az LPAR-ok csoportjai a processzor kapacitásukat úgy kezelhetik, mintha "medencében" lennének - az IBM ezt a képességet Többszörösen osztott processzorpools (MSPPs) néven nevezi, és az POWER6 processzorral rendelkező szerverekben valósítja meg. Az LPAR és MSPP kapacitásallokációkat dinamikusan lehet módosítani. A memóriát minden LPAR-hoz kiosztják (LPAR indításakor vagy dinamikusan), és a POWER Hypervisor által címkontrollálva van. A valós módú címzéshez az operációs rendszerek (AIX, Linux, IBM i) számára a Power processzorok (POWER4-től kezdődően) terveztek vir-tuálizációs képességeket, ahol a hardware címeltolás az operációs rendszer címeltolásával összehasonlítva a fizikai memóriacímet hoz létre. A bemenet/kimeneti (I/O) adapterek az LPAR-ok kizárólagosan "tulajdonolhatják" vagy megoszthatják LPAR-ok az úgynevezett Vir-tuális I/O Szerver (VIOS) partíció által. A Power Hypervisor nagy szintű megbízhatóságot, ren-delkezésre állást és szolgálhatóságot (RAS) biztosít azzal, hogy lehetővé teszi sok alkatrész probléma nélküli hozzáadását/cseréjét (modell függően: processzorok, memória, I/O adapterek, hűtőköpi, tápegységek, lemezek, rendszervezérlők, stb.)

Hasonló trendek tapasztalhatóak az x86/x86-64 szerverplatformokkal, ahol az open-source pro-jektek, mint például a Xen, vezették a virtualizációs erőfeszítéseket. Ezek magukba foglalják a Linux és Solaris kernelen alapuló hypervisoreket, valamint egyedi kernelt. Mivel ezek a tech-nológiák nagy rendszerektől a számítógépekig terjednek, ezeket a következő szakaszban részletezzük.

x86 rendszerek

Az X86 virtualizációt a 90-es években vezették be, az emulációja pedig benne volt a Bochs-ban. Az Intel és az AMD először 2005-ben jelentette be az első x86 processzoraikat hardveres virtualizációval, az Intel VT-x (kódnevvel Vanderpool) és az AMD-V (kódnevvel Pacifica).

Egy alternatív megközelítés a vendég operációs rendszer módosítását igényli annak érdekében, hogy a háttérben lévő hipervizornak rendszert hívjon meg, ahelyett, hogy végrehajtaná a hipervizor által szimulált gépi I/O utasításokat. Ezt paravirtualizációnak nevezik a Xen-ben, "hiperhívásnak" a Parallels Workstation-ben, és "DIAGNOSE kódnak" az IBM VM-ben. Néhány mikrokernel, mint például a Mach és az L4, elég rugalmas ahhoz, hogy lehetővé tegye a vendég operációs rendszerek paravirtualizációját.

Beágyazott rendszerek

Beágyazott hipervizorok, amelyek beágyazott rendszerekre és bizonyos valós idejű operációs rendszer környezetekre célzódnak, más követelmények szerint vannak tervezve, mint a számítógépek és vállalati rendszerek, ideértve a robosztusságot, biztonságot és valós idejű ké-pességeket. A sok beágyazott rendszer korlátozott erőforrásai, különösen az akkumulátorral működő mobil rendszerek esetében, további követelményeket támasztanak a kis memória mé-ret és alacsony overhead szempontjából. Végül, ellentétben a PC világban általános x86 archi-tektúrával, a beágyazott világ szélesebb körű architektúrákat és kevésbé szabványos környezeteket használ.

A beágyazott rendszerek gyártói általában rendelkeznek az operációs rendszerük forrás-kódjával, ezért kevesebb szükségük van a teljes virtualizációra ezen a területen. Ehelyett a paravirtualizáció teljesítményelőnyeinek általában ezt választott virtualizációs technológiává teszi. Mindazonáltal az ARM és a MIPS a közelmúltban hozzáadta a teljes virtualizációs támogatást mint egy IP opciót, és beépítette azt legújabb, magas kategóriás processzoraikba és architektúra verzióikba, például az ARM Cortex-A15 MPCore és az ARMv8 EL2.

A szerver és beágyazott környezetek közötti virtualizáció egyéb különbségei közé tartozik az erőforrások hatékony megosztásának, nagy sávszélességű, alacsony-latenciájú virtuális gépek közti kommunikációnak, a teljesítménytervezés és energiagazdálkodás globális nézetének és az információáramlás finom szabályozásának követelménye.

Biztonsági megfontolások

Amennyiben vírus vagy rootkit kerül a hypervisor rétegébe, ezeket nehezebb detektálni, hozzáférést kap minden információhoz, amivel a vendég operációs rendszer rendelkezik, anélkül, hogy az azon futó vírusirtó megtalálná. Ebben az esetben ugyanis a vírus az operációs rendszer alatt fut.

Nagyon kevés konkrét példa ismert hypervisorok sebezhetőségéről. Egy ilyen az a hiba, ame-lyet Microsoft Xbox hypervisora tartalmazott és amely lehetővé tette a hardver feletti el-lenőrzés átvételét.

2009-ben a Microsoft és a North Carolina State University kutatói bemutattak egy hypervisor rétegű ellen-rootkitet Hooksafe néven, amely generikus védelmet nyújthat a kernel-módú root-kit-ek ellen.

Jegyzetek

  1. Goldberg, Robert P. (1973. February). „Architectural Principles for Virtual Computer Systems” (PDF), 22–26. o, Kiadó: Harvard University. [2011. június 5-i dátummal az eredetiből archiválva]. (Hozzáférés: 2010. április 12.)  

Fordítás

  • Ez a szócikk részben vagy egészben a hypervisor című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
  • Informatika Informatikai portál • összefoglaló, színes tartalomajánló lap
Ez az informatikai tárgyú lap egyelőre csonk (erősen hiányos). Segíts te is, hogy igazi szócikk lehessen belőle!