Virtualisointi

Virtualisointi tarkoittaa tietotekniikassa tekniikkaa virtuaalisen laitteen suorittamiseksi erotettuna varsinaisesta fyysisestä laitteesta.[1] Virtuaalinen laite on abstraktio varsinaisesta laitteesta.[1][2] Virtualisoinnissa 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.

VirtualisointitapojaMuokkaa

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

Sovellusten virtualisointiMuokkaa

Termiä virtuaalikone on käytetty Java-virtuaalikoneesta ja Microsoftin .NET-ympäristön Common Language Runtime-ympäristöstä, joissa ohjelma tehdään abstraktille koneelle ja käännetään kohdekoneelle ajonaikaisella kääntämisellä (tavukoodin tai välikielen kautta).

Koneiden virtualisointiMuokkaa

Hypervisor (myös virtual machine monitor, VMM[3]) on virtuaalikoneen suorittamiseen käytetty ohjelmistokerros.[2] Nämä jaetaan kahteen tyyppiin: suoraan laitteistolla suoritettava ja toisen käyttöjärjestelmän päällä suoritettava.[2] Kerros suorittaa ohjelmia kuten tietokone, mukaanlukien sen käyttöjärjestelmä. Hypervisorin alaisuudessa ajettava käyttöjärjestelmä voi ajaa tavallisia ohjelmia normaalisti.

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 käytössä suurtietokoneissa kuten IBM:n z/VM System z -alustalla.[4]

Henkilökohtaisilla tietokoneilla toimivan virtualisoinnin edelläkävijänä oli VMware-yhtiö.lähde? Virtualisoinnin edeltäjiä olivat emulaattoriohjelmat, jotka jäljittelevät kokonaista suoritinta suorittamalla sen käskyjä yksi kerrallaan (ajonaikainen kääntäminen, JIT). VMwaren tekniikassa konekoodia suoritettiin suoraan koneen suorittimella, mutta ohjelmisto muuttaa suoraan ajettavaksi soveltumatonta koodia ajon aikana (yhtiö käyttää tekniikasta termiä binary translation).lähde? Näin saavutettiin jopa 80 % natiivin koodin nopeudesta.lähde?

Emulaattorit on suunniteltu suorittamaan eri suorittimelle tehtyjä ohjelmia toisella laitteistoalustalla, kun taas virtualisointi voi käyttää laitteen omaa käskykantaa ja laitteistoa.[5][6] Emulaatio tulkitsee vierasalustan käskykannan mahdollistaen suorittamisen eri suorittimella.[6]

Käyttöjärjestelmän muuttamista virtualisoinnille kutsutaan paravirtualisoinniksi, jota tukevat muun muassa Xen ja User-mode Linux.[7]

Laitteistopohjaisen tuen lisääntyessä suorittimien käskykantalaajennoksilla (Intelin Intel VT, AMD:n AMD-V, Hyp mode ARM-suorittimille) erot ovat hämärtyneet.[7]

Säiliöinti on käyttöjärjestelmätason virtualisointi (kevyt prosessitason virtualisointi), jolla tehdään virtuaaliympäristöjä (engl. virtual environment, VE).[8] Docker vaikutti merkittävästi tämän suosioon ja yleistymiseen.[9][10]

Laiteresurssien virtualisointiMuokkaa

Yksi tavallisimmista virtualisointikohteista käyttöjärjestelmissä on muisti, jota laajennetaan virtuaalimuistin avulla. Käyttöjärjestelmä osaa vapauttaa tai siirtää käyttämätöntä muistia RAM-muistista kiintolevylle. Tallennuskapasiteetti voidaan virtualisoida muun muassa verkkolevyjärjestelmillä (hajautettu levyjärjestelmä, jaettu levyjärjestelmä) ja taltiohallinnalla.

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.

Verkon virtualisointiMuokkaa

Virtuaaliverkko on kyky luoda loogisia virtuaalisia verkkoja, jota ovat eriytetty verkkolaitteistosta.[11]

Työpöydän virtualisointiMuokkaa

Työpöydän virtualisoinnista puhutaan useiden etäkäyttöratkaisujen yhteydessä kuten: VNC, RDP, Linux Terminal Server Project ja X Window System. Etäkäyttöön liittyy läheisesti hajautettu tietojenkäsittely.

Eräät yritykset tarjoavat palveluita ja ohjelmistoja työpöydän siirtämiseksi datakeskukseen (VDI).[12]

OhjelmiaMuokkaa

Hypervisor-pohjaisia virtualisointiohjelmia ovat muun muassa:

Data virtualisointiMuokkaa

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.[13]

Katso myösMuokkaa

LähteetMuokkaa

  1. a b What is virtualization? opensource.com. Viitattu 6.3.2020. (englanniksi)
  2. a b c What is virtualization? ibm.com. Viitattu 6.3.2020. (englanniksi)
  3. Amit Shah: Ten years of KVM lwn.net. 2.11.2016. Viitattu 5.3.2020. (englanniksi)
  4. z/VM – A Brief Review of Its 40 Year History (PDF) 2012. IBM. Viitattu 17.8.2019.
  5. Chapter 1. Introduction to Bochs bochs.sourceforge.net. Viitattu 20.1.2020. (englanniksi)
  6. a b M. Tim Jones: Platform emulation with Bochs ibm.com. 25.1.2011. Viitattu 20.1.2020. (englanniksi)
  7. a b Irfan Habib: Virtualization with KVM linuxjournal.com. 1.2.2008. Viitattu 5.3.2020. (englanniksi) 
  8. Rami Rosen: Linux Containers and the Future Cloud (PDF) haifux.org. Viitattu 4.3.2020. (englanniksi)
  9. What is Docker and why is it so darn popular? 21.3.2018. ZDNet. Viitattu 6.3.2020. (englanniksi)
  10. Docker 101: What it is and why it’s important 10.6.2014. NetworkWorld. Viitattu 6.3.2020. (englanniksi) 
  11. What is Network Virtualization? - Definition sdxcentral.com. 26.8.2013. Viitattu 6.3.2020. (englanniksi) 
  12. HP VDI Moves to Center Stage zdnet.com. 19.8.2011. Viitattu 6.3.2020. (englanniksi) 
  13. What is Data Virtualization? www.datawerks.com. Viitattu 11.4.2018. (englanniksi)