Virtualisatie

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

Met virtualisatie bij computers wordt over het algemeen bedoeld dat meerdere besturingssystemen tegelijkertijd op één computer kunnen draaien.

Inleiding[bewerken]

Normaal is er op een computer slechts één besturingssysteem aanwezig, zoals Windows, Linux of Mac OS X. Er kunnen meerdere besturingssystemen op een computer geïnstalleerd worden, maar dan kan er maar één besturingssysteem tegelijkertijd opgestart worden.

Er zijn echter verschillende softwareoplossingen beschikbaar waarbinnen een tweede besturingssysteem opgestart kan worden. Het besturingssysteem dat binnen zo'n programma draait kan niet zomaar gebruikmaken van bijvoorbeeld de harde schijf of het toetsenbord, want dat is al in gebruik door het hoofdbesturingssysteem. Maar het programma spiegelt als het ware een denkbeeldige (virtuele) computer voor, met een virtuele harde schijf en een virtueel toetsenbord etc.

Omdat zo'n programma zich voordoet als een virtuele computer, heet de methode 'virtualisatie'. Het is mogelijk om meerdere virtuele computers te maken en zo meerdere gastbesturingssystemen tegelijkertijd te laten werken.

Het hoofdbesturingssysteem wordt de 'host' genoemd.
Het gastbesturingssysteem wordt de 'guest' genoemd.

Deze methode bestond al enige tijd, maar werd nog niet veel toegepast omdat het guest-besturingssysteem vaak erg traag werkte. Vanaf ongeveer 2004 kwamen er echter nieuwe processors met speciale mogelijkheden voor virtualisatie, waardoor het guest-besturingssysteem nauwelijks vertraagd wordt.

Toepassingen[bewerken]

Het grote voordeel van virtualisatie is dat de verschillende besturingssystemen van elkaar afgeschermd zijn. Daardoor kan bijvoorbeeld onderzoek naar computervirussen gedaan worden, zonder dat de computer (de 'host') wordt geïnfecteerd. Er kunnen ook kosten bespaard worden, door meerdere besturingssystemen (met bijvoorbeeld elk een webserver) te laten werken op één computer. Doordat de 'guests' van elkaar afgeschermd zijn is het gemakkelijker te beheren en ook dat levert een kostenbesparing op.

Door meerdere guest-besturingssystemen te laten werken op één computer, heeft die computer extra geheugen nodig en een snellere processor. In de praktijk blijkt echter dat het goedkoper is om één duurdere computer (vaak een server) te gebruiken met virtualisatie, dan meerdere goedkopere computers zonder virtualisatie.

Programma's[bewerken]

Vanaf 2007 zijn er meerdere virtualisatie-programma's die stabiel werken.
Virtualisatie-programma's waarbinnen een guest-besturingssysteem kan werken zijn o.a.: VMware, Microsoft Virtual PC, Microsoft Hyper-V, Xen, Qemu, KVM (gebaseerd op Qemu), VirtualBox, Parallels, Bochs, etc.

Abstracte omschrijving[bewerken]

In de informatica is virtualisatie een techniek voor het verbergen van fysieke karakteristieken van computerbronnen voor de manier waarop andere systemen, applicaties of eindgebruikers met deze bronnen communiceren.

Hieronder valt het beschikbaar maken van een enkele fysieke bron (zoals een server, een besturingssysteem, een applicatie of een gegevensdrager) als meerdere logische bronnen. Hieronder valt ook het beschikbaar maken van meerdere fysieke bronnen (zoals gegevensdragers of servers) als een enkele logische bron" [1]. Deze nieuwe virtuele kijk op bronnen is niet beperkt door implementatie, geografische locatie of fysieke configuratie van de onderliggende bronnen. Virtualisatie wordt heel veel gebruikt bij bronnen zoals rekenkracht, gegevensopslag en rekenmethodes.

Vormen van virtualisatie[bewerken]

Virtualisatie komt binnen de automatisering in vele vormen voor. Om een goed beeld te krijgen over wat virtualisatie is, is het belangrijk om te weten in welke vormen virtualisatie mogelijk is. Virtualisatie is onder te verdelen in de volgende categorieën:

Emulation - Dit is software die binnen een Operating System geladen wordt in de vorm van een programma. Dit programma bootst een complete machine na waardoor het mogelijk is om een ongemodificeerd gast-OS te starten. Dit OS zal virtueel draaien op een ander hardware platform. Voorbeelden hiervan zijn: Bochs PearPC, PowerPC , Virtual PC en bijvoorbeeld Hercules emulator. Andere vormen zijn ook wel game console emulatoren. Bij emulatie kunnen allerlei technieken gebruikt worden om de instructies aan de virtuele hardware te vertalen naar de werkelijke hardware van het onderliggende systeem.

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 systeem. Een x86 hardware platform zal 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 beter 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.

Zie ook[bewerken]

Bronnen, noten en/of referenties
  1. (en) Virtualization: Exposing the Intangible Enterprise Enterprise Management Associates (2006)