A virtual machine (VM) is an emulated or digital version of a physical computer. Virtual machines can be used to run different operating systems and applications, store data, connect to networks, as well as perform other tasks like a physical device. Virtual machines run on a physical device called a host or parent server. And a virtual machine is called a guest or child.
In dit artikel zal ik uitleggen hoe virtuele machines werken en hoe ze verschillen van containers. Ik zal ook enkele van de belangrijkste gebruiksscenario’s voor virtuele machines beschrijven, waaronder softwareontwikkeling voor meerdere platforms en malwareonderzoek.
Hoe werkt een virtuele machine?
In essentie stelt virtualisatietechnologie gebruikers in staat om meerdere virtuele machines tegelijkertijd op één host te maken en uit te voeren. Zo is bijvoorbeeld een Windows-host in staat om verschillende virtuele machines met Windows, CentOS, Ubuntu en andere Linux-distributies te laten draaien.
A virtual server uses hypervisor software to interact with the underlying physical hardware. It makes it possible to keep VMs separate and evenly allocate host resources (CPUs, storage, and memory) to each VM guest as needed. The hypervisor can also schedule operations to prevent deadlocks.

De twee typen hypervisors
Er zijn twee primaire typen hypervisors die worden gebruikt in virtualisatie.
Type 1 Hypervisors (Proces-VM)
Als eerste draait een type 1 hypervisor, ook wel een bare-metal hypervisor genoemd, native op de fysieke computer. Normaal gesproken is een apart hulpprogramma vereist voor het maken/beheren van virtuele machines en het beheren van rechten op de hypervisor. Microsoft Hyper-V en Citrix Hypervisor zijn voorbeelden van type 1 hypervisors.
Type 2 Hypervisors (System VM)
A type 2 hypervisor, also known as a hosted hypervisor, can run as an application on the host OS. It allows users to manually create a virtual machine instance and install a guest operating system.
De type 2 hypervisor is in vergelijking langzamer omdat elke virtuele machineaanvraag naar het host-besturingssysteem moet worden geleid. Het is geschikt voor individuen, ontwikkelaars en kleine bedrijven die zich geen speciale servers kunnen veroorloven. Enkele veelvoorkomende voorbeelden van type 2 hypervisors zijn Oracle VirtualBox en VMware Workstation.
Wat is virtualisatie?
Virtualisatie is een technologie die de creatie van een abstractielaag over een fysieke hostmachine omvat. Het helpt bij het verdelen van hardwarebronnen (CPU, RAM en opslag) van een enkele computer in verschillende virtuele computers genaamd virtuele machines.
Elke virtuele machine gedraagt zich als een onafhankelijke machine met zijn eigen besturingssysteem. Het is een kosteneffectieve oplossing voor organisaties die meerdere besturingssystemen en applicaties op een enkele fysieke server willen draaien.
De vijf typen virtualisatie
Er zijn vijf veelvoorkomende typen virtualisatie: Hardware, software, opslag, netwerk en desktopvirtualisatie.
1. Hardwarevirtualisatie
Hardwarevirtualisatie, ook wel bekend als servervirtualisatie, is een techniek waarmee gebruikers virtuele versies van computers en besturingssystemen kunnen maken. Het maakt het mogelijk om tegelijkertijd meerdere besturingssystemen op dezelfde fysieke machine te draaien. Hardwarevirtualisatie optimaliseert ook het gebruik van hardwarebronnen.
2. Softwarevirtualisatie
Software virtualisatie is een methode die een fysieke hostmachine in staat stelt om meerdere virtuele computers uit te voeren. Het maakt gebruik van hypervisorsoftware om de hardwarebronnen (zoals opslag, processoren en geheugen) te verdelen tussen verschillende virtuele machines (VM’s). Bijvoorbeeld, een Linux-distributie kan worden uitgevoerd in een virtuele machine op een computer die draait op een Windows-besturingssysteem.
3. Opslagvirtualisatie
Opslagvirtualisatie consolideert de fysieke opslag van meerdere netwerkopslagapparaten om te verschijnen als één virtuele schijf. Het heeft diverse voordelen zoals lagere kosten, load balancing, rampenherstelplanning en verbeterde prestaties en snelheid.
4. Netwerkvirtualisatie
Netwerkvirtualisatie is een proces dat wordt gebruikt om fysieke netwerken te groeperen in een enkel op software gebaseerd virtueel netwerk. Het helpt om de beschikbare bandbreedte te verdelen in verschillende kanalen en deze toe te wijzen aan apparaten en servers. Het biedt voordelen zoals verbeterde beveiliging, betrouwbaarheid en netwerksnelheid.
5. Desktopvirtualisatie
Desktopvirtualisatie stelt gebruikers in staat om een werkstationbelasting te simuleren zodat het vanaf elke locatie en op elk apparaat kan worden benaderd. De belangrijkste voordelen omvatten kostenbesparingen, optimalisatie van resources, verbeterde gegevensbeveiliging en eenvoudiger beheer.
Wat zijn de belangrijkste voordelen van het gebruik van VM’s?
VM’s bieden verschillende voordelen voor zowel eindgebruikers als IT-beheerders. Hier is een lijst van enkele van de functies die virtuele machines zeer aantrekkelijk maken in bedrijfsomgevingen:
1. Cloud computing
Virtualisatietechnologie biedt de basisarchitectuur voor cloud computing. Het stelt bedrijven in staat om cloud-native virtuele machines in te zetten en te migreren naar on-premises serveromgevingen en hybride clouds te benutten.
Het is ook mogelijk voor organisaties om cloudresources in real-time toe te wijzen en te wijzigen om aan hun dynamische gebruiksvereisten te voldoen. Cloudgebaseerde VM-services zijn populair voor het draaien van SaaS-applicaties, het back-uppen van gegevens en het hosten van e-mail- en toegangsbeheerservices.
2. Kostenbesparing
Virtuele machines stellen organisaties in staat om meerdere virtuele machine-instanties te maken en uit te voeren op een enkele server. Aangezien IT-hardwarekosten een echte uitdaging kunnen zijn voor bedrijven, kunnen VM’s helpen de kostenefficiëntie te verhogen door minimale fysieke hardwarebronnen te gebruiken. Zo kunnen IT-beheerders bijvoorbeeld een enkele servermachine gebruiken om verschillende applicaties in een bedrijfsomgeving te implementeren.
3. Beveiliging
Gebruikers kunnen virtuele omgevingen creëren om de beveiliging te verbeteren en te voorkomen dat malware invloed heeft op de onderliggende hardware en het besturingssysteem. Het is mogelijk voor gebruikers om snel en eenvoudig een gecompromitteerde VM terug te zetten naar oudere versies in geval van een cyberaanval.
Ondertussen kunnen ontwikkelaars VM’s gebruiken om software-updates en apps te testen voordat ze deze vrijgeven aan productiegebruikers. VM’s zijn ook handig voor onderzoekers om kwaadaardige software te testen.
4. Schaalbaarheid en draagbaarheid
Virtualisatie stelt klanten in staat om snel verschillende soorten VM’s met hun gekozen besturingssystemen en een specifieke set van middelen in te zetten. VM’s kunnen organisaties ook helpen beter te reageren op variaties in werkbelastingen. Ze kunnen ook de extra tijd en moeite besparen die nodig is om verschillende besturingssystemen op fysieke servers te installeren.
5. Werkbelastingmigratie
Virtuele machines worden aangeduid als “zelfstandige pakketten” die losgekoppeld zijn van de fysieke computer. Dit maakt het gemakkelijker voor IT-teams om over te stappen naar snellere hardware, een VM van de ene server naar de andere te verplaatsen, evenals te herstellen van fouten.
6. Rampenherstel
Organisaties kunnen virtuele machines gebruiken om hun systemen te back-uppen in cloudomgevingen. Deze capaciteit biedt een extra beveiligingslaag en minimaliseert het risico op gegevensverlies in scenario’s zoals hardwarestoringen.
7. Ondersteuning voor DevOps
VM’s bieden maximale flexibiliteit in het ondersteunen van bedrijfsontwikkelaars. Ze kunnen geïsoleerde omgevingen creëren met volledige functionaliteit voor het softwareontwikkelings- en testproces. VM’s stellen ontwikkelaars ook in staat om onverenigbare software uit te voeren en te testen op verschillende besturingssystemen.
Virtuele Machines vs. Containers
Net als virtuele machines maken containers het mogelijk om toepassingen uit te voeren die geïsoleerd zijn van de onderliggende host. Laten we echter eens nader kijken naar de belangrijkste verschillen tussen virtuele machines en containers:
Virtual Machines | Containers |
---|---|
Hardware-level process isolation | Operating system-level process isolation |
A virtual machine offers complete isolation of apps from the host OS | Containers can share some resources with the host OS |
VMs use a few GBs of system memory | Containers require less memory space (KBs or MBs) |
Each VM has a dedicated OS | Containers can share OS resources |
VM is more secure | Containers are less secure |
Boots in minutes | Boots in seconds |
VMs consume more system resources | Containers consume fewer resources |
VMs can move between hardware | Containers are destroyed and recreated |
VM creation takes a considerable amount of time | Users can create containers within a few seconds |
Users can run any OS inside the VM | Users can only run containers on the same OS version as the host |
Some popular use cases of VMs are running multiple applications, monolithic applications, and legacy apps on older OS. | Containers are best for running web apps, DevOps testing, and microservices. |
De belangrijkste gebruiksscenario’s voor virtuele machines
Virtuele machines hebben verschillende gebruiksscenario’s voor zowel eindgebruikers als IT-beheerders. Hier zijn een paar voorbeelden:
1. Nieuwe besturingssystemen testen
Virtuele machines stellen gebruikers in staat om verschillende besturingssystemen uit te voeren op een enkele fysieke host. Dit betekent dat gebruikers nieuwe functies kunnen testen zonder hun primaire besturingssysteem te beïnvloeden.
Als u een Windows Insider bent, kunt u verleid worden om virtuele machines te gebruiken om Windows 11 preview builds te testen die uit het Dev-kanaal komen. Deze builds kunnen behoorlijk instabiel zijn, maar het is mogelijk om de virtuele machine opnieuw te maken en het besturingssysteem opnieuw te installeren als uw VM om wat voor reden dan ook niet kan opstarten.
2. Voer verouderde of incompatibele software uit
Een ander veelvoorkomend gebruik van virtuele machines is het vermogen om verouderde softwaretoepassingen te gebruiken in zakelijke omgevingen. VM’s stellen gebruikers in staat om software uit te voeren die niet wordt ondersteund door hun bestaande besturingssysteem.
3. Malware-onderzoek
Malware-onderzoekers hebben vaak nieuwe machines nodig om kwaadaardige programma’s of toepassingen te testen. Hier komen virtuele machines van pas. Ze kunnen de software testen in een VM in plaats van het risico op infectie op de fysieke host te nemen.
4. Cross-platform softwareontwikkeling
Virtualisatietechnologie stelt softwareontwikkelaars en testers in staat om hun toepassingen over meerdere platforms te testen. Zo kan een team van ontwikkelaars verschillende virtuele machines gebruiken om verschillende versies van een app te testen in een geëmuleerde omgeving.
5. Trainingsessies
Het is belangrijk dat de computers in de trainingsruimte verschillende instanties van besturingssystemen kunnen draaien. Virtuele machines stellen trainers in staat om trainingssessies uit te voeren die verschillende bedrijfsscenario’s en omgevingen repliceren.
6. Veilig browsen
Ten slotte kunnen virtuele machines helpen om een veilige browse-ervaring voor gebruikers te garanderen. Het is mogelijk om een momentopname te maken van een VM in zijn huidige staat en deze dan terug te rollen in geval van malware-infectie. Gebruikers kunnen een Type 2 hypervisor opzetten of een IT-beheerder vragen om hen tijdelijke toegang te verlenen tot een virtueel bureaublad dat gehost wordt op een server.
Conclusie
Kortom, virtuele machines zijn een kosteneffectieve oplossing die IT-teams in staat stelt om systeembronnen efficiënt te distribueren en grote clusters van computers te beheren. Echter, VMs hebben verschillende voor- en nadelen, en organisaties gebruiken typisch een hybride aanpak (zowel fysieke als virtuele machines) afhankelijk van hun zakelijke behoeften.