Hva er en virtuell maskin? (Hvorfor og når du skal bruke det)

Hvis du jobber i eller rundt programvareindustrien, har du sikkert hørt om virtuelle maskiner. Hvis ikke, lurer du kanskje på hva de er og hva de brukes til.

Som programvareingeniør bruker jeg virtuelle maskiner daglig. De er potente verktøy innen programvareutvikling, men de har også andre bruksområder. Også kjent som VM-er, bruker mange bedrifter dem på grunn av deres fleksibilitet, pålitelighet og kostnadseffektivitet; de forhindrer også katastrofer fra løpende programvaretesting.

La oss ta en titt på hva virtuelle maskiner er og hvorfor de brukes.

Hva er en virtuell maskin?

En virtuell maskin er en forekomst av et operativsystem (OS) som Windows, Mac OS eller Linux som kjører innenfor hovedoperativsystemet til en datamaskin.

Vanligvis kjører den i et appvindu på skrivebordet ditt. En virtuell maskin har full funksjonalitet og fungerer som en egen datamaskin eller maskin. I hovedsak er en virtuell maskin en virtuell datamaskin som kjører inne i en annen datamaskin kjent som vertsmaskinen.

Virtuell maskin 1
Bilde 1: Virtuell maskin som kjører på en bærbar datamaskin.

En virtuell maskin har ikke maskinvare (minne, harddisk, tastatur eller skjerm). Den bruker simulert maskinvare fra vertsmaskinen. På grunn av dette kan flere VM-er, også referert til som ‘gjester’, kjøres på en enkelt vertsmaskin.

Virtuell maskin 2
Bilde 2: Vertsmaskin som kjører flere VM-er.

Verten kan også kjøre flere VM-er med forskjellige operativsystemer, inkludert Linux, Mac OS og Windows. Denne egenskapen avhenger av programvare kalt hypervisor (se bilde 1 ovenfor). Hypervisoren kjører på vertsmaskinen og lar deg opprette, konfigurere, kjøre og administrere virtuelle maskiner.

Hypervisoren tildeler diskplass, planlegger behandlingstid og administrerer minnebruk for hver VM. Dette er hva applikasjoner som Oracle VirtualBox, VMware, Parallels, Xen, Microsoft Hyper-V og mange andre gjør det: de er hypervisorer.

En hypervisor kan kjøres på en bærbar PC, PC eller server. Den gjør virtuelle maskiner tilgjengelige for den lokale datamaskinen eller brukere distribuert over et nettverk.

Ulike typer virtuelle maskiner og miljøer krever forskjellige typer hypervisorer. La oss ta en titt på noen av dem.

Typer virtuelle maskiner

System virtuelle maskiner

System VM-er, noen ganger kalt full virtualisering, kjøres av en hypervisor og gir funksjonaliteten til et faktisk datasystem. De bruker vertens opprinnelige operativsystem til å administrere og dele systemressurser.

Virtuelle systemmaskiner krever ofte en kraftig vert med raske eller flere CPUer, store mengder minne og tonnevis med diskplass. Noen, som kjører på personlige eller bærbare datamaskiner, krever kanskje ikke den datakraften som virtuelle servere for store bedrifter trenger; de vil imidlertid kjøre sakte hvis vertssystemet ikke er tilstrekkelig.

Behandle virtuelle maskiner

Prosess virtuelle maskiner er ganske forskjellige fra SVM-er – du kan ha dem kjørende på maskinen din og ikke engang vet det. De er også kjent som virtuelle applikasjonsmaskiner eller administrerte kjøretidsmiljøer (MRE). Disse virtuelle maskinene kjører i et vertsoperativsystem og støtter applikasjoner eller systemprosesser.

Hvorfor bruke en PVM? De utfører tjenester uten å være avhengig av spesifikke operativsystemer eller maskinvare. De har sitt eget lille OS med bare ressursene de trenger. MRE er i et eget miljø; det spiller ingen rolle om det kjører på Windows, Mac OS, Linux eller en annen vertsmaskin.

En av de vanligste prosessvirtuelle maskinene er en du sikkert har hørt om og kanskje har sett kjøre på datamaskinen din. Den brukes til å kjøre Java-applikasjoner og kalles Java Virtual Machine eller JVM for kort.

Typer hypervisorer

De fleste virtuelle maskinene vi er opptatt av bruker en hypervisor fordi de emulerer et helt datasystem. Det finnes to forskjellige typer hypervisorer: Bare Metal Hypervisors og Hosted Hypervisors. La oss ta en rask titt på dem begge.

Bare Metal Hypervisor

BMH-er kan også kalles native hypervisorer, og de kjører direkte på vertens maskinvare i stedet for å kjøre i vertens operativsystem. Faktisk tar de plassen til vertens operativsystem, planlegger og administrerer maskinvarebruk av hver virtuell maskin, og kutter dermed ut ‘mellommannen’ (vertens OS) i prosessen.

Innfødte hypervisorer brukes vanligvis for store bedrifts-VM-er, som bedrifter bruker for å gi ansatte serverressurser. Microsoft Azure eller Amazon Web Services er virtuelle maskiner som er vert for denne typen arkitektur. Andre eksempler er KVM, Microsoft Hyper-V og VMware vSphere.

