Virtualization, Paravirtualization
| Standaarden | Open source software | Subdomein 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, XenWe 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.
