206101310 Linux-järjestelmät Seminaarityö
2 AIHEET 1. VIRTUALISOINTI! Yleistä! Historiaa! Tyypit ja tekniikat! Hyötyjä ja ongelmia 2. WINE! Historiaa! Käyttöönotto ja toiminta! Ominaisuudet ja yhteisö! Hyötyjä ja ongelmia 3. VIRTUALISOINTIOHJELMISTOJA
3 VIRTUALISOINTI YLEISTÄ! Yksittäinen fyysinen resurssi Usea looginen resurssi! Virtualisoitujen resurssien todelliset ominaisuudet piilossa niiden käyttäjille! Rautapohjainen tai ohjelmistopohjainen ratkaisu! Virtualisointityypit ja -tekniikat
4 VIRTUALISOINTI HISTORIAA! 1960-luvulta eteenpäin! Christopher Strachey moniajo-ohjelmointi! Supertietokoneet (The Atlas Computer ja IBM M44/44X) virtuaalikone! 1972: IBM:n VM/370-käyttöjärjestelmä hypervisor! 1999: VMware x86-virtualisointialusta! Nykyisin arkipäivää yritys- ja yksityiskäytössä
5 VIRTUALISOINTI TYYPIT! Palvelinvirtualisointi! Tallennusvirtualisointi! Sovellusvirtualisointi! Työasemavirtualisointi! Verkkovirtualisointi
6 VIRTUALISOINTI PALVELINVIRTUALISOINTI! Fyysisen koneen laitteistoa hyödynnetään virtualisoimalla se loogisiksi resursseiksi! Virtuaalipalvelimet eli virtuaalikoneet! Laitteiston ja virtuaalikoneen välissä virtualisointikerros resurssien jako! Virtuaalikoneet eivät riippuvaisia toisistaan
7 VIRTUALISOINTI TALLENNUSVIRTUALISOINTI! Tallennuslaitteet virtualisointikerroksen taakse yhdeksi loogiseksi resurssiksi! Esimerkkejä: " Jaetut kansiot palvelimella " Käyttäjän kotihakemisto verkossa " NAS (Network-attached Storage) " SAN (Storage Area Network)! Säästöt, optimaalinen käyttö, tietojen turvallisuus
8 VIRTUALISOINTI SOVELLUSVIRTUALISOINTI! Sovellus irrotetaan käyttöjärjestelmästä ja toisista sovelluksista! Sovelluspaketit erillisissä virtualisointikerroksissa " Sisältävät kaikki sovelluksen asetukset, tiedostot, rekisterit ja kirjastot " Käyttävät käyttöjärjestelmän resursseja! Sovellus toimii paikallisesti, mutta sitä ei asenneta käyttöjärjestelmään! Käyttö verkon yli
9 VIRTUALISOINTI TYÖASEMAVIRTUALISOINTI! Työasemat välitetään käyttäjien päätteille välityspalvelimen (broker) avulla! Varsinainen käytettävä käyttöjärjestelmä (+ ohjelmat) palvelimella! Tietoturva paranee! Käyttö verkon yli! Paikallisen työaseman kuormitus vähenee mahdollista pyörittää tehottomimmillakin tietokoneilla
10 VIRTUALISOINTI VERKKOVIRTUALISOINTI! Verkkoresurssit ja -toiminnot yhtenäiseksi kokonaisuudeksi! Useat fyysiset verkot keskitetään yhdeksi virtuaaliseksi verkoksi! Esimerkkejä: " VLAN (Virtual Local Area Network) " VPN (Virtual Private Network)
11 VIRTUALISOINTI TEKNIIKAT! Täysvirtualisointi! Paravirtualisointi! Käyttöjärjestelmävirtualisointi! Natiivi virtualisointi! (Emulointi)
12 VIRTUALISOINTI TÄYSVIRTUALISOINTI! Rautapohjainen virtualisointi! Hypervisor-virtualisointikerros " Erottaa käyttöjärjestelmän fyysisistä resursseista! Virtuaalikoneet täysin eristetty toisistaan! Täysi käyttöjärjestelmien tuki muokkaaminen ei välttämätöntä! Ohjelmistoja: " VMware Fusion, VMware Workstation, Parallels Desktop, VirtualBox
13 VIRTUALISOINTI PARAVIRTUALISOINTI! Vieraskäyttöjärjestelmät tietoisia toisistaan! Tarvitsee isäntäkäyttöjärjestelmän! Hypervisor vain yksi vieraskäyttöjärjestelmä kerrallaan kiinni resursseihin! Edellyttää käyttöjärjestelmän tukea " Käyttöjärjestelmän muokkaustarve toimivuus rajapinnan kanssa! Ohjelmistoja: " Xen, UML (User-mode Linux)
14 VIRTUALISOINTI KJ-VIRTUALISOINTI! Käyttöjärjestelmätason virtualisointi! Käyttöjärjestelmiä ajetaan olemassa olevan käyttöjärjestelmän päällä! Virtualisoitu käyttöjärjestelmä näkee isäntäkoneen resurssit fyysisinä resursseina! Ei hypervisoria kaikki teho lähtee itse käyttöjärjestelmästä! Ohjelmistoja: " OpenVZ, Linux-VServer, Linux Containers (LXC)
15 VIRTUALISOINTI NATIIVI VIRTUALISOINTI! Laitteisto-ohjattu virtualisointi! Hybridivirtualisointi sekoitus täysvirtualisointia ja paravirtualisointia! Vieraskäyttöjärjestelmä pääsee ohjaamaan laitteistoa suoraan! Intel VT tai AMD-V -prosessorilaajennukset välttämättömiä! Käyttöjärjestelmän muokkaustarve kuten paravirtualisoinnissa
16 VIRTUALISOINTI EMULOINTI! Virtualisoinnin äärimuoto! Joskus eriytetään omaksi tekniikakseen! Toisen laitteistoarkkitehtuurin ohjelmia voidaan ajaa toisella alustalla ilman lähdekoodin muutoksia kaikki resurssit käytössä, mutta teho laskee! Binaarimuunnos edellyttää suorituskykyä! Esimerkkejä: " Java Virtual Machine (JVM), QEMU, DOSBox, Windows Phone Emulator
17 VIRTUALISOINTI HYÖTYJÄ & ONGELMIA! Kustannus- ja kulutussäästöt! Keskitetty hallinta! Varmuuskopiointi! Tilatarpeiden ja huoltojen vähentäminen! Tietoturva?! Yhteensopivuusongelmat ja suorituskyvyn ajoittainen ailahtelu! Taitolaji
18 WINE! Wine Is Not an Emulator! Avoimen lähdekoodin sovellus, jonka avulla Windows-ohjelmien ajaminen onnistuu muissa käyttöjärjestelmäympäristöissä! Windowsin API-rajapintakutsuja UNIX-alustan mukaiseksi tulkitseva ohjelmisto yhteensopivuusrajapinta! Netissä: WineHQ.org
19 WINE HISTORIAA! Kehitys alkoi vuonna 1993 16-bittiset Windows 3.x -ohjelmat! Alexandre Julliard johtanut projektia vuodesta 1994! 1995: Win32-tuki! CodeWeavers: CrossOver Plugin, CrossOver Office, nykyään CrossOver! TransGaming Technologies: WineX (Cedega)! v0.9b 25.10.2005 v1.0 17.06.2008 v1.2 16.07.2010 v1.4 07.03.2012! 64-bittinen versio kehitteillä 01/2009 lähtien
20 WINE KÄYTTÖÖNOTTO JA TOIMINTA! Asennus joko pakettienhallinnasta tai komentoriviltä: # yum install wine! Oletushakemisto: /home/user/.wine! Perustyökalut ohjelmavalikon Other-osion takana " Myös muita sisäänrakennettuja ohjelmia ajettavissa komentoriviltä " Kaikki komennot löytyvät netistä: http://wiki.winehq.org/listofcommands! Windows-ohjelmien asentaminen " Exe-tiedostosta tuplaklikkaamalla tai komentoriviltä: $ wine foo.exe " MSI-tiedostoille komento seuraavanlainen: $ wine start foo.msi " Wine Application Uninstaller
21 WINE KÄYTTÖÖNOTTO JA TOIMINTA! Windows-ohjelmien ajaminen " Ohjelmavalikosta / exe-tiedostosta / komentoriviltä seuraavasti: $ cd ~/.wine/drive_c/program\ Files $ cd Foo $ ls *.exe $ wine foo.exe " Ajaminen AINA tavallisena käyttäjänä (suositus!)
22 WINE KÄYTTÖÖNOTTO JA TOIMINTA! Winen asetuksien määrittäminen " Wine Configuration ohjelmavalikosta tai komentoriviltä: winecfg " Asetukset jaoteltu eri kategorioihin:! Applications Ohjelmakohtaiset Windows-yhteensopivuudet! Libraries DLL-tiedostojen korvaavuusmääritykset! Graphics Ikkuna- ja näyttöasetukset! Drives Asemien asetukset ja asematyökalut! Audio Ääniasetukset, ääniohjaimen valinta! Desktop Integration Custom-teemat, KJ-kansioiden osoitukset
23 WINE OMINAISUUDET! Etupäässä 32-bittisten ohjelmien ajaminen! 64-bittinen versio kesken 32-bittinen versio toimii 64-bittisillä alustoilla! Ohjelmakirjasto, Winelib ohjelmien kääntäminen Wineen omin avuin! Winetricks " Puuttuvat DLL-tiedostot, runtime-kirjastot jne. tunnetuista sijainneista " Asetusten määrittäminen ongelmien ratkaisemiseksi " Alun perin vain kehittäjien käytössä " Lisätietoja: https://code.google.com/p/winetricks/
24 WINE YHTEISÖ! Ohjelmistotietokanta (Application Database, AppDB)! Wiki (wiki.winehq.org)! FAQ! Bugzilla bugilistausjärjestelmä! Keskustelupalsta ja IRC-kanava! Kolmannen osapuolen muunnoksia: " WineBottler, WineXS, PlayOnLinux
25 WINE HYÖTYJÄ & ONGELMIA! Kaikki UNIX-ympäristön hyödyt käyttöön " Vakaus, joustavuus, etähallinta! Avoin lähdekoodi muokattavuus! Kokonaista käyttöjärjestelmää ei tarvita! Käyttäjäkunnan yhteisöllisyys! Kaikki ohjelmat / pelit eivät toimi tai tule koskaan toimimaan! Spyware, malware yms. huomioitava myös Wineä käytettäessä
26 VIRTUALISOINTIOHJELMISTOJA! Xen! KVM! VMware! QEMU! VirtualBox! OpenVZ! Parallels Workstation! UML! Linux-VServer! Virtual Machine Manager! LXC
27 VIRTUALISOINTIOHJELMISTOJA! XEN Hypervisor Paravirtualisointi (ja täysvirtualisointi) Ilmainen! KVM (KERNEL-BASED VIRTUAL MACHINE) Tukimekanismi Laitteistotason virtualisointi Hypervisor = Kernel! VMWARE Suljettu lähdekoodi Kaupallinen, paras Laaja sovellusvalikoima! QEMU Emulator + VM Ilmainen Laaja KJ-tuki KQEMU-lisäosa
28 VIRTUALISOINTIOHJELMISTOJA! VIRTUALBOX Ilmainen Linux, Windows & Mac OS X Köyhän miehen VMware! LXC (LINUX CONTAINERS) KJ-tason virtualisointi Ei olemassa varsinaisia virtuaalikoneita! OPENVZ KJ-tason virtualisointi Vain Linux-alustalle Avoin lähdekoodi! PARALLELS WORKSTATION Linux- & Windows-alustoille Laitteistoa emuloiva virtualisointiohjelma
29 VIRTUALISOINTIOHJELMISTOJA! UML (USER-MODE LINUX) Paravirtualisointi Virtuaalikone yhteydessä ytimeen Hidas! LINUX-VSERVER KJ-tason virtualisointi Muokkaamattomat kernelit VPS-toteutus! VIRTUAL MACHINE MANAGER UI Oletuksena monissa distroissa Rajapinta Xenille, KVM:lle tai QEMU:lle
30 VIRTUALISOINTIOHJELMISTOJA valinnanvaraa siis löytyy!