Hosted Hypervisor

Vertsbaserte hypervisorer kjører på standard operativsystemer – akkurat som alle andre applikasjoner vi kjører på maskinene våre. De bruker vertens OS til å administrere og distribuere ressurser. Denne typen hypervisor er bedre egnet for individuelle brukere som trenger å kjøre flere operativsystemer på maskinene sine.

Disse inkluderer applikasjoner som Oracle VirtualBox, VMware Workstations, VMware Fusion, Parallels Desktop og mange andre. Du kan finne mer detaljert informasjon om vertsbaserte hypervisorer i artikkelen vår, Beste virtuelle maskinprogramvare.

Hvorfor bruke virtuelle maskiner?

Nå som du har en grunnleggende forståelse av hva en virtuell maskin er, kan du sannsynligvis tenke på noen utmerkede applikasjoner. Her er noen av de viktigste grunnene til at folk bruker virtuelle maskiner.

1. Kostnadseffektiv

Virtuelle maskiner er kostnadseffektive i mange situasjoner. En av de mest fremtredende er i bedriftsverdenen. Å bruke fysiske servere for å skaffe ressurser til ansatte kan være svært kostbart. Maskinvaren er ikke billig, og vedlikehold av den er enda dyrere.

Bruken av virtuelle maskiner som bedriftsservere har nå blitt normen. Med VM-er fra en leverandør som MS Azure er det ingen innledende maskinvarekjøp og ingen vedlikeholdsavgifter. Disse VM-ene kan settes opp, konfigureres og brukes for bare en krone i timen. De kan også slås av når de ikke er i bruk og medfører ingen kostnader i det hele tatt.

Å bruke en VM på maskinen din kan også spare mye penger. Hvis du trenger å gjøre arbeid i flere operativsystemer eller forskjellige maskinvarekonfigurasjoner, kan du
bruk flere virtuelle maskiner på én vert – du trenger ikke gå ut og kjøpe en separat datamaskin for hver oppgave.

2. Skalerbar og fleksibel

Enten de er bedriftsservere eller virtuelle maskiner som kjører på den bærbare datamaskinen, er virtuelle maskiner skalerbare. Det er enkelt å justere ressursene for å passe dine behov. Hvis du trenger mer minne eller harddiskplass, går du bare inn i hypervisoren og konfigurerer VM-en på nytt for å ha mer. Det er ikke nødvendig å kjøpe ny maskinvare, og prosessen kan fullføres raskt.

3. Rask oppsett

En ny VM kan settes opp raskt. Jeg har hatt tilfeller der jeg trengte et nytt VM-oppsett, ringte kollegaen min som administrerer dem, og hadde dem klare til bruk på mindre enn en time.

4. Katastrofegjenoppretting

Hvis du prøver å forhindre tap av data og forberede deg på katastrofegjenoppretting, kan VM-er være et fantastisk verktøy. De er enkle å sikkerhetskopiere og kan distribueres på forskjellige steder ved behov. Hvis en tredjepart som Microsoft eller Amazon er vert for de virtuelle maskinene, vil de være utenfor stedet – noe som betyr at dataene dine er trygge hvis kontoret ditt brenner ned.

5. Enkel å reprodusere

De fleste hypervisorer lar deg lage en kopi, eller bilde, av en VM. Bildebehandling lar deg enkelt spinne opp eksakte reproduksjoner av den samme base VM for enhver situasjon.

I miljøet jeg jobber i gir vi hver utviklere en VM som kan brukes til utvikling og testing. Denne prosessen lar oss ha et bilde konfigurert med alle nødvendige verktøy og programvare. Når vi har en ny utvikler, er alt vi trenger å gjøre å lage en kopi av det bildet, og de har det de trenger for å komme i gang.

6. Perfekt for Dev/Test

En av de beste fordelene med å bruke virtuelle maskiner er at de er et perfekt verktøy for programvareutvikling og testing. VM-er lar utviklere utvikle på flere plattformer og miljøer på én maskin. Hvis den virtuelle maskinen blir ødelagt eller ødelagt, kan en ny raskt opprettes.

De lar en tester ha et rent nytt miljø for hver testsyklus. Jeg har jobbet med prosjekter der vi setter opp automatiserte testskript som lager en ny VM, installerer den nyeste programvareversjonen, kjører alle nødvendige tester, og sletter VM-en når testene er fullført.

VM-er fungerer utmerket for produkttesting og anmeldelser som de vi gjør her på TechFewer.com. Jeg kan installere apper i en VM som kjører på maskinen min og teste dem uten å rote til primærmiljøet mitt.

Når jeg er ferdig med å teste, kan jeg alltid slette den virtuelle maskinen, og deretter opprette en ny når jeg trenger den. Denne prosessen lar meg også teste på flere plattformer selv om jeg bare har en Windows-maskin.

Avsluttende ord

Som du kan se, er virtuelle maskiner et kostnadseffektivt, allsidig verktøy som kan brukes til mange applikasjoner. Vi trenger ikke lenger å kjøpe, konfigurere og vedlikeholde dyr maskinvare for å gi servertilgang for testere, utviklere og andre. VM-er gir oss fleksibiliteten til å enkelt og raskt lage operativsystemene, maskinvaren og miljøene vi trenger – når som helst.