Vad är en virtuell maskin? (Varför och när man ska använda det)

Om du arbetar i eller runt mjukvaruindustrin har du förmodligen hört talas om virtuella maskiner. Om inte, kanske du undrar vad de är och vad de används till.

Som mjukvaruingenjör använder jag virtuella maskiner dagligen. De är potenta verktyg inom mjukvaruutveckling, men de har andra användningsområden också. Även kända som virtuella datorer, många företag använder dem på grund av deras flexibilitet, tillförlitlighet och kostnadseffektivitet; de förhindrar också katastrofer från skenande mjukvarutestning.

Låt oss ta en titt på vad virtuella maskiner är och varför de används.

Vad är en virtuell maskin?

En virtuell maskin är en instans av ett operativsystem (OS) som Windows, Mac OS eller Linux som körs inom huvudoperativsystemet på en dator.

Vanligtvis körs det i ett appfönster på skrivbordet. En virtuell maskin har full funktionalitet och fungerar som en separat dator eller maskin. I huvudsak är en virtuell maskin en virtuell dator som körs inuti en annan dator som kallas värddatorn.

Virtuell maskin 1
Bild 1: Virtuell maskin som körs på en bärbar dator.

En virtuell maskin har inte hårdvara (minne, hårddisk, tangentbord eller bildskärm). Den använder simulerad hårdvara från värddatorn. På grund av detta kan flera virtuella datorer, även kallade ‘gäster’, köras på en enda värddator.

Virtuell maskin 2
Bild 2: Värdmaskin som kör flera virtuella datorer.

Värden kan också köra flera virtuella datorer med olika operativsystem, inklusive Linux, Mac OS och Windows. Denna förmåga beror på programvara som kallas hypervisor (se bild 1 ovan). Hypervisorn körs på värddatorn och låter dig skapa, konfigurera, köra och hantera virtuella maskiner.

Hypervisorn allokerar diskutrymme, schemalägger bearbetningstid och hanterar minnesanvändning för varje virtuell dator. Detta är vad applikationer som Oracle VirtualBox, VMware, Parallels, Xen, Microsoft Hyper-V och många andra gör det: de är hypervisorer.

En hypervisor kan köras på en bärbar dator, PC eller server. Det gör virtuella maskiner tillgängliga för den lokala datorn eller användare distribuerade över ett nätverk.

Olika typer av virtuella maskiner och miljöer kräver olika typer av hypervisorer. Låt oss ta en titt på några av dem.

Typer av virtuella maskiner

System virtuella maskiner

System virtuella datorer, ibland kallade full virtualisering, körs av en hypervisor och tillhandahåller funktionaliteten hos ett verkligt datorsystem. De använder värdens inbyggda operativsystem för att hantera och dela systemresurser.

Virtuella systemmaskiner kräver ofta en kraftfull värd med snabba eller flera processorer, stora mängder minne och massor av diskutrymme. Vissa, som körs på personliga eller bärbara datorer, kanske inte kräver den datorkraft som virtuella stora företagsservrar behöver; men de kommer att gå långsamt om värdsystemet inte är tillräckligt.

Bearbeta virtuella maskiner

Virtuella processmaskiner skiljer sig ganska mycket från SVM – du kanske har dem igång på din maskin och inte ens vet om det. De är också kända som virtuella applikationsmaskiner eller hanterade körningsmiljöer (MRE). Dessa virtuella maskiner körs i ett värdoperativsystem och stödjer applikationer eller systemprocesser.

Varför använda en PVM? De utför tjänster utan att vara beroende av specifika operativsystem eller hårdvara. De har sitt eget lilla OS med bara de resurser de behöver. MRE är i en separat miljö; det spelar ingen roll om det körs på Windows, Mac OS, Linux eller någon annan värddator.

En av de vanligaste processvirtuella maskinerna är en som du säkert har hört talas om och kanske har sett köra på din dator. Den används för att köra Java-applikationer och kallas Java Virtual Machine eller förkortat JVM.

Typer av hypervisorer

De flesta virtuella maskiner som vi är intresserade av använder en hypervisor eftersom de emulerar ett helt datorsystem. Det finns två olika typer av hypervisorer: Bare Metal Hypervisors och Hosted Hypervisors. Låt oss ta en snabb titt på dem båda.

Bare Metal Hypervisor

BMH: er kan också kallas inbyggda hypervisorer, och de körs direkt på värdens hårdvara istället för att köras inom värdens operativsystem. Faktum är att de tar platsen för värdens operativsystem, schemalägger och hanterar hårdvaruanvändning av varje virtuell maskin, vilket gör att ‘mellanmannen’ (värdens OS) i processen stängs av.

Inbyggda hypervisorer används normalt för storskaliga virtuella företagsmaskiner, som företag använder för att förse anställda med serverresurser. Microsoft Azure eller Amazon Web Services är virtuella datorer som är värd för denna typ av arkitektur. Andra exempel är KVM, Microsoft Hyper-V och VMware vSphere.

