Skip to content

Tikuton KTP (FAQ)

Matti Lattu edited this page Mar 4, 2019 · 55 revisions

FAQ ongelmatilanteiden varalta (Naksu)

Miten voi itse debugata Naksun, Vagrantin ja VirtualBoxin käynnistysongelmia?

Aloita käynnistämällä Naksu komentoriviltä parametrilla --debug. Samat viestit kirjoitetaan kotihakemiston alla olevan ktp-hakemiston tiedostoon naksu_lastlog.txt (~/ktp/naksu_lastlog.txt).

Jos et löydä ongelmaa tästä lokitiedostosta, yritä käynnistää Vagrant käsin.

  • Avaa pääteikkuna
  • Mene ktp-hakemistoon:
    • Linux: cd ~/ktp
    • Windows: Ensin %HOMEDRIVE% ja sen jälkeen cd %HOMEPATH%\ktp
  • Käynnistä Vagrant:
    • vagrant up

Jos ongelma ei selviä näiden tulosteiden ja tämän FAQin avulla, ota yhteyttä Abitti-tukeen. Asian selvittämistä helpottaa, jos lähetät saman tien naksu_lastlog.txt ja mahdolliset kuvankaappaukset virheilmoituksista.

VT-x is disabled in the BIOS for all CPU modes (VERR_VMX_MSR_ALL_VMX_DISABLED)

Käynnistysyritys päättyy seuraavanlaiseen virheilmoitukseen:

Stderr: VBoxManage.exe: error: VT-x is disabled in the BIOS for all CPU modes (VERR_VMX_MSR_ALL_VMX_DISABLED)
VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface iConsole

Koneen BIOS-asetuksissa ei ole virtualisointituki päällä. Tarkat ohjeet päälle laittamiseen riippuvat koneen mallista, yleisellä tasolla menemällä bootin yhteydessä biosiin ja vaihtamalla ko. asetus tyypillisesti "Processor"-kohdan alta. Asetuksen nimi voi olla esimerkiksi "Intel Virtualization Technology", "Intel VT", "AMD-V" tai "Virtualization Extensions"

Miksi isäntäpalvelinta ei saa liittää keskitettyyn ylläpitoon?

Ylioppilaskokeen aikana isäntäkoneen halutaan olevan mahdollisimman stabiili. Valvojien kauhu on se, että isäntäkone alkaa asentelemaan päivityksiä kesken ylioppilaskokeen. Tämän vuoksi konetta ei saa liittää mihinkään työasemien hallintajärjestelmään, jollainen myös Microsoftin Active Directory on.

Koneessa voi olla käyttöjärjestelmätoimittajan päivityspalvelu (esim. Microsoftin Windows Update tai Linuxien paketinhallintajärjestelmät kuten update-manager). Päivitykset tulee ajaa isäntäpalvelimelle ennen tutkintopäivää. Tutkintopäivänä koneen tulee olla irrotettuna internetistä, jotta kone ei saa uusia päivitystehtäviä.

Mitä Naksun "Poista kokeet" ja "Poista palvelin" tekevät?

"Poista kokeet" palauttaa virtuaalipalvelimen alkutilaansa. Se vastaa palvelintikkujen uudelleenkirjoitusta:

  • Palvelimessa olevat kokeet ja kaikki pidettyihin kokeisiin liittyvät tiedot poistetaan.
  • Jos palvelin on käynnistetty varapalvelimeksi, sen voi jälleen käynnistää varsinaiseksi palvelimeksi.
  • Jos palvelimeen on tullut jokin toiminnan estävä vikatilanne (esim. ohjelmavirhe estää palvelimen käynnistymisen), tämä ongelma poistuu.

"Poista kokeet" syöttää Vagrantille komennon vagrant destroy. Tällöin Vagrant palauttaa VirtualBoxiin alkuperäisen levynkuvan. Toimenpide on nopea, koska levykuvaa ei tarvitse ladata verkosta.

"Poista palvelin" poistaa kaikki virtuaalikoneisiin tiedot Vagrantista ja VirtualBoxista. Se poistaa kaikki käyttöönotetut virtuaalikoneet, levynkuvat ja näiden asetukset. Ainoastaan koetehtävien ja -suoritusten siirrossa käytettävä ktp-jako -hakemisto säilytetään. Operaatio voi auttaa seuraavissa tilanteissa:

  • Virtuaalikone ei useista yrityksistä (mm. isäntäpalvelimen uudelleenkäynnistyksistä) huolimatta käynnisty.
  • Vagrantfile-tiedosto on rikki.

"Poista palvelin" on siis raskaampi toimenpide kuin "Poista kokeet". Tämän jälkeen palvelimen uudelleenasennus joutuu lataamaan levynkuvan, koska Vagrantin omissa varastoissa tallennetut levynkuvat on poistettu.

Virtuaalipalvelinongelmissa kannattaa aina ensin kokeilla "Poista kokeet" -toimintoa ensin.

Naksu valittaa, että VirtualBoxia ei ole asennettu - mutta on se! (Linux)

Naksu antaa mm. seuraavanlaisia virheilmoituksia:

  • Virhe: Ohjelman VBoxManage käynnistys epäonnistui. Oletko varma, että koneeseen on asennettu Oracle VirtualBox?
  • Varoitus: komento epäonnistui: VBoxManage --version

Linuxissa VirtualBoxin asennuksen yhteydessä käännetään uusia kernel-moduuleita. Joissakin Linuxeissa (esim. Ubuntu) kernel-moduulit voidaan allekirjoittaa digitaalisella allekirjoituksella. Ikävä kyllä VirtualBoxin asennuksen yhteydessä käännettyjä kernel-moduuleja ei allekirjoiteta.

Ratkaisu on poistaa SecureBoot palvelimesta, jolloin kernel-moduulien allekirjoitusta ei tarkisteta.

Palvelin kaatuu, kun kokelaita tulee paljon

Varmista ensin, että koneen prosessori täyttää YTL:n vaatimukset. Jos prosessori on liian tehoton, ei palvelin selviydy suuresta kokelasmäärästä.

Seuraavaksi voit ajaa omalla koneellasi prosessorin tehoa mittaavan testin ja vertaamalla testin tulosta muiden käyttäjien samalla prosessorilla saamiin arvoihin. Jos ajat virtuaalikonetta Windowsissa, voit kokeilla www.userbenchmark.com.

Tarkista, että koneesi BIOSissa mahdollisesti oleva energiansäästö on pois päältä (esim. "Optimize Performance"). Jos ajat virtuaalikonetta Windowsissa, tarkista myös sen virranhallinta-asetukset.

Palvelimen ja varapalvelimen synkronointi kestää kauan

Jos tutkintoverkko ja molempien palvelimien verkkokortit ovat vaadittua tasoa (1 Gbit/sek), kestää synkronoinnissa noin puoli tuntia. Syy tikkumaailmasta kasvaneeseen synkronointiaikaan on se, että virtuaalisen palvelimen levytila on huomattavasti USB-muistitikkua suurempi (noin 50 Gt).

Ratkaisuehdotus 1 (erityisesti Windows)

Tee seuraavat toimenpiteet:

  • Varmista, että sinulla on uusimmat verkkokortin ajurit (Windowsissa)
  • Onko verkkokortin ajurissa virransäästöominaisuuksia? Kytke ne pois päältä.
  • Onko verkkokortin ajurissa Green Ethernet/Energy Efficient Ethernet -asetus? Kytke se pois päältä.

Ratkaisuehdotus 2 (erityisesti Ubuntu)

Joillain ympäristöillä (erityisesti Ubuntu) Virtualboxin tarjoama virtio verkkoajuri voi olla todella hidas. Voit yrittää vaihtaa verkkokortin ajurin Intel-versioon ympäristömuuttujalla ajamalla seuraavan komennon molemmilla palvelimilla ennen käynnistystä:

  • Windows: SET NIC=82543GC
  • Linux: export NIC=82543GC

Jonka jälkeen voit käynnistää palvelimet samasta pääteikkunasta Naksulla.

Jos ylläoleva toimenpide ei nopeuta synkronointia, ota yhteyttä Abitti-tukeen, niin saat ajantasaiset toimintaohjeet.

NIC-muuttujan arvo voi olla mitä tahansa, mitä VBoxManagen --nictype<1-N> -parametri tukee. Oletuksena käytetään arvoa virtio.

Nimeääkö Naksu automaattisesti tiedoston vai täytyykö backupeille tehdä esim. oma kansio ulkoiselle kiintolevylle?

Tällä hetkellä käyttäjä voi valita tallennuspaikan muutamista Naksun tarjoamista sijainneista. Esim. ulkoisen kiintolevyn juuressa olevaan hakemistoon tallentaminen ei ole mahdollista. Naksu nimeää varmuuskopion automaattisesti (päivä ja kellonaika).

En pysty siirtämään Naksun tekemään varmuuskopiota USB-muistitikulle

USB-muistit ovat oletuksena formatoitu FAT-tiedostojärjestelmälle, jossa tiedoston suurin koko on 4 Gt.

  • Jos käytät Windowsia, formatoi USB-muisti NTFS-tiedostojärjestelmällä
  • Jos käytät Linuxia, formatoi USB-muisti ext2-tiedostojärjestelmällä (huom: ext3 ja ext4 tiedostojärjestelmien journalointi rikkoutuu helposti USB-tikuilla jollei tikkua irroteta siististi)

Kopioi sen jälkeen varmuuskopio uudelleen tikulle. Muista, että voit säilyttää varmuuskopioita myös palvelimen kovalevyllä.

Miten voin testata, että Naksun asentama palvelin toimii?

Parasta on tehdä kuormitustestaus, jonka avulla näet toimiiko verkko ja onko palvelin riittävän nopea. Ohjeet löytyvät YTL:n sivuilta.

Käynnistän Naksua ja saan ilmoituksen Could not open log file /tmp/naksu_lastlog.txt

Naksu alkaa heti käynnistettäessä kirjoittaa lokitiedostoa. Jos käyttäjällä ei ole vielä ktp-hakemistoa kotihakemistossaan, lokitiedosto kirjoitetaan väliaikaistallennuksille varattuun tilaan (ns. temp-hakemisto). Virheilmoitus tarkoittaa, että lokitiedoston kirjoittaminen ei syystä tai toisesta onnistu.

Tarkista:

  • Onko käyttäjällä kirjoitusoikeus temp-hakemistoon? Linuxeissa tämä on tyypillisesti /tmp, Windowsissa hakemisto löytyy kirjoittamalla tiedostonhallintaan tms. %TEMP%
  • Onko temp-hakemistossa jo naksu_lastlog.txt, jota käyttäjä ei voi ylikirjoittaa?

Jos käyttäjän kotihakemistossa on ktp-hakemisto, Naksu kirjoittaa naksu_lastlog.txt -tiedoston sinne.

Windows -koneen levytila on vähissä. Miten saan lisää levytilaa?

Windows 7: Aja levyn uudelleen järjestäminen (Disk Cleanup)

Tämä poistaa turhia tiedostoja ja vanhat palautuspisteet (restore points).

  1. Kaikki ohjelmat > Apuohjelmat > Järjestelmätyökalut > Järjestä uudelleen (All Programs > Accessories > System Tools > Disk Cleanup)
  2. Valitse levy, jolla virtuaalikoneen kotihakemistot sijaitsevat.
  3. Poista ensin oman käyttäjän turhat tiedostot. Valitse tiedostoryhmät listasta ja klikkaa lopuksi OK.
  4. Käynnistä tämän jälkeen ohjelma uudelleen, mutta mene nyt ylläpitäjänä klikkaamalla Järjestä järjestelmätiedostot (Clean up system files)
  5. Tee sama järjestelmätiedostoille: valitse tiedostoryhmät listasta ja klikkaa OK. Service Pack -tiedostot ovat helposti useita gigatavuja.
  6. Käynnistä ohjelma vielä kerran uudelleen, mene ylläpitäjänä Järjestä järjestelmätiedostot -painikkeella. Valitse välilehti Lisää vaihtoehtoja > Järjestelmän palauttaminen ja tilannevedokset > Järjestä > Poista (More Options > System Restore and Shadow Copies > Clean up > Delete)
  7. Sulje kaikki ikkunat klikkaamalla OK-painikkeita ja vastaa vahvistuksiin myöntävästi

Windows 10: Vapauta tallennustilaa

Tämä poistaa turhia tiedostoja.

  1. Avaa Windows 10 valikko ja hae hakusanalla "Tallennustila"
  2. Klikkaa Tallennusseuranta > Vapauta tilaa nyt
  3. Odota, että Windows etsii poistettavia tiedostoja
  4. Valitse haluamasi tiedostoryhmät ja klikkaa Poista tiedostot

Windows 7 ja 10: Pienennä swap-levyä

Swap-levyä käytetään, jos tietokoneen RAM-muisti täyttyy. Koetilan palvelimien muistivaatimukset ovat sellaisia, että swappiä ei käytännössä pitäisi tarvita ollenkaan. Swap-tiedosto on levyn juuressa oleva pagefile.sys.

  1. Windows 7: Ohjauspaneeli > Järjestelmä > Järjestelmän lisäasetukset > Suorituskyky > Asetukset > Lisäasetukset-välilehti > Näennäismuisti > Muuta (Control Panel > System > Advanced system settings > Performance > Settings > Advanced-välilehti > Virtual memory > Change)
  2. Windows 10: Asetukset > Järjestelmä > Tietoja (vasemmalla alhaalla) > Järjestelmätiedot (oikealla ylhäällä) > Suorituskyky > Asetukset > Lisäasetukset-välilehti > Näennäismuisti > Muuta
  3. Ruksaa Hallitse kaikkien asemien... pois päältä (Automatically manage paging...)
  4. Jos arvo "Suositeltu" on suurempi kuin 4096 Mt, tehdään muutos: Otetaan Mukautettu koko (Custom size) käyttöön seuraavin asetuksin - aloituskoko: 16 Mt, enimmäiskoko 4096 Mt
  5. Klikkaa Aseta (Set)
  6. OK kaikkiin ikkunoihin
  7. Klikkaa Käynnistä uudelleen nyt (Restart Now)

Windows 7 ja 10: Poista hibernointi käytöstä

Koetilan palvelimessa tuskin tarvitaan mahdollisuutta unitilaan (hibernointi). Tämä (C:\hiberfile.sys) vie turhaan levytilaa. Ota se pois käytöstä seuraavasti:

  1. Avaa ohjelmavalikko ja hae "cmd"
  2. Napsauta cmd.exe-kuvaketta hiiren oikealla napilla ja valitse Suorita järjestelmänvalvojana (Run as administrator)
  3. Anna komento powercfg hibernate /off ja paina enter

FAQ ongelmatilanteiden varalta (ennen Naksua)

Näitä ongelmia saattoi tulla ennen Naksun käyttöönottoa.

Couldn't open file /xxx/yyy/ktp/base

Saat seuraavankaltaisen virheilmoituksen, kun sanot vagrant up:

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'base' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Box file was not detected as metadata. Adding it directly...
==> default: Adding box 'base' (v0) for provider: virtualbox
    default: Downloading: base
An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.

Couldn't open file /xxx/yyy/ktp/base

Tarkista, että ohjeiden mukaan kotihakemistoon (Linux: ~/ktp, Windows: C:\Users\yourusername\ktp) tekemässä hakemistossa on tiedosto Vagrantfile. Varmimmin näet tämän antamalla komentoriviltä komennon dir. Jos tiedostoa ei ole, lataa se uudelleen asennusohjeen mukaisesti.

  • Jotkut selaimet lisäävät tiedoston perään itse päätteen .txt. Jos tiedoston perässä on tämä pääte, nimeä se uudelleen: ren Vagrantfile.txt Vagrantfile
  • Voit myös yrittää poistaa hakemiston .vagrant alihakemistoineen: del /s /q .vagrant

A Vagrant environment or target machine...

Saat seuraavankaltaisen virheilmoituksen, kun sanot vagrant up:

A Vagrant environment or target machine is required to run this
command. Run `vagrant init` to create a new Vagrant environment. Or,
get an ID of a target machine from `vagrant global-status` to run
this command on. A final option is to change to a directory with a
Vagrantfile and to try again.

Todennäköisesti et ole ktp-hakemistossa, johon kopioit Vagrantfile-tiedoston. Mene tähän hakemistoon:

  • Windows: Anna komennot %HOMEDRIVE% ja cd "%HOMEPATH%\ktp"
  • Linux: Anna komento cd ~/ktp ja sano uudelleen vagrant up

The host path of the shared folder is missing: ~/ktp-jako

Olet tehnyt jakokansion ktp-jako jonnekin muualle kuin kotihakemiston alle. Linuxissa pääset kotihakemistoosi kirjoittamalla komentoriville cd. Windowsissa näet kotihakemiston polun kirjoittamalla echo %HOMEDRIVE%%HOMEPATH%.

VBoxManage.exe: error: --macaddress: RTGetOpt: Command line option needs argument

Jos kyseessä on Windows-kone, aja vagrant up uudelleen.

Windows 7: Sanon "vagrant up", mutta mitään ei tapahdu!

Kokeile vagrant up --debug, niin saat lisätietoa:

DEBUG loader: Loading from: root (cache)
DEBUG loader: Configuration loaded successfully, finalizing and returning
DEBUG push: finalizing
 INFO subprocess: Starting process: ["C:\\Windows\\System32\\WindowsPowerShell\\
v1.0\\/powershell.EXE", "-NoLogo", "-NoProfile", "-NonInteractive", "-ExecutionP
olicy", "Bypass", "-Command", "$PSVersionTable.PSVersion.Major"]
 INFO subprocess: Command not in installer, restoring original environment...
DEBUG subprocess: Selecting on IO
DEBUG subprocess: stdout: 2

Windows 7:n mukana tuleva PowerShell on päivitettävä. Asenna esim. 4.0 , joka löytyy Windows Management Framework 4.0:sta (myös versio 5 on jo ilmestynyt). Saatat joutua asentamaan myös .NET 4.5:n. Nämä ohjeet ovat hiukan vanhat, mutta toimivat silti.

Windows: Incompatible character encodings

Käynnistettäessä vagrant up tulee kymmeniä rivejä virheilmoitusta. Yläosassa näkyy esim.

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'digabi/ktp-qa'...
C:/HashiCorp/Vagrant/[tekstiä poistettu]: in 'join': incompatible character encodings: Windows-1252 and UTF-8

Mainitut merkistöt voivat poiketa yllä olevasta.

Jos käyttäjätunnuksessa on jotain muita merkkejä kuin a-z ja 0-9 (esim. "Järjestelmänvalvoja"), luo koneeseen uusi käyttäjä sellaisella käyttäjätunnuksella, jossa on vain amerikkalaisia merkkejä. Aja virtuaalikonetta tällä käyttäjätunnuksella. Käyttäjällä ei tarvitse olla ylläpitäjän oikeuksia.

Poista kaikki ja aloita alusta (Windows)

Jos haluat päästä eroon kaikista ko. käyttäjän virtuaalikoneista, anna seuraavat komennot komentokehotteessa (command prompt, cmd):

%HOMEDRIVE%
cd %HOMEPATH%
rmdir /s /q .vagrant.d
rmdir /s /q .VirtualBox
rmdir /s /q ktp
rmdir /s /q ktp-jako
rmdir /s /q "VirtualBox VMs"

Nämä komennot eivät poista VirtualBox- ja Vagrant-asennuksia. Tämän jälkeen voidaan aloittaa uusi asennus asennusohjeen mukaisesti luomalla hakemistot ktp ja ktp-jako jne.

Naksun hallinnassa oleva "Poista palvelin" tekee tämän.

Poista kaikki ja aloita alusta (Linux)

Jos haluat päästä eroon kaikista ko. käyttäjän virtuaalikoneista, anna seuraavat komennot:

cd
rm -fR ktp/ ktp-jako/ .vagrant.d/ VirtualBox\ VMs/

Nämä komennot eivät poista VirtualBox- ja Vagrant-asennuksia. Tämän jälkeen voidaan aloittaa uusi asennus asennusohjeen mukaisesti luomalla hakemistot ktp ja ktp-jako jne.

Naksun hallinnassa oleva "Poista palvelin" tekee tämän.