Virtuaalikone

Johdanto

Virtuaalikone (harv. näennäiskone, engl. Virtual Machine, VM) on ohjelmallisesti toteutettu tietokone, jossa voidaan ajaa ohjelmia kuin aidossa koneessa virtualisointitekniikan avulla.

Alun perin yhdysvaltalaiset Gerald J. Popek ja Robert P. Goldberg määrittelivät virtuaalikoneen olevan "aidon koneen tehokas ja eristetty vastine". Nykyään on käytössä virtuaalikoneita, joille ei ole olemassa lainkaan todellisia laitteistototeutuksia.

Virtuaalikonemonitori tai hypervisor on ohjelma, laiteohjelma tai laitteisto, joka suorittaa virtuaalikoneita.

Mikrovirtuaalikone

Mikrovirtuaalikone (Micro-VM tai microVM) tarkoittaa kevennettyä virtuaalikonetta, jota on karsittu ja hypervisor ei tarjoa eräitä laitteita sille lainkaan. Esimerkiksi PCI-väylä ja ACPI eivät ole saatavilla, vaan virtuaalikoneella on vain muutama laite. Tällä saadaan nopeutettua virtuaalikoneiden käynnistymistä ja tuhoamista lyhytaikaisten eristettyjen toimintojen suorittamista varten, ja virtuaalikoneen tarvitsema muistimäärä on pieni.

Yhdellä palvelimella voidaan ajaa tuhansia mikrovirtuaalikoneita. Mikrovirtuaalikoneiden konsepti syntyi 1960-luvulla IBM:n projektissa M44/44X, jossa käyttöjärjestelmää muokattiin paravirtualisoinnin tapaan (vertaa Xen). M44/44X johti myös CP-40 -hypervisorin kehittämiseen S/360:lle ja CP/CMS:n kehitykseen.

Erään esityksen mukaan koska osa mikrovirtuaalikoneen toiminnoista ohjataan isäntäympäristön ytimelle suorituskyvyn vuoksi, tätä saatetaan käyttää ohittamaan virtuaaliympäristön tarjoamia suojauksia hyökkäyksessä isäntäympäristöön.

Virtuaalikoneen hyödyt

Virtuaalikonetta käytettäessä yhden fyysisen tietokoneen resurssit (kiintolevy, suoritinaika, jne.) voidaan hyödyntää mahdollisimman tehokkaasti jakamalla ne usealle virtuaalikoneelle. Tällaisella menetelmällä saadaan aikaiseksi tehokkaampi tietokoneen hyödyntäminen esimerkiksi tilanteissa, joissa useampaa virtuaalikonetta tarvitaan harvoin, mutta niiden tulisi olla aina saatavilla.

Yrityskäytössä virtuaalikoneilla on helppoa testata mm. käyttöjärjestelmien päivityksiä, ohjelmien asentumista, tietoturvaa sekä muita erilaisia ongelmatilanteita, joiden testaaminen loppukäyttäjän laitteella voi olla epäkäytännöllistä tai mahdotonta.

Virtuaalikoneilla on useita hyödyllisiä ominaisuuksia: pienempiä määriä fyysisiä laitteita on helpompaa ylläpitää ja niiden toimintaa valvoa, virtualisointi parantaa laitteiden vikasietoisuutta sekä virtuaalitietokoneita on mahdollista liikutella fyysisiltä palvelimilta toisille.

Virtuaalikoneen historiaa

Virtualisoinnin kehittämisen aloitti 1960-luvun alussa IBM eli International Business Machines Corporation, kun haluttiin tapa, jolla yksi fyysinen kone saataisiin jaettua moneen virtuaalikoneeseen. Tuohon aikaan keskusyksiköt olivat hyvin kalliita ja sen takia alettiin miettimään miten yhden koneen resurssit saataisiin jaettua mahdollisimman tehokkaasti käytön maksimoimiseksi.

Alkuun keskusyksiköt suunniteltiin siten, että ne pystyvät suorittamaan vain yhden annetun tehtävän kerrallaan. Ajan myötä IBM havaitsi, että tämä ei enää riitä ja alkoi tutkimaan keinoja jakaa yhden keskusyksikön resurssit paremmin.

Yksi käyttäjä ei pystynyt käyttämään kaikkia tietokoneen resursseja tehokkaasti ja hyvin useasti käyttäjällä oli taukoja käsiteltävän tiedon syötössä koneelle. Nämä tauot saatiin täytettyä, kun pääsy yhdelle tietokoneelle annettiin useammalle käyttäjälle kerrallaan; kun yksi henkilö piti tauon tiedonsyötössä, tietokone pystyi käsittelemään toisen käyttäjän tehtäviä.

IBM:n ratkaisu ongelmaan oli hiukan erilainen. Sen sijaan, että yhden tietokoneen kaikki resurssit annettaisiin käyttöön suurelle ryhmälle, resurssit jaettiin pienempiin osiin, joista jokainen käyttäjä sai oman virtuaalikoneensa. Tämä oli paljon luotettavampi tapa, sillä yksittäinen käyttäjä ei pystynyt enää kaatamaan koko konetta toimillaan.

Muita määritelmiä

JVM eli java-virtuaalikone on virtuaalitietokone, joka suorittaa sille käännettyjä Java-ohjelmia. JVM on toteutettu ohjelmallisesti oikean laitteiston ja käyttöjärjestelmän päällä ajettavaksi. Java-kielellä tehdyt ohjelmat käännetään tavukoodiksi ja suoritetaan JVM:llä oikeassa ympäristössä. Virtuaalikoneita ja -ympäristöjä

lähteet

Wikipedia virtuaalikone

Wikiversity virtuaalikone