Virtualisointi
Virtualisointi tarkoittaa tietojenkäsittelyssä tekniikkaa, jolla jonkin fyysisen resurssin tekniset piirteet piilotetaan muilta järjestelmiltä, sovelluksilta ja loppukäyttäjiltä, jotka käyttävät näitä resursseja. Täten yksi fyysinen resurssi (kuten palvelin, käyttöjärjestelmä, sovellus tai tallennusväline) voi toimia monena loogisena resurssina, tai useat fyysiset resurssit (kuten tallennuslaitteet tai palvelimet) näkyvät yhtenä loogisena resurssina. Tätä uutta "virtuaalista" näkymää taustalla oleviin resursseihin ei rajoita niiden toteutus, maantieteellisen sijainti tai fyysinen konfigurointi. Useimmin virtualisoituja resursseja ovat laskenta- ja tallennuskapasiteetti.
Virtualisointi on laaja termi, joka viittaa moniin eri tapoihin tehdä tietojenkäsittelyn resursseista abstrakteja. Alla on listattu joitakin yleisimpiä virtualisointitekniikoita.
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 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.
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.
"Hypervisor"-pohjaisia virtualisointiohjelmia ovat muun muassa:
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.