Virtualisatie

external image vmware_esx_setup.jpg
Virtualisatie is een techniek die het mogelijk maakt fysieke hardware los te koppelen van een besturingssysteem.

Zo is het mogelijk om meerdere virtuele omgevingen op één fysieke onderlaag te laten draaien. Elke virtuele omgeving heeft zijn eigen deel aan virtuele hardware (processoren, netwerkkaart, geheugen en schijfruimte, waar een besturingssysteem en applicaties op werken. Ook is het mogelijk om één virtuele omgeving te verdelen en te laten draaien op meerdere fysieke onderlagen.

Door technieken als virtualisatie kunnen processoren, schijfruimte en geheugen efficiënter gebruikt worden en neemt de flexibiliteit toe. Dat is omdat volledige virtuele omgevingen zonder onderbreking verplaatst kunnen worden naar een andere fysieke machine(s). hierdoor heb je geen "zero-downtime" beheer en continu verdeling van de omgeving(en).

Er zijn verschillende soorten van virtualisatie:

Native Virtualization - Bij native virtualization wordt net als bij emulatie een stuk software geladen om een complete machine na te bootsen of te emuleren. Het verschil met emulatie is echter dat bij native virtualisatie de na te bootsen machine of `virtual machine` hetzelfde soort hardware gebruikt als het onderliggende sytseem. Een x86 hardware platform kan dus alleen virtual machines kunnen draaien die geschikt zijn voor het x86 platform. De software die wordt geladen om de virtuele machines te faciliteren (ook wel de host genoemd), verdeelt de beschikbaar gestelde systeem resources onder de verschillende virtual machines of guests. Hierdoor wordt de hardware op de host optimaler benut. Voorbeelden van Native Virtualization zijn: Vmware Server/Workstation/player, Microsoft virtual PC/Server, Vserver Qemu etc.

Full Virtualization - Hierbij worden meerdere virtuele machines(guests) naast elkaar gezet op een set hardware. Dit gebeurt door tussen de hardware en de virtuele machine een softwarematige laag te plaatsen die voor de afhandeling van aanvragen aan de hardware zorgt. Een andere term hiervoor is het plaatsen van de virtual host op het `Bare-metal`. Hierdoor is het mogelijk om hardware resources efficiënter te benutten dan bij gewone emulatie. Een bekende vorm van deze manier van virtualiseren is VMware ESX server.

Operating system-level Virtualization – Lijkt op full virtualization maar wijkt af in het feit dat bij full virtualization de guests een afwijkend OS kan hebben van de host en bij Operating system-level virtualization de guest hetzelfde OS hebben als de host. Voorbeelden zijn: Linux-Vserver, Virtuozzo (voor Microsoft Windows of Linux), OpenVZ, Solaris containers en FreeBSD Jails.

Hardware enabled Virtualization – In dit geval wordt de software die de hardware verdeelt tussen de verschillende virtual machines in de hardware zelf geïmplementeerd. Voordeel hiervan is dat virtualisatie nog dieper in het systeem zijn geïntegreerd en dat het managen van de hardware resources nog minder systeemcapaciteit kost.

Partial Virtualization – Bij partial virtualization worden voor veel maar niet voor alle hardware componenten meerdere virtuele componenten gecreëerd. Deze componenten of instances zorgen ervoor dat het wel mogelijk is om apparaten te delen. Hierbij is het niet mogelijk meer dan één OS te delen. Vaak wordt dit niet gezien als Virtualisatie en het komt veelvuldig voor in operating systems als Windows en Linux maar ook op grote mainframe systemen.

Paravirtualization – Bij deze technologie wordt de hardware aangeboden aan de virtual machine door middel van speciale api’s die alleen kunnen worden gebruikt door deze aan te passen aan het guest OS. Op deze manier kan er een keus worden gemaakt welke hardware door de VM’s (Virtual Machines) worden gedeeld en welke hardware specifiek voor een VM aanwezig is. Deze technologie wordt toegepast bij onder andere: Xen , Trango en Sun logical domains.

Cross-platform Virtualization- Is de vorm van virtualisatie waarbij een applicatie is gecompileerd voor een bepaald OS maar draait op een ander OS, zonder dat daarvoor een emulatie van het andere OS hoeft plaats te vinden. En zonder de source code en of binaire bestanden aan te passen. Denk hierbij aan: Apple Rosetta en Transitive QuickTransit.

Application Virtualization - Bij application virtualization draaien applicaties lokaal op een desktop, gebruikmakend van lokale systeem resources, zonder dat de applicatie op de machine is geïnstalleerd, binnen een aangepaste VM. Het is enigszins te vergelijken met terminal gebaseerde toepassing, met het grote verschil dat bij terminal services de applicaties op een server draaien en bij application virtualization de applicaties lokaal draaien. Door applicaties virtueel aan te bieden is het mogelijk om applicaties met conflicterende eisen toch op een desktop samen te laten werken. Voorbeelden zijn: Thinstal, Microsoft Application Virtualization, Altiris SVS, Sun Java VM en Trigence.

Resource Virtualization- Is eigenlijk het basis concept van alle typen virtualisatie in de ICT Branche. Later werd dit uitgebreid naar de virtualisatietermen die we vandaag de dag kennen. Onder resource virtualization wordt ook het virtualiseren van Storage en networking elementen bedoeld, denk hierbij aan technieken als: SAN en NAS systemen, VLANs , VPNs, etc, etc. Ook clusteroplossingen partitioneringen en encapsulatie vallen onder resource virtualization. Resource virtualization is dus eigenlijk de verzamelnaam voor alle type virtualization.


Pluspunten:
  • Serverconsolidatie: meer applicaties per fysieke server, dus meer rendement van de hardware
  • Beschikbaarheid: bij uitval van een fysieke server kan de virtuele machine snel op een andere server worden opgestart
  • Virtualisatie neemt fysieke grenzen weg en zorgt voor beheersbaarheid, betrouwbaarheid en schaalbaarheid