Virtualisointi

Virtualisointitapoja

Virtualisointi on laaja termi, joka viittaa moniin eri tapoihin tehdä tietojenkäsittelyn resursseista abstrakteja. Alla on listattu joitakin yleisimpiä virtualisointitekniikoita.

Ohjelmien virtualisointi

Virtuaalikone on ympäristö, joka suorittaa ohjelmia kuten tietokone. Termiä on käytetty Java-tavukoodia suorittavasta ohjelmasta ja Microsoftin .NET-ympäristön tavukoodia suorittavasta Common Language Runtime-ympäristöstä.
Samaa termiä käytetään myös ympäristöstä joka simuloi kokonaista tietokonetta isäntäjärjestelmän alla. Virtuaalikone voi emuloida toista järjestelmää laitetasolla siten, että siinä ajettavan käyttöjärjestelmän laiteajurit toimivat, mutta jotkut ympäristöt tarjoavat käyttöön laiteajurit, joilla voidaan käyttää virtuaalikoneen tarjoamaa "laitteistoa."
Laitteiston virtualisointi ja erillisten käyttöjärjestelmäympäristöjen ajaminen on ollut pitkään tuttua mainframe-koneissa, kuten IBM:n ZSeries ja z/VM.

PC-koneissa

PC-koneissa virtualisoinnin edelläkävijänä oli VMware-yhtiö. Virtualisoinnin edeltäjiä olivat emulaattoriohjelmat, jotka jäljittelevät kokonaista suoritinta suorittamalla sen käskyjä yksi kerrallaan. VMwaren tekniikassa konekoodia suoritettiin suoraan koneen suorittimella, mutta ohjelmisto muuttaa suoraan ajettavaksi soveltumatonta koodia ajon aikana (yhtiö käyttää tekniikasta termiä binary translation). Näin saavutettiin jopa 80 % natiivin koodin nopeudesta.
Vuonna 2005 VMware ehdotti virtualisoinnin nopeuden parantamiseen käyttöjärjestelmien muuttamista tukemaan virtualisointia (ns. Virtual Machine Interface, VMI). Tekniikasta käytetään nimeä paravirtualisointi. Tässä käyttöjärjestelmää muutetaan laitteiston sijaan ajettavaksi ns. virtuaalikonemonitorin eli hypervisorin alla. Hypervisorin alla pyörivä käyttöjärjestelmä voi ajaa tavallisia ohjelmia normaalisti.
Virtualisoinnin suosion kasvaessa PC-suorittimiin lisättiin sitä tukevia toimintoja (Intelin VT-x marraskuussa 2005, AMD-V toukokuussa 2006 julkaistuissa suorittimissa). Joistain halvemman sarjan suorittimista nämä ominaisuudet puuttuvat. Uusien ominaisuuksien avulla virtualisointiohjelmistot pystyvät ajamaan olemassa olevia käyttöjärjestelmiä muuttamattomina.

Laiteresurssien virtualisointi

Yksi tavallisimmista virtualisointikohteista käyttöjärjestelmissä on muisti, jota laajennetaan ns. virtuaalimuistin avulla. Käyttöjärjestelmä osaa vapauttaa tai siirtää käyttämätöntä muistia RAM-muistista kiintolevylle.
Yhdistelemällä laiteresursseja suuremmiksi kokonaisuuksiksi voidaan muodostaa laajempia resursseja tai resurssipooleja. Esimerkiksi RAID-levyjärjestelmät ja loogisten taltioiden hallintajärjestelmät (LVM, Logical Volume Management) yhdistelevät useita levyjärjestelmiä yhdeksi suureksi loogiseksi levytilaksi. Verkkolaitteet voivat käyttää useita rinnakkaisia kanavia, ja antaa vaikutelman yhdestä laajempikaistaisesta yhteydestä. Pisimmälle vietynä tietokoneryppäät eli klusterit toteuttavat kaiken tämän.

Data virtualisointi

Data virtualisointi on lähestymistapa tietojen keräämiseksi yhdestä kerroksesta useista lähteistä niin, että sovellukset, raportointityökalut ja loppukäyttäjät voivat käyttää tietoja ilman alkuperäislähteen, sijainnin ja tietorakenteiden yksityiskohtia.