Virtualization, Paravirtualization

StandaardenOpen source softwareSubdomein van

Beschrijving

Virtualisering is een verzameling soft- en hardwaretechnieken die het moeten mogelijk maken dat verschillende besturingssystemen gelijktijdig worden uitgevoerd op eenzelfde fysieke machine. De virtuele machines zijn afgeschermd in een eigen omgeving om een zekere isolatie te garanderen.

Virtualisering biedt de volgende voordelen:

  • Vereenvoudiging van het deployment: de configuratie van een virtuele machine is (bijna) onafhankelijk van die van de hostmachine. De virtuele machine kan makkelijk gedeployd worden op verschillende fysieke servers en om een virtuele machine te klonen, moet men gewoon de bestanden dupliceren waaruit de virtuele machine bestaat.
  • Consolidatie van servers: servers worden vaak te weinig benut. Virtualisering biedt echter de mogelijkheid om verschillende virtuele servers te groeperen op eenzelfde fysieke server om hem maximaal te benutten en hem beter te doen renderen. Zo kan het aantal vereiste machines verlaagd worden en daalt bijgevolg het stroomverbruik en wordt er minder warmte geproduceerd.
  • Mogelijkheid om testen uit te voeren: delicate operaties (tests) kunnen uitgevoerd worden op virtuele servers. Bij problemen ondergaat de hostserver geen wijzigingen.
  • Veiligheid: de verschillende virtuele machines vormen afgeschermde omgevingen die onafhankelijk zijn van elkaar. Bij een aanval beperkt het probleem zich tot de aangetaste virtuele machine.

Virtualisering wordt soms verward met emulatie.Emulatie reproduceert de werking van een specifieke architectuur terwijl virtualisering inhoudt dat de hostsystemen en de guestsystemen dezelfde hardware-architectuur hebben.Emulatie blijkt bijgevolg gevoelig trager te zijn dan virtualisering:in het geval van emulatie moet elke instructie op de guestmachine vertaald worden in een instructie voor de hostmachine (waarbij er een tiental of zelfs meer instructies kunnen zijn).Bij virtualisering kan een groot deel van de instructies van de guestmachine direct uitgevoerd worden door de hostmachine.

Er bestaan verschillende soorten virtualisering.

  • Virtualisering van opslag: RAID, SAN, ...
  • Virtualisering van toepassingen: deze techniek bestaat erin alle bestanden die nodig zijn voor de lancering en de uitvoering van een specifieke toepassing te groeperen binnen eenzelfde uitvoerbaar bestand.
  • Virtualisering van netwerken: VPN, VLAN
  • Virtualisering van servers
  • ...

Er bestaan verschillende methodes om servers te virtualiseren:

1) Isolatie
Isolatie maakt het mogelijk om binnen de kernel een afgeschermde omgeving aan te maken. De toepassingen die worden uitgevoerd binnen deze omgeving hebben slechts toegang tot een beperkt aantal resources (RAM, boomstructuur bestanden,...). Deze manier van virtualiseren is de meest performante door het weinige meerwerk dat zij vereist. Dit mechanisme wordt gebruikt bij Linux-VServer, BSD Jail en de Solaris-containers.

2) Kernel in gebruikersmodus
In deze modus wordt een guestkernel uitgevoerd als een eenvoudige toepassing van de hostkernel. De opeenstapeling van twee kernels leidt tot een daling van de performantie. Dit mechanisme is voornamelijk terug te vinden voor de ontwikkeling van de kernel (User Mode Linux), maar ook in bepaalde kernels in real time die de Linux-kernel uitvoeren als een toepassing en in andere meer specifieke systemen zoals coLinux waarmee een Linux-kernel kan worden opgestart vanuit Windows.

3) Virtuele machines
Deze manier van virtualiseren is momenteel de meest verspreide; een beheerder van virtuele machines draait op het hostsysteem en zal de installatie en uitvoering van verschillende virtuele machines mogelijk maken. Deze virtuele machines bezitten een "virtuele" hardwareconfiguratie waarvoor de guestsystemen zullen moeten beschikken over drivers. De softwareprogramma's VirtualBox, VmWare, Parallels en Microsoft Virtual PC maken het mogelijk virtuele machines aan te maken, maar worden vaak gelijkgesteld met andere relatief gelijkaardige types software, emulatoren, zoals Bosch, Plex89, Qemu of Pear PC.

4) Para-virtualisering
Bij para-virtualisering wordt gebruik gemaakt van een hypervisor. Dit is een lichtere kernel waarop de guestsystemen zich zullen vastzetten. In tegenstelling tot een traditioneel systeem van virtuele machines waarbij de virtualisering transparant is, moet het guestsysteem bij para-virtualisering zich ervan bewust zijn dat het draait in een virtuele omgeving, wat betekent dat een gewijzigde kernel moet worden gebruikt. De bekendste hypervisor is Xen waarvoor er aangepaste versies van Linux, Plan9, NetBSD, FreeBSD en Solaris bestaan. Qua performantie biedt para-virtualisering betere resultaten dan virtuele machines.

Open source software

Open source software: Jails, Linux-Vserver, VirtualBox OSE, Xen

We moeten een goed onderscheid maken tussen emulatoren en virtualiseringstools. Zoals hierboven uitgelegd bieden emulatoren een minder goede performantie dan virtualiseringstools maar emulatie heeft het voordeel dat het onafhankelijk is van de materiële architectuur: een PPC-emulator kan draaien op een X86-architectuur.

Vrije emulatoren:

  • Qemu
  • Plex86
  • Bochs
  • PearPC

Vrije virtualiseringstools:

  • Xen
  • VirtualBox
  • Linux-Vserver
  • BSD-Jail

Standaarden

Er is momenteel geen lijst van standaarden beschikbaar.

Heeft u opmerkingen of vragen over deze tekst? Laat het ons weten
Laatst gewijzigd op 20/10/2010