Hosted Hypervisor

Hosted hypervisorer körs på standardoperativsystem – precis som alla andra program som vi kör på våra maskiner. De använder värdens operativsystem för att hantera och distribuera resurser. Denna typ av hypervisor är bättre lämpad för enskilda användare som behöver köra flera operativsystem på sina maskiner.

Dessa inkluderar applikationer som Oracle VirtualBox, VMware Workstations, VMware Fusion, Parallels Desktop och många andra. Du kan hitta mer detaljerad information om värdhypervisorer i vår artikel, Bästa programvaran för virtuella maskiner.

Varför använda virtuella maskiner?

Nu när du har en grundläggande förståelse för vad en virtuell maskin är, kan du förmodligen komma på några utmärkta applikationer. Här är några av de främsta anledningarna till att människor använder virtuella maskiner.

1. Kostnadseffektiv

Virtuella maskiner är kostnadseffektiva i många situationer. En av de mest framstående är i företagsvärlden. Att använda fysiska servrar för att tillhandahålla resurser till anställda kan bli mycket dyrt. Hårdvaran är inte billig och att underhålla den är ännu dyrare.

Användningen av virtuella maskiner som företagsservrar har nu blivit normen. Med virtuella datorer från en leverantör som MS Azure finns det inga initiala maskinvaruköp och inga underhållsavgifter. Dessa virtuella datorer kan ställas in, konfigureras och användas för bara ören per timme. De kan också stängas av när de inte används och medför inga kostnader alls.

Att använda en virtuell dator på din maskin kan också spara mycket pengar. Om du behöver arbeta i flera operativsystem eller olika hårdvarukonfigurationer kan du göra det
använd flera virtuella maskiner på en värd – du behöver inte gå ut och köpa en separat dator för varje uppgift.

2. Skalbar och flexibel

Oavsett om de är företagsservrar eller virtuella datorer som körs på din bärbara dator är virtuella maskiner skalbara. Det är enkelt att anpassa resurserna för att passa dina behov. Om du behöver mer minne eller hårddiskutrymme, gå bara in i hypervisorn och konfigurera om den virtuella datorn så att den har mer. Det finns inget behov av att köpa ny hårdvara, och processen kan slutföras snabbt.

3. Snabb installation

En ny virtuell dator kan konfigureras snabbt. Jag har haft fall där jag behövt en ny VM-installation, ringt min kollega som hanterar dem och hade dem redo att användas på mindre än en timme.

4. Katastrofåterställning

Om du försöker förhindra dataförlust och förbereda dig för katastrofåterställning kan virtuella datorer vara ett fantastiskt verktyg. De är lätta att säkerhetskopiera och kan distribueras på olika platser vid behov. Om en tredje part som Microsoft eller Amazon är värd för de virtuella maskinerna kommer de att vara utanför platsen – vilket innebär att din data är säker om ditt kontor brinner ner.

5. Lätt att reproducera

De flesta hypervisorer låter dig göra en kopia, eller bild, av en virtuell dator. Imaging låter dig enkelt spinna upp exakta reproduktioner av samma bas-VM för alla situationer.

I den miljö som jag arbetar i ger vi varje utvecklare en virtuell dator att använda för utveckling och testning. Denna process tillåter oss att ha en bild konfigurerad med alla nödvändiga verktyg och programvara. När vi har fått en ny utvecklare på plats behöver vi bara göra en kopia av den bilden, och de har vad de behöver för att börja fungera.

6. Perfekt för Dev/Test

En av de bästa fördelarna med att använda virtuella maskiner är att de är ett perfekt verktyg för mjukvaruutveckling och testning. VM:er tillåter utvecklare att utveckla på flera plattformar och miljöer på en maskin. Om den virtuella datorn blir skadad eller förstörd kan en ny snabbt skapas.

De tillåter en testare att ha en ren ny miljö för varje testcykel. Jag har arbetat med projekt där vi ställer in automatiserade testskript som skapar en ny virtuell dator, installerar den senaste mjukvaruversionen, kör alla nödvändiga tester och tar sedan bort den virtuella datorn när testerna har slutförts.

VM:er fungerar utmärkt för produkttester och recensioner som de vi gör här på TechFewer.com. Jag kan installera appar i en virtuell dator som körs på min maskin och testa dem utan att störa min primära miljö.

När jag har testat klart kan jag alltid ta bort den virtuella maskinen och sedan skapa en ny när jag behöver den. Denna process låter mig också testa på flera plattformar även om jag bara har en Windows-maskin.

slutord

Som du kan se är virtuella maskiner ett kostnadseffektivt, mångsidigt verktyg som kan användas för många applikationer. Vi behöver inte längre köpa, installera och underhålla dyr hårdvara för att ge serveråtkomst för testare, utvecklare och andra. VM:er ger oss flexibiliteten att enkelt och snabbt skapa de operativsystem, hårdvara och miljöer vi behöver – när som helst.