Virtuaalikoneen asennus ja päivitys
Virtualisointialustasta riippuen asennuskomennot vaihtelevat, mutta pääperiaate asennuksissa samankaltainen: määritellään minkälainen virtuaalikone luodaan ja kerrotaan mistä asennettava järjestelmä löytyy.
Virtuaalikoneen asennus ja päivitys
- Luotavan koneen ominaisuuksia:
- muistin määrä
- käytettävissä oleva levytila
- levyimagen koko, tallennuspaikka
- verkkoliitännät
- prosessoriarkkitehtuuri, prosessorien lukumäärä
Virtuaalikoneen asennus ja päivitys
- Asennuksen aikaisia valintoja:
- osiointi, levyjärjestelmä
- asennettavat ominaisuudet, ohjelmat
- verkkokokoonpano
Kurssin verkkoalueet
- JY:n verkkoalue: 130.234.0.0/16 (whois jyu.fi; whois 130.234.4.129)
- Sisäverkko: 172.21.0.0/16, netmask 255.255.0.0
- Kurssilla käytössä osoitteet ja verkkoympäristö:
- 1-to-1 NAT, kun x=[208|209]
- 172.21.x.y <==> 130.234.x.y
- gateway: 172.21.0.1
- DNS: 172.21.0.4
- Alustakoneet:
- lonka5.it.jyu.fi, 130.234.208.15, sisäverkossa 172.21.208.15
- lonka6.it.jyu.fi, 130.234.208.16, sisäverkossa 172.21.208.16
- lonka7.it.jyu.fi, 130.234.208.17, sisäverkossa 172.21.208.17
- lonka8.it.jyu.fi, 130.234.208.18, sisäverkossa 172.21.208.18
- Virtuaalikoneet:
- 130.234.209.NNN == 172.21.209.NNN
- mailkang1.student.it.jyu.fi == s045.vm.it.jyu.fi
- s045.vm.it.jyu.fi == 130.234.209.45
- 130.234.209.45 == 172.21.209.45
- sNNN.vm.it.jyu.fi
- sNNN.vm.it.jyu.fi == 130.234.209.NNN
KVM-virtuaalikoneen asennus: virt-install
- Esim:
- virt-install --name $KONE --ram 256 --arch x86_64 \
- --disk path=/tmp/$TUNNUS/$KONE.img,size=3,bus=virtio \
- --cdrom /srv/ftp/iso/ubuntu-16.04.5-server-amd64.iso \
- --network bridge=br0
KVM-virtuaalikoneen asennus: virt-install
- --name, -n: koneen nimi, tunniste alustakoneessa
- --ram, -r: asennettavalle koneelle käyttöön annettava muistin määrä (Mt) (deprecated. Käytä --memory)
- --arch: käytettävä prosessoriarkkitehtuuri, oletuksena sama kuin alustakoneessa
- --disk: levyimagen sijainti ja koko
- --cdrom: asennusmedian polku (vaihtoehtona --location, jolloin URL)
- --network, -w: verkkoyhteyden tyyppi ja laite alustakoneessa
Levyimage
- Levyimage on tiedosto, jota käytetään virtuaalikoneen massamuistina. Imagen tilalla voi käyttää mitä tahansa "loogista levyä": oikeaa laitetta, levyosiota, LVM:n loogista volumea. Virt-install luo levyn, kunhan sille kerrotaan levyn haluttu koko gigatavuina ja sijainti täytenä polkuna (suhteellista polkua käytettäessä asennus saattaa epäonnistua). Levyohjaimen tyypin voi vaihtaa, VirtIO on nopeampi kuin oletuksena käytettävä IDE.
Levyimage
- --disk path=/tmp/$TUNNUS/$KONE.img,size=3,bus=virtio \
- Alustakoneella tiedosto, joka voidaan kopioida talteen, ts. hyvin yksinkertainen tapa varmistaa virtuaalikone esim. ennen hankalaksi tiedettyjä toimenpiteitä. Ei säännölliseen käyttöön ja vain sammutetusta virtuaalikoneesta:
- cp mailkang1.img mailkang1.bak
Verkkoasetukset
- Oletuksena virt-install tekee asennettavalle virtuaalikoneelle One-to-Many NAT -verkon alueelle 192.168.122.0/24, jolloin virtuaalikoneelle ei pääse kuin alustakoneelta. Kun halutaan yhteyksiä ulkoapäin virtuaalikoneelle, voidaan käyttää sillattua verkkoa (bridge), jolloin virtuaalikone näkyy suoraan isäntäkoneen verkkosegmentissä:
- --network bridge=br0
- IP-osoite, verkkomaski, DNS-palvelimet, gateway ym. kerrotaan asennettavalle koneelle tavanomaisesti asennuksen edetessä.
Asennusmedia
- Asennus voidaan tehdä joko cd-rom -imagelta (tai oikealtakin levyltä) tai URL:stä:
- --cdrom /srv/ftp/iso/ubuntu-12.04.5-server-amd64.iso \
- --location http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64/
Asennustavan valinta, lisäoptioita
- Oletuksena asennettaessa käynnistetään graafinen konsoli (virt-viewer), edellyttää toimivaa X-yhteyttä (ssh -X). Vaihtoehtoisesti voidaan käyttää sarjaporttikonsolia (Ubuntun tapauksessa toimii vain location-asennuksella):
- --graphics none
- --extra-args='console=ttyS0,115200n8 serial'
Asennustavan valinta, lisäoptioita
- --extra-args -vivulla voidaan välittää virtuaalikoneen asennusohjelmalle lisäoptioita (kernel command line arguments). Esimerkin optiot luovat virtuaalisen sarjaportin, johon voidaan kytkeytyä komennolla:
- virsh --connect qemu:///system console KONE
KVM-virtuaalikoneen tarkastelu: virt-viewer, virsh --connect
- Virt-viewer on työkalu, jolla voidaan ottaa yhteys virtuaalikoneen graafiseen konsoliin. Sarjaporttikonsoliin yhteyden saa virsh --connect -komennolla. Esimerkkejä:
- #Graafinen konsoli alustakoneesta:
- virt-viewer kone
- #Graafinen konsoli muualta:
- virt-viewer --connect qemu+ssh://alustakone/system kone
KVM-virtuaalikoneen tarkastelu: virt-viewer, virsh --connect
- #Sarjaporttikonsoli alustakoneesta:
- virsh --connect qemu:///system console kone
- #Sarjaporttikonsoli muualta:
- virsh --connect qemu+ssh://alustakone/system console kone
- ssh -X mailkang@lonka5.it.jyu.fi
- virt-viewer mailkang1
KVM-virtuaalikoneen hallinta: virsh
- Virsh on työkalu, jolla hallitaan virtuaalikoneita eri virtualisointiympäristöissä (Xen, QEMU, KVM, LXC, OpenVZ, VirtualBox, VMware ESX).
- virsh start KONE
- virsh destroy KONE
- virsh undefine KONE
KVM-virtuaalikoneen hallinta: virsh
- virsh list --all
- virsh reboot KONE
- virsh reset KONE
- virsh shutdown KONE
- virsh suspend KONE
- virsh resume KONE
- virsh save KONE
- virsh edit KONE
- virsh dumpxml KONE > kone.xml
- virsh define kone.xml
- virsh domblk* KONE
- virsh domif* KONE
- man virsh
Levytila, osiot
- Kiintolevyt (tms) jaetaan osioihin:
- yhdellä osiolla voi olla yksi tiedostojärjestelmä
- osioinnilla suojataan palvelinta ja käyttäjän tiedostoja
- esim: käyttäjät eivät voi täyttää koko levyä
- esim: villintyneen prosessin loki ei voi täyttää koko levyä
Levytila, osiot
- osioinnilla voidaan saavuttaa parempi suorituskyky
- (perinteisesti) osioita on yhdellä levyllä voinut olla neljä
- osioita kolmen tyyppisiä:
- primääri
- extended (max 1), joka voi sisältää:
- looginen
Levytila, osiot
- osiotaulu kertoo miten levy jaettu (MBR, GPT)
- käyttöjärjestelmän asennus yleensä ehdottaa jotain osiointia, palvelinasennuksessa syytä tietää mitä tapahtuu
- Windowsissa osiot nimetty C:, D:, ym (drive letter)
- Linuxissa levyt esim. /dev/sda, /dev/sdb
- Linuxissa osiot /dev/sda1, /dev/sda2, /dev/sda5
- työkaluja: fdisk, parted
Levytila, tiedostojärjestelmät
- Tiedostojärjestelmätyypit
- ext2, ext3, ext4, xfs, tmpfs
- Tiedostojärjestelmän luonti osiolle: mkfs.ext4 /dev/vda5
- Tiedostojärjestelmän tarkistus: fsck (oltava irrotettuna)
- mount point, liitospiste: hakemisto, johon osio liitetään
- Liittäminen/irroittaminen:
- mount /dev/vda5 /home
- umount /home, umount /dev/vda5
- /etc/fstab
- blkid
- LVM
- md
Tiedostojärjestelmän rakennetta
- /boot: käynnistystiedostot, kernel, initramdisk
- /dev: laitteet
- /etc: konfiguraatiotiedostot
- /home: käyttäjien tiedostot
- /lib, /lib64: kirjastot
- /media, /mnt: liitospisteitä ulkoisille levyille
- /opt: muu softa (pakettienhallinnan ulkopuolelta)
- /proc: (ajonaikainen) järjestelmän tiedot, prosessit
Tiedostojärjestelmän rakennetta
- /root: rootin kotihakemisto
- /run: ajonaikasta dataa
- /sbin: system binaries
- /srv: palvelinsoftien data
- /sys: laitetiedot
- /tmp: tilapäistiedostot
- /usr: käyttäjien yhteiset pysyväisluonteiset tiedostot: ohjelmia, lähdekoodia, käyttöohjeita
- /usr/local: (pakettienhallinnan ulkopuolelta)
- /var: muuttuva data: lokit, cachet, postit, tietokannat
Levytilan käyttö ja tarkastelu
- mount
- ls /dev/disk/by-id
- ls /dev/disk/by-uuid
- blkid
- df, df -h, df -i
- du, du -hs *
- find /home/mailkang -type f -size +10000
- lsof -s
- tail /var/log/syslog
Prosessit
- pstree
- ps, ps x, ps aux
- top
- &, bg, fg
- kill, killall
- lsof
- Prosessilla auki olevaa tiedostoa ei pidä poistaa ennen prosessin tappamista!
Käyttäjät, ryhmät, käyttöoikeudet
- käyttäjätunnus, ryhmät, others (ugo)
- /etc/passwd
- /etc/shadow
- /etc/group
- PAM, Kerberos
- adduser, deluser (useradd, usermod, groupmod, newgrp)
- id, groups
Käyttäjät, ryhmät, käyttöoikeudet
- luku, kirjoitus, suoritus/haku (rwx)
- lisäksi suid (s), sticky (t)
- esim. -rwxr-x---: user rwx, group r-x, others ---
- esim. 0755 == -rwxr-xr-x
- esim. 0600 == -rw-------
- ts r = 4, w = 2, x = 1
- muuttamiseen: chown, chgrp
Käyttäjät, ryhmät, käyttöoikeudet
- root, superuser, käyttäjä jolla kaikki oikeudet
- kirjautuminen nykyään yleensä estetty, joskus välttämätön
- yleensä parempi tapa: sudo komento
- sudo -u
- su
Pakettienhallinta Ubuntussa
- Pakettienhallinnan tarkoitus on huolehtia ohjelmien tarvitsemista kirjastoista ja muista riippuvuuksista käyttäjän puolesta.
Pakettienhallinta Ubuntussa
- Ubuntussa käytetään .deb-paketteja ja ohjelmistopakettien hallintaan apt- (apt-get, apt-cache, aptitude, synaptic) ja dpkg-ohjelmistoja:
- apt-get update (apt update)
- apt-get dist-upgrade (apt dist-upgrade)
- apt-get install (apt install)
- apt-get remove
- apt-get purge
- apt-get autoremove
- apt-get -f install
- apt-get clean
- apt-cache search
- dpkg -l (dpkg -l | awk '{print $2})
- dpkg -L
- dpkg -i
- dpkg-reconfigure (-a)
- apt show
Pakettienhallinnan asetukset
- /etc/apt/sources.list (repositoryt)
- /etc/apt/apt.conf (proxy)
- /etc/update-manager
- do-release-upgrade: päivitä käyttöjärjestelmäversio
Konfiguraatiotiedostot, editor
- Ylivoimaisesti suurin osa Linux-palvelinten ja niiden ohjelmien asetuksista tallennetaan konfiguraatiotiedostoihin, jotka ovat tekstitiedostoja, esim. edellisen dian sources.list ja apt.conf. Näiden muokkaamiseen voi käyttää mieleistänsä tekstieditoria. Esim, nano, vim, emacs jne.
- vi, vim
- Useasti järjestelmän oletuseditori. Epäilemättä hyvä, mutta oppimiskäyrä olemassa ja ei alkuun erityisen intuitiivinen. Oletuseditorina saattaa tulla eteen pyytämättä ja yllättäen, jolloin vähintäänkin syytä osata poistua siististi: :q!
Locales
- Järjestely, jolla voidaan tukea useita kieliä ja tapoja esittää esim. aikaa eri tavoin
- näkyvät ympäristömuuttujissa LANG ja LC_
- vahva suositus palvelimissa jokin englanti, esim. en_US.UTF-8