Virtualiseerimine

Allikas: Kuutõrvaja

Virtualiseerimine võimaldab ühel füüsilisel arvutil kasutada mitmeid samaaegselt töötavaid operatsioonisüsteeme ja sellisest võimalusest võiks olla kasu nt järgmistel juhtumitel

  • administratiivsetel kaalutlustel (nt asutuse töötajate vahelise töökorraldusega seoses)
  • kui loogilises mõttes tegevuste piisavaks eraldamiseks ei piisa unix'i privileegisüsteemist
  • testimiseks (uue funktsionaalsuse juurutamisel, muudatuste rakendamisel)
  • süsteemist hot-standby eksemplari hoidmine, mida saaks kasutada juhul kui avaliku keskkonna haldamisel on tehtud nn inimlik viga
  • riistvara ressursikasutuse kontroll
  • virtuaalsete arvutite ja virtuaalsete võrkude tekitamine ning nende abil nt IPSec lahenduste uurimine

Virtualiseerimise juures on oluline roll hüperviisor (ingl. k. hypervisor) tarkvaral, mille ülesandeks on kontrollida erinevatele operatsioonisüsteemi eksemplaridele eraldatud ressursse. Üldiselt jagunevad hüperviisorid selle alusel, millises keskkonnas nad töötavad, kahte klassi

  • native ehk bare metal hypervisor - töötab otse riistvaral ning tema kontrolli all on kõik operatsioonisüsteemi eksemplarid sh Host ise (Xen, VMware ESX)
  • hosted hypervisor - töötab otse riistvaral töötava operatsioonisüsteemi sees (VirtualBox, VMware Server ehk nn tasuta VMware)

Reeglina töötab virtualiseeritud režiimis kasutusel oleval arvutil üks põhiline operatsioonisüsteem (Host), millest kontrollitakse teiste (Guest) operatsioonisüsteemide tegevust. Üldiselt eristatakse nelja põhilist tüüpi virtualiseerimise tehnikaid:

  • Riistvara emuleerimine - QEMU (saab kasutada muu riistvara jaoks mõeldud operatsioonisüsteeme)
  • Full virtualization - KVM, VMware, VirtualBox (saab kasutada sama riistvaralise platvormi jaoks mõeldud modifitseerimata Guest operatsioonisüsteeme)
  • Paravirtualization - Xen, User-mode Linux (UML) (saab kasutada vaid modifitseeritud tuumaga Guest operatsioonisüsteeme, mis on sama riistvaralise platvormi jaoks; guest operatsioonisüsteemis töötavad modifitseerimata rakendused)
  • Operating System level virtualization - Solaris Containers, OpenVZ, FreeBSD jails (kõik töötavad operatsioonisüsteemi eksemplarid sh host kasutavad sama tuuma)

ning praktikas esinevad lisaks veel mõningad juhtumid, näiteks

  • library virtualization - operatsioonisüsteemi emuleeritakse spetsiaalselt ettevalmistatud teekide abil, nt Wine
  • application virtualization - eesmärgiks on kasutada rakendusi virtuaalseses keskkonnas, Java Virtual Machine (JVM)

Guesti modifitseerimine tähendab Xeni puhul seda, et Guest operatsioonisüsteem kasutab vastavalt paigatud tuuma.

Xeni puhul kasutatakse põhimõtteliselt kahte sorti tuumi

  • dom0 - host operatsioonisüsteem ehk privilegeeritud domeen
  • domU - guest operatsioonisüsteem ehk privilegeerimata domeen

Erijuhul, nt Debian GNU/Linux v 5.0 puhul kasutavad dom0 ja domU ühte ja sama spetsiaalselt ettevalmistatud tuuma.

Xen'i puhul moodustatakse guestide jaoks füüsilistele seadmetele vastavad lihtsustatud liidesed (ingl. k. interface). Sellise asjakorraldusega kaasnab

  • ainult hostis tuleb ja saab kasutada olemasolevaid riistvarale spetsiifilisi draivereid
  • operatsioonisüsteeme on Xen platvormi guestideks põhimõtteliselt suhteliselt lihtne portida, kuna guestid saavad kasutada lihtsustatud liideseid hosti kaudu füüsiliste seadmete poole pöördumisel
  • suhteliselt efektiivne füüsiliste ressursside kasutamine