Fog-järjestelmän toiminta useassa eri toimipisteessä
FOG-replikointiympäristön toimintaperiaate tässä tilanteessa on seuraava.
Master-palvelin sijaitsee Toimintakeskus Hapessa joko pelitalon tiloissa taikka Hapen rakennuksen palvelintilassa. Master palvelin on käytännössä virtuaalipalvelin joka pyörii Hapen palvelininfran virtualisointipalvelimella. Tämän lisäksi Pelitalolla on FOG-järjestelmään kuuluva "storage-node" jota ohjataan master palvelimelta. Samalla periaatteella Arabian nuorisotalollekkin tulee oma storage-node joka hoitaa vastaavasti kyseisen tilan pelikoneiden imageiden säilytyksen sekä replikoinnin.
Visiolla tehty kaaviokuva aiheesta
Eri levyimageiden ja konekokoonpanojen hallinta
Tulevaisuudessa eri nuorisotaloilla tulee väkisinkin olemaan erillaisia laitekokoonpanoja ja ohjelmistotarpeita. Tämä taasen lisää työtä ja laitteistotarvetta omalta osaltaan. Käytännössä nykyisellä FOG-järjestelmällä joutuisimme tekemään jokaiselle eri laitekokoonpanolle oman levyimagensa, joista jokainen image sisältää ajurit tietylle laitekokoonpanolle.
Kuitenkin, FOG-järjestelmällä on mahdollista tiputtaa "asennuspaketteja" levykuvan tiputtamisen jälkeen koneille. Tätä mahdollisuutta pitää tutkia ja testata, toimisiko se laiteajureiden lisäämiseksi jälkikäteen. Jos tämä olisi mahdollista, voisimme asentaa yhteen imangeen geneeriset ajurit kaikille piireille ja ohjaimille jotta kone käynnistyisi ja pääsisi verkkoon, jonka jälkeen tiputtaisimme vain niin sanotun "asennuspaketin" FOG:in kautta koneille joka sisältäisi oikeat ajurit laitteistolle.
FOG-järjestelmän ylläpito ja päivittäminen
Master-palvelimen päivitys
Suurin "haaste" FOG:järjestelmän ajantasalla pitämisessä on tuotantosysteemin päivittäminen.
Tämä käy käytännössä helpoiten siten, että ajamme "fogmaster" nimistä virtuaalipalvelinta joka on käytössä oleva tuotantopalvelin jolla ajetaan Debiania sekä FOG-järjestelmän Master versiota. Päivitys tehtäisiin sitten niin, että ajetaan tuotantojärjestelmän rinnalla virtuaalipalvelinta "fogmasterdev" joka on myöskin Debianilla varustettu palvelin mihin on asennettu FOG-järjestelmän tuorein Master versio. Tällöin voimme tarvittaessa yhdistää vanhasta FOG-ympäristöstä tavaraa uuteen ja testata"lennossa" uutta järjestelmää huoltopäivinä ajamalla wanha tuotantoversio väliaikaisesti pois verkosta. Käytännössä siis vaihdamme wanhan tuotantopalvelimen dhcpd.conf:hiin next-server kohdan täsmäämään uuden palvelimen IP-osoitetta vastaavaksi.
Kun uutta järjestelmää on säädetty ja testattu tarpeeksi, konfurigoidaan vain fogmasterdev-palvelimen IP-osoitteet vanhemman FOG-ympäristön mukaiseksi ja ajetaan vanha tuotantoversio alas ja yksinkertaisesti aletaan käyttämään uutta.
Tarkempi speksaus itse päivitysoperaatiosta löytyy tulevaisuudessa tältä sivulta, tai tällä sivulla on linkki ohjeeseen.
Storage-palvelimen päivitys
Storage palvelimen päivitys on huomattavasti helpompaa. Tähän asti olemme yksinkertaisesti ladanneet uudemman version FOG-ympäristöstä ja ajaneet päivitysscriptin. Samaa metodia kokeiltiin joskus Master palvelimella mutta tulimme siihen tulokseen että helpompaa asentaa aina "puhdas järjestelmä" uusiksi koska loppujen lopuksi konffit ja muut tarvittavat tiedot löytyvät sen hetkiseltä tuotantopalvelimelta.
Nuorisotalojen vaatimukset verkon ja laitteiston kannalta
Verkon vaatimukset
Nuorisotaloilla pitäisi olla vähintään 100Mbit linkki Helsingin kaupungin runkoverkkoon, mielellään 1Gbit/s jotta levykuvien siirtäminen storagenodejen välillä sujuu ripeästi.
Pelikoneet sekä itse nuorisotalon oma storagenode pitäisi saada kytkettyä 1Gbit/s nopeudella toisiinsa. Tähän tarkoitukseen riittää hallitsematon 1Gbit/s porteilla varustettu kytkin joka ymmärtää multicastia ja ei mene solmuun suuristakaan liikennemääristä.
Täällä Toimintakeskus Hapessa, Pelitalolla on testattu että esim. 48 Porttinen D-Link DGS-1248T riittää ~30 koneen yhtäaikaiseen replikointiin varsin mainiosti. Muille nuorisotaloille tähän tarkotukseen voidaan harkita esim. saman tuoteperheen kytkimiä, missä on vaan vähemmän portteja.
Laitteistovaatimukset
Nuorisotalot jotka haluavat pelikoneita ja kuulua samaan systeemiin kuin Pelitalo ja tulevaisuudessa Arabian ja Pasilan nuorisotalo, tarvitsevat kaikki pelikoneiden lisäksi yhden palvelimen joka toimii storagenodena kyseisillä pelitaloilla. Storagenodea ja sen toimintaa on selitetty tarkemmin täällä.
FOG:in konfigurointi käyttökuntoon
Alla kerrotaan vähän miten homma pistetään kuntoon aivan tyhjästä tässä nykyisessä ympäristössään. Ohje on hyvin sovellettavissa tulevaan järjestelmään koska tuleva ympäristö on tietyssä mielessä lähestulkoon identtinen (virtuaalikoneiden kannalta).
Master-noden asennus
Palvelimen perusasennus
- Kirjaudutaan virtuaalipalvelimen isäntäkoneeseen ja mennään hakemistoon missä virtuaalipalvelimien tiedostot sijaitsevat.
- Ajetaan "kloonausskripti" jolla luodaan uusi virtuaalipalvelin valmiista "palvelinpohjasta".
- Konfiguroidaan virtuaalipalvelimen xm.conf tiedostossa VNC:n portti sekä muut mahdolliset kohdat oikein. Tiedostossa on itsessään ohjeet/dokumentaatio kohdista mitä kannattaa/pitää muokata.
- Käynnistetään virtuaalipalvelin komennolla "xm create polku/xm.conf:":iin.
- Tämän jälkeen otetaan etätyöpöytäyhteys virtuaalipalvelimeen VNC:llä. Osoite mihin yhdistetään on x.x.x.x:590y. x.x.x.x edellisessä lauseessa on virtuaalikoneiden isäntäkoneen ip ja y taasen virtuaalikoneen ID joka määritellään xm.conf:issa.
- Tämän jälkeen konfiguroidaan virtuaalikoneelle kiinteä ip-osoite oikeasta aliverkosta tiedostoon /etc/network/interfaces, jonka jälkeen asennetaan openssh-server komennolla apt-get install openssh server.
- Tämän jälkeen katkaistaan VNC yhteys palvelimeen ja otetaan pääteyhteys palvelimeen jolla jatketaan asennusta.
FOG-ympäristön "Master" version asennus
- Kirjaudutaan palvelimelle pääkäyttäjän tunnuksilla SSH:lla.
- Tehdään hakemisto fog komennolla "mkdir fog" jonka jälkeen mennään hakemistoon fog komennolla "cd fog/"
- Ladataan uusin versio FOG-järjestelmästä osoitteesta http://www.fogproject.org/. Käytännössä kopioidaan suora latauslinkki .tar.gz pakettiin jonka jälkeen ladataan se palvelimelle komennolla "wget <kopioitu osoite>"
- Kun paketti on ladattu fog hakemistoon palvelimella, puretaan hakemisto komennolla "tar -xvvzf <ladatun tiedoston nimi>".
- Tämän jälkeen mennään FOG-järjestelmän asennushakemistoon jonka juuri purimme komennolla "cd <puretun hakemiston nimi/bin">
- Tämän jälkeen suoritamme asennusskriptin komennolla "./installfog.sh".
- Tämän jälkeen automatisoitu asennus kyselee käyttäjältä tietoja ja opastaa asennuksessa muutenkin. Tärkeintä kuitenkin tässä on valita FOG:in asennustyypiksi N, jotta asennamme Master-version FOG:ista.
- Kun asennus kysyy käytetäänkö master nodea myös dhcp-palvelimena, vastataan kysymykseen EI.
- Tämän jälkeen, jos käytämme vielä nuorisoasiankeskuksen keskitettyä MySQL tietokantapalvelinta, niin pitää kyseisen palvelimen tiedot vaihtaa kahteen FOG-järjestelmän konfurigaatiotiedostoon. Kyseiset tiedostot löytyvät /opt/fog/service/etc/config.php sekä /var/www/fog/common/config.php. Kyseisissä tiedostoissa on MYSQL_jotain kohtia mihin jokaiseen kohtaan täytetään oikea tieto. Tiedot kyseisiin kohtiin löytää tarvittaessa vaikka foorumeilta.
- Viimeiseksi on tärkeätä disbloida lokaali MySQL palvelin vaikka poistamalla se kokonaan komennolla apt-get remove mysql-server
- Lopuksi konsultoidaan Sippeä jotta saadaan tarvittavat PXE optiot opetusviraston DHCP:hen. Ilman tätä boottimenu ei tule toimimaan. Tarkemmin tästä omalla sivullaan täältä.
Käytännössä asennus oli tässä, FOG:in asennusskripti opastaa ja neuvoo käyttäjää yllättävän hyvin ja täten vielä tässä vaiheessa täällä ei ole sen tarkempia ohjeita. Asennuksen päättyessä skripti antaa vielä tiedot millä pääsee kirjautumaan sisään uuteen järjestelmään.
Storage-nodien asennus
Tämä asennus poikkeaa jonkin verran master-noden asennuksesta koska tämä asennus tehdään fyysiselle palvelimelle eikä virtuaalikoneelle.
Palvelimen perusasennus
- Ladataan debianin-netinstall asennusmedia ja poltetaan se levylle, imagen voi ladata täältä. Toinen vaihtoehto on asentaa käyttöjärjestelmä PXE:n kautta jos levyä ei ole mahdollista jostain syystä polttaa, ohje tästä tulee myöhemmin
- Asennetaan debianin perusjärjestelmä, asennus on hyvin ohjeistettu ja ainut kohta missä voi joutua itse ajattelemaan jotain on levyn partitiointi. Tässä vaiheessa kannattaa tehdä niin että jos järjestelmässä on yksi suuri levy niin käyttää ohjattua toimintoa ja käyttää koko levyä. Taasen jos järjestelmässä on yksi pienempi levy sekä jälkikäteen asennettu suurempi levy, niin kannattaa järjestelmä ja swap osio tehdä pienemmälle ja määrittää isompi levy käyttöön ja laittaa sen mountpointiksi /images. Silloin sitä levyä käytetään FOG-järjestelmässä levyimageiden säilytykseen.
- Asennuksen lopussa kysellään sitten vielä pääkäyttäjän salasanoja ja että millainen asennus tehdään. Salasanaksi voi määrittää mitä tahansa kunhan sen muistaa ja salasana on turvallinen. Tärkeämpää on muistaa valita tuossa kohdassa missä kysytään millainen asennus tehdään, niin kohta missä lukee "vain perusjärjestelmä". Tällöin palvelimelle ei asennu mitään turhaa ja homma pysyy kasassa paremmin.
- Kun asennus on tehty loppuun niin kone käynnistyy uudelleen uuteen järjestelmään ja kysyy käyttäjätunnusta ja salasanaa. Silloin syötetään käyttäjätunnukseksi root ja salasanaksi asennuksessa määrittämäsi salasana pääkäyttäjälle.
- Tämän jälkeen kun olemme kirjautuneet palvelimelle, määritämme palvelimelle kiinteän ip:n oikeasta verkosta. IP-osoitteen tiedot määritetään /etc/networks/interfaces tiedostoon, syntaksi on hyvä luntata joltain toimivalta tuotantopalvelimelta vaikkapa.
- Tämän jälkeen asennetaan SSH-palvelin jotta voimme säätää palvelinta etänä. Se onnistuu komennolla apt-get install openssh-server.
Ding, siinä oli storage-noden perusasennus lyhyesti ja suhteellisen suppeasti. Kuitenkin näillä ohjeilla pitäisi vähän asioita tietävän saada perusasennus suoritettua. Kuitenkin näitäkin ohjeita tullaan luultavasti vielä hiomaan ja selkeyttämään.
FOG-ympäristön "Storage" version asennus
- Kirjaudutaan palvelimelle pääkäyttäjän tunnuksilla SSH:lla.
- Tehdään hakemisto fog komennolla "mkdir fog" jonka jälkeen mennään hakemistoon fog komennolla "cd fog/"
- Ladataan uusin versio FOG-järjestelmästä osoitteesta http://www.fogproject.org/. Käytännössä kopioidaan suora latauslinkki .tar.gz pakettiin jonka jälkeen ladataan se palvelimelle komennolla "wget <kopioitu osoite>"
- Kun paketti on ladattu fog hakemistoon palvelimella, puretaan hakemisto komennolla "tar -xvvzf <ladatun tiedoston nimi>".
- Tämän jälkeen mennään FOG-järjestelmän asennushakemistoon jonka juuri purimme komennolla "cd <puretun hakemiston nimi/bin">
- Tämän jälkeen suoritamme asennusskriptin komennolla "./installfog.sh".
- Tämän jälkeen automatisoitu asennus kyselee käyttäjältä tietoja ja opastaa asennuksessa muutenkin. Tärkeintä kuitenkin tässä on valita FOG:in asennustyypiksi S, jotta asennamme Storage-version FOG:ista.
- Tämän jälkeen, jos käytämme vielä nuorisoasiankeskuksen keskitettyä MySQL tietokantapalvelinta, niin pitää kyseisen palvelimen tiedot vaihtaa kahteen FOG-järjestelmän konfurigaatiotiedostoon. Kyseiset tiedostot löytyvät /opt/fog/service/etc/config.php sekä /var/www/fog/common/config.php. Kyseisissä tiedostoissa on MYSQL_jotain kohtia mihin jokaiseen kohtaan täytetään oikea tieto. Tiedot kyseisiin kohtiin löytää tarvittaessa vaikka foorumeilta.
Master ja storage-noden säätäminen yhteisymmärrykseen
Kun tarvittavat palvelimet on asennettu ja konfiguroitu, niin pitää vielä saada Storage-node(t) määriteltyä Master nodelle oikein.
Storage groupin luonti
- Loggaa sisään Master noden web-hallintaan. Tiedot millä pääset kirjautumaan sisään, sait kun asensit Master noden virtuaalikoneelle.
- Mene "Storage" kohtaan ja klikkaa kohtaa "New Storage Group".
- Kirjoita kohtaan "Storage Group Name" toimipisteen nimi mihin kyseinen storage-node on asennettu, esimerkiksi Happi.
- "Storage Group Description" kohtaan ei välttämättä tarvitse kirjoittaa mitään.
Kun "Storage Group" on luotu niin siirrytään seuraavaan vaiheeseen jossa määritellään tietty storage node vasta luotuun grouppiin
Storage noden luonti ja assosiointi storage grouppiin
- Klikkaa "Storage" kohdassa "Add Storage Nodes" namiskaa.
- "Storage Node Name" kohtaan voit kirjoittaa saman kuin Groupin luonnissa eli toimipisteen nimen, esim. Happi.
- "Storage Node Description:" kohtaan ei tarvitse kirjoittaa mitään.
- "IP Address:" kohtaan kirjoitetaan kirjoitetaan sen storagenoden ip-osoite mikä määritettiin jo storage-noden asennusvaiheessa kyseiselle palvelimelle.
- "Max Clients:" kohtaan voidaan laittaa 100.
- "Is Master Node:" pitää testata ja tarkistaa, voi olla että pitää ruksia, voi olla että ei. Tutkitaan.
- "Storage Group:" kohtaan määritetään aiemmin luotu storage group mihin tämä storage node assosioidaan, esim. Happi.
- "Image Location:" kohtaan kirjoitetaan /images
- "Is Enabled:" kohta ruksitaan.
- "Management Username:" kohtaan kirjoitetaan se käyttäjätunnus minkä sait kun asensit FOG-järjestelmästä Storage version. Tunnus annettiin aivan asennuksen lopussa ja defaulttina se on "fog"
- "Management Password:" annetaan edellä mainitulle tunnukselle salasana, tämänkin sait kun asensit tuota storagenode:a. Kuitenkin jos tieto on päässyt jo katoamaan, voit kirjautua storagenodelle jota olet nyt määrittämässä pääkäyttäjänä ja kometaa "passwd fog" ja määrittää tunnukselle uuden salasanan jonka sitten laitat tähän.
Ja ding, kun homma on tehty, pitäisi FOG:in etusivulla olevassa lootassa nimeltä "Disk Information" olla mahdollisuus valita juuri luotu storage grouppi mihin määrittelimme juuri storagenoden. Jos edellä mainittu infoboksi näyttää levytilan oikein ja ei valita mitään, kaiken pitäisi toimia ja homman olla tällä selvä.
Linkkejä / Muistilista
www.fogproject.org/
syslinux.zytor.com/wiki/index.php/The_Syslinux_Project
Pelitalo FOG-järjestelmä