PC-käyttäjät ry Kaapelitehdas, 21.2.2007 Jari Nopanen Virtualisointi-ilta PC-käyttäjät ry Kaapelitehdas, 21.2.2007 Jari Nopanen
Virtualisointi tietojenkäsittelyssä Tekniikka, jolla jonkin fyysisen resurssin tekniset piirteet piilotetaan muilta järjestelmiltä, sovelluksilta ja loppukäyttäjiltä, jotka käyttävät näitä resursseja. Yksi fyysinen resurssi voi toimia monena loogisena resurssina tai monet fyysiset resurssit näkyvät yhtenä loogisena resurssina
Virtuaalinen ... Virtuaalimuisti Metatietokoneet (cluster, grid) Virtual private network (VPN) Virtual private database (VPD) Järjestelmäemulaattorit/simulaattorit Tallennuskapasiteetin virtualisointi (Storage Array - RAID, SAN, ...)
Virtuaalikoneet Java Virtual Machine (JVM) ja .NET (CLR), ... Simuloivat sellaista määriteltyä ajoympäristöä, jota vastaavaa todellista laitteistoa ei ole olemassa. Yhteensopivuus eri arkkitehtuureissa VmWare, VirtualPC, Xen, KVM, Qemu, ... Simuloivat laitteistoa siten, että käyttöjärjestelmä luulee toimivansa todellisessa fyysisessä laitteistossa
Virtualisoinnin historiaa Ei ole uusi keksintö, ollut käytössä mm. IBM:llä jo 1960-luvulla (IBM M44) (koejärjestelmä) IBM Mainframe-ympäristöissä (CP/CMS, z/VM) Monissa UNIX-palvelimissa (esim. SUN, IBM) x86-arkkitehtuurin suorituskyvyn, kapasiteetin ja ominaisuuksien kehittyessä tullut mielekkääksi mahdollisuudeksi myös PC-laitteistoihin
Monta aktiivista käyttöjärjestelmää yhtäaikaisesti Fyysisten resurssien abstrahoimisen vuoksi virtuaali-ympäristön voi toteuttaa siten, että se mahdollistaa useiden eri käyttöjärjestelmien tai samojen käyttö-järjestelmien eri ilmentymien ajamisen yhtäaikaisesti. Esimerkki ympäristöstä kuudella käyttöjärjestelmällä Windows XP (ilmenemä 1) Linux Sun Solaris 10 FreeBSD Windows XP (ilmenemä 2) Windows Vista
Parallels Apple Macintosh (intel-pohjainen) Apple Mac OS X Windows Mahdollistaa mäkissä MacOS:n ja esim. Windowsin ajamisen samanaikaisesti
Virtualisoinnin hyödyt palvelinkäytössä Palvelinlaiteresurssien tehokkaampi hyödyntäminen (kustannussäästöt) Yksi fyysinen palvelin voi ajaa useita kevyitä palveluita virtuaalipalvelimilla (esim. WWW-sivujen hostaaminen) Tietoturva Mahdollistaa palveluiden eriyttämisen omiin virtuaalisiin käyttöjärjestelmiin ja rajoittamaan niihin pääsyn vain asiaan kuuluville henkilöille Demo/koulutusympäristöt (logipohjaisilla levyillä voidaan palauttaa helposti alkutilaan)
Virtualisoinnin hyödyt työasemakäytössä Mahdollistaa useamman käyttöjärjestelmän ajamisen samanaikaisesti (esim. Windows, Linux, Sun Solaris jne) Helpottaa ohjelmistokehitystä, ohjelmointivirheen sattuessa koko työasema ei kaadu vaan pelkästään virtuaalikone Helpottaa testaamista (esim. logipohjaiset levyt jotka voi palauttaa alkutilaansa)
Virtualisoinnin toteutus Intel x86-arkkitehtuurissa
x86 Intel/AMD Suojaustasot Ring 3 Rajoitetuin käskykanta Ring 2 Ring 1 Ring 0 Vahvin käskykanta
x86-Renkaat (ring) Ring 0 Käyttöjärjestelmän ydin Sallii kaikkien prosessorien konekielikäskujen ajamisen, esim. muistinhallintaan liittyvät Ring 1,2 KJ Palvelut (ei yleensä käytössä) Perinteisesti käyttöjärjestelmät eivät ole hyödyntäneet näitä renkaita johtuen sivu/segmenttirajoituksista renkaiden väleillä Konekielikäskykanta ei yhtä laaja kuin 0:lla mutta laajempi kuin 3:lla Ring 3 Käyttäjä (sovellus) prosessit Rajoitetulla käskykannalla taataan se, että sovellusohjelma ei voi kaataa koko järjestelmää x86_64-arkkitehtuurissa vain kaksi rengasta
x86-arkkitehtuurin suojaustasot Perinteinen, ilman virtualisointia Prosessorin suojaustasoja kutsutaan nimellä Ring (Vahvin käskykanta 0, heikoin 3) Ring 0 Käyttöjärjestelmän ydin (privil. ins) Ring 1 Ei käytössä Ring 2 Ei käytössä Ring 3 Sovellukset
x86-arkkitehtuurin suojaustasot VMware server, MS Virtual Server Ring 0 Isäntäkäyttöjärjestelmä (host) + virtuaalikonelaajennukset Ring 1 Ei käytössä Ring 2 Ei käytössä Ring 3 Sovellukset + vieraskäyttöjärjestelmät (guest) Vieraskäyttöjärjestelmien Ring0-tason vaatimat konekielikäskyt emuloidaan host-käyttöjärjestelmän laajennusten avulla avulla-> suorituskykyvaikutus
x86-arkkitehtuurin suojaustasot Xen (paravirtualisointi) Ring 0 Hypervisor (Xen) Ring 1 Käyttöjärjestelmän ydin (Xen-muokattu) Ring 2 Ei käytössä Ring 3 Sovellukset
x86-arkkitehtuurin suojaustasot Xen/ESX + laitteistovirtualisointituki Intel: Vanderpool (IVT) AMD: Pacifica (SVM) Ring –1 Hypervisor (Xen/VMWare ESX) Ring 0 Käyttöjärjestelmät (muokkaamattomat) Ring 1 Ei käytössä Ring 2 Ei käytössä Ring 3 Sovellukset
Hypervisor x86-ympäristössä (virtual machine monitor) Tyypin 1 hypervisor Ajautuu välittömästi raudan päällä (Ring –1 tai Ring 0) Käyttöjärjestelmät ajautuvat heti hypervisor-ringin päällä Esim. Xen, VMware ESX Server Tyypin 2 hypervisor Ajautuu käyttöjärjestelmäympäristössä (host), Ring 0 Lisäkäyttöjärjestelmät ajautuvat Ring 3:lla Esim. VMware Server, MS Virtual Server
Laitteistovirtualisointituen rajoituksia Vaikka x86-prosessoriarkkitehtuuriin on kehitetty tukea laitteistotasoiselle virtualisoinnille, historian painolasti (käskyt jotka soveltuvat huonosti virtualisointiin) edelleen ongelmana. Osa käskyistä edelleen emuloitava. Puutteellinen tuki muistin virtualisoinnille Ei tukea oheislaitevirtualisoinnille
Virtuaalikoneiden verkot Native Interface Virtuaalikoneella on oma fyysinen verkkoliitänsä Bridge Virtuaalikone/koneet jakavat host-käyttöjärjestelmän verkkoliitännän, jokaisella on kuitenkin oma IP-osoitteensa NAT (network address translation) Virtuaalikone/koneet jakavat host-käyttöjärjestelmän verkkoliitännän mutta esittäytyvät host-käyttöjärjestelmän IP-osoitteella Host-only Yksityinen verkko-osoite vain liikennöintiin guest- ja host-käyttöjärjestelmien välillä. Ei yhteyttä ulkoiseen verkkoon
Virtuaalikoneiden levyt Mahdollisuus käyttää fyysistä levypartitiota Mahdollisuus käyttää tiedostoa host-käyttöjärjestelmän levyllä virtuaalisena levynä (eivät ole yhteensopivia eri virtuaalikoneiden välillä, joitakin konversiovaihtoehtoja olemassa) Mahdollisuus käyttää CD/DVD-ROM / levyke-kuvaa tiedostona host-käyttöjärjestelmän levyllä tai fyysistä CD/DVD-ROM/Floppy-asemaa
Virtualisoidut laitteet (riippuen ohjelmasta) Prosessori ja PC-arkkitehtuuri Virtuaalikoneen muisti (käyttömuistin koko määrättävässä) Konsoli (näyttö, hiiri, näppäimistö) Kiintolevy (IDE, SCSI valittavissa) CD/DVD-rom, levyke (ajonaikaisesti kytkettävissä virtuaalikoneesta toiseen) Verkkokortti/kortit USB-laitteet Äänikortit
Virtuaalikoneet Xen Ilmainen MS Virtual PC/Server Ilmainen VMware Server Ilmainen VMware Player Ilmainen KVM / Qemu Ilmainen VMware Workstation Kaupallinen VMware ESX server Kaupallinen http://en.wikipedia.org/wiki/Comparison_of_Application_Virtual_Machines
Xen 3.0 Suorituskyky hyvä (paravirtualisointi) Vaatii ajettavan käyttöjärjestelmän ytimeen Xen-tuen Laitteistovirtuaalisointituella mahdollista ajaa myös Xen-tukemattomia käyttöjärjestelmiä Saatavilla x86, AMD64-arkkitehtuureille Dom0 Linux tai NetBSD DumU Linux, Net/Free/OpenBSD, Windows (jos laitteistotuki) SMP-tuki
Xen 3.0-arkkitehtuuri
VMware server Suorituskyky kohtalainen (binary translation) Ei vaadi laitteistolta virtualisointitukea, mutta osaa hyödyntää sitä Host käyttöjärjestelmä: Linux 32/64 bit, Windows Guest-käyttöjärjestelmät: 32/64bit Linux, Windows (kokeellinen Vista), Solaris SMP-tuki (kokeellinen, max 2 corea), myös virtuaalikoneet näkevät halutessa 2 CPU:ta Mahdollisuus ottaa etäyhteys virtuaalipalvelimen konsolille verkon yli Saatavilla valmiita virtuaalikoneimageja
Vmware snapshot Mahdollistaa levykuvan ottamisen, johon voidaan palata milloin tahansa myöhemmin Soveltuu hyvin koulutus- tai demoympäristökäyttöön, käyttäjät voivat harjoitella vapaasti, kaikki syötetty data katoaa ja muutettu palaa ennalleen kun virtuaalikone uudelleenkäynnistetään Mahdollisuus sitoutua muutoksiin (uusi snapshot) Käytännöllinen myös tuntemattoman ohjelman testaamiseen ilman riskinottoa
VMware converter 3.0
Microsoft Virtual Server / PC Suorituskyky kohtalainen Ei vaadi laitteistolta virtualisointitukea, mutta uudet versiot osaavat hyödyntää sitä Server palvelinkäyttöön, PC työasemakäyttöön, erikoisuneita ominaisuuksia käyttötarkoituksiin Host-käyttöjärjestelmä: Windows XP/2003 (32/64) Guest-käyttöjärjestelmät: (32 bit) Windows, Linux SMP-tuki mutta virtuaalikoneelle näkyy vain yksi CPU Server-versiolla etäkäyttötuki
KVM Suorituskyky hyvä Vaatii prosessorilta virtualisointituen Host-käyttöjärjestelmä: Linux Guest-käyttöjärjestelmät: Linux, Windows (ei SMP-tukea)
Demo VMware Windows-ympäristössä MS VirtualPC 2007 Xen-asennus Ubuntu 6.10-Linuxiin VMware converter svm/vmx flagit cpuinfo