Virtualisointijärjestelmät

Käyttöjärjestelmien virtualisointi on ollut kasvava trendi viimeisen kymmenen vuoden aikana mm. palvelimien jatkuvasti kasvaneen kapasiteetin ja virtualisoinnin saaman laitetason tuen ansiosta. Käymme tässä jutussa läpi yleisimmät virtualisointijärjestelmät ja tarjoamme hieman taustatietoa virtualisoinnista ja sen vaatimuksista.

Nykyään yleisessä käytössä oleva virtualisointi voidaan loogisesti jakaa seuraaviin osa-alueisiin:

  • käyttöjärjestelmien virtualisointi
  • ohjelmatason virtualisointi
  • työpöytävirtualisointi

Näistä käyttöjärjestelmien virtualisointi on se, mitä yleensä tarkoitetaan, kun puhutaan "virtualisoinnista". Useimmiten palvelintietokone, mutta myös henkilökohtainen työasema, voi olla virtualisointilaitteistona sopivan ohjelmiston avulla (hypervisor). Riippuen siitä, ottaako hypervisor koko koneen hallintaansa, vai voiko koneella myös ajaa muita ohjelmia samaan aikaan, puhutaan tyypin 1 tai tyypin 2 hypervisorista. Yleensä työpöytäkoneissa ajetaankin näin ollen tyypin 2 hypervisoreita, jotta koneella voi tehdä myös muita töitä.

Ohjelmatason virtualisoinnissa loppukäyttäjille tarjotaan työympäristön ohjelmat virtualisoituna siten, ettei ohjelmia ajeta käyttäjän henkilökohtaisella työasemalla, vaan palvelimella. Ainoastaan ohjelman ikkunat piirretään käyttäjän työaseman ruudulle, mutta ohjelma itse sekä fyysisesti että loogisesti sijaitsee palvelimella.

Työpöytävirtualisoinnissa tarjotaan loppukäyttäjille koko henkilökohtainen työasema/työpöytä virtuaalisena siten, että käyttäjällä on käytössään vain ns. päätelaite (tämä voi tietysti olla myös varsinainen työasemakone asiakasohjelmistolla), jolla verkon yli otetaan yhteys palvelimella ajossa olevaan varsinaiseen (virtuaali)koneeseen. Näin kaikki ohjelmat ja työpöytä dokumentteineen sijaitsevat palvelimella, eivät käyttäjän "omalla" koneella. Vain ruudunpäivitykset lähetetään verkon yli.

Ohjelmien ja työpöytien virtualisointi yleensä vaatii taustalleen palvelimella ajossa olevan käyttöjärjestelmävirtualisoinnin, sillä virtuaalisen työpöydän luomiseksi on jokaista käyttäjää varten oltava oma virtuaalinen käyttöjärjestelmänsä. Nämä voivat olla joko persistenttejä tai transientteja tarpeesta ja toteutuksesta riippuen. Microsoft tarjoaa myös virtuaalisia työpöytiä Terminal Server -toiminnallisuudella, mikä toteutukseltaan on hieman erilainen eikä vaadi taustalle laitteistotason virtualisointia, mutta kylläkin Windows Serverin.

 

Esimerkkejä

Käyttöjärjestelmän virtualisointi Ohjelmatason virtualisointi
Työpöytävirtualisointi
Type 1 hypervisor
Type 2 hypervisor
  • Vmware ESXi
  • Citrix XenServer
  • Microsoft HyperV
  • Vmware Workstation
  • Linux KVM
  • Virtualbox
  • Vmware ThinApp
  • Microsoft App-V
  • Citrix XenApp
  • Vmware Horizon
  • Microsoft Terminal Server
  • Citrix XenDesktop

 

Taustatekniikkaa

Laitetason virtualisoinnissa hypervisor emuloi tiettyä laitekokonaisuutta, joka virtuaalikoneille näkyy kokonaisena tietokoneena. Osa näistä laitteista on kriittisiä virtualisoinnin nopeuden kannalta (verkkokortti, levyohjain), ja näille yleensä tarjotaankin joko nopeutetut tai täysin virtuaaliseen käyttöön kirjoitetut erityiset (paravirtualisoidut) ajurit. XenServer tukee myös koko virtuaalikoneen ajamista ns. paravirt-tilassa (tällä hetkellä vain Linux-käytössä), mikä tarkoittaa sitä, että virtualisoitun käyttöjärjestelmän ydin (kernel) tietää olevansa virtualisoitu ja auttaa hypervisoria aktiivisesti prosessin nopeuttamiseksi.

Virtualisoinnin tehokkuus on parhaimmillaan silloin, kun virtualisoidaan kevyehköjä kuormia, jolloin voidaan saavuttaa melko suuriakin konsolidaatiosuhteita (virtuaalikoneita per palvelin). Kokonaiskuormaa arvioitaessa pitää tietysti ottaa huomioon myös tallennusjärjestelmän suorituskyky (kaista ja IOPS), sillä tästä suurelta osin riippuu se, kuinka tiheään virtuaalisia palvelimia (ja työasemia) voidaan "pakata". Kuten kaikessa muussakin, levypyyntöjen hitaus siirtyy suoraan järjestelmän "tyhjäkäynniksi". Useimmissa virtualisointiratkaisuissa voidaan nykyään käyttääkin SSD-levyjä nopeuttamaan luku- ja kirjoitusoperaatioita (cache), jolloin saadaan levypyyntöjen hitaus usein minimoitua.

Tallennustila virtualisoinnissa toteutetaan usein ulkoisilla palvelimilla tai muilla jaetuilla tallennusratkaisuilla, sillä näin sama levytila saadaan useamman virtualisointipalvelimen käyttöön. Esimerkiksi virtuaalikoneiden siirto ajon aikana palvelimelta toiselle (live migration), kuormanjako-operaatiot ja varsinkin tehokas failover vaativat yleensä jaettua tallennustilaa. Usein kuitenkin pienemmissä toimintaympäristöissä riittää palvelimien paikallinen levytila. Mikäli käytetään jaettua tallennustilaa, on erityisen tärkeää, että koneiden välinen tietoliikenneverkko on riittävän nopea tarpeeseen (usein vähintään 10GbE); lisäksi tallennusratkaisun on oltava hyvin luotettava.

Virtuaalityöpöytien yleistymistä monilla aloilla on hidastanut 3D-kiihdytyksen puute, mutta tarkoitukseen erikseen tehdyillä palvelinnäytönohjaimilla voidaan nykyään tarjota XenServer-pohjaisille XenDesktop-virtuaalityöpöydille rautatason 3D-kiihdytys. Uusin kehitys tällä saralla on tietokonepelien virtauttaminen internetin yli.

 

Mikäli haluatte lisää tietoa virtualisoinnin suunnittelusta, mitoituksesta, toteutuksesta tai laitevaatimuksista, ottakaa yhteyttä myyntiimme (myynti@damicon.fi).