LTSP-klusteri

Sisällysluettelo

Tämä ohje on Ubuntu 9.10:lle.

Kun tarvitaan satoja tai tuhansia päätteitä ja niille palvelimet, niin silloin tarvitaan LTSP-klusteri. Seuraavassa asennetaan LTSP-klusteri kahdelle palvelimelle, kumpikin palvelin on 64-bittinen. Toinen palvelin on juuripalvelin kaikille päätteille, toinen palvelin on ohjelmistopalvelin. Todellisessa ympäristössä tarvitaan useita ohjelmistopalvelimia; tässä rakennetaan perusasennus testiympäristöön LTSP-klusteriin ominaisuuksiin tutustumista varten.

Lue LTSP-klusterista tarkemmin:

https://wiki.stgraber.org/LTSP-Cluster/

Palvelimet nimetään näin, tässä seurataan Stéphane Graberin alkuperäistä ohjetta.

ltsp-root01 - 192.168.1.101

ltsp-appserv01 - 192.168.1.102

Kummallakin palvelimella on /etc/hosts-tiedostossa nimitiedot palvelimista.

cat /etc/hosts

127.0.0.1       localhost
192.168.1.101   ltsp-root01
192.168.1.102   ltsp-appserv01
[--]

Asennuksia varten on poltettu kaksi CD-levyä.

Juuripalvelimen asennukseen tarvitaan "64-bit PC (AMD64) server install CD". http://cdimage.ubuntu.com/ubuntu-server/daily/current/

Ohjelmistopalvelimen asennukseen tarvitaan "64-bit PC (AMD64) alternate install CD". http://cdimage.ubuntu.com/daily/current/

LTSP-klusterin juuripalvelin

Asenna ensin juuripalvelin. Älä asenna mitään muita palveluja kuin SSH-palvelin "Server install CD"-levyltä.

Asenna kaikki mahdolliset päivitykset juuripalvelimelle.

sudo apt-get update
sudo apt-get dist-upgrade

uname -a
Linux ltsp-root01 2.6.31-12-server #40-Ubuntu SMP Wed Oct 7 05:13:39 UTC 2009 x86_64 GNU/Linux

Asenna ltsp- ja dhcp3-palvelin

Asenna seuraavaksi ltsp- ja dhcp3-palvelin.

sudo apt-get install ltsp-server dhcp3-server

Muokkaa seuraavaksi dhcp3-palvelimen asetustiedostoa.

sudo nano /etc/dhcp3/dhcpd.conf

Tässä asennuksessa on käytetty seuraavanlaista asetustiedostoa. Huomaa, että asetustiedosto ei sijaite /etc/ltsp-hakemistossa.

# /etc/dhcp3/dhcpd.conf
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
  option domain-name "ubuntu-ltsp5";
  option domain-name-servers 192.168.1.1;
  option routers 192.168.1.1;
  range 192.168.1.200 192.168.1.250;
  next-server 192.168.1.101;
  filename "/ltsp/i386/pxelinux.0";
}

Käynnistä dhcp3-palvelin uudestaan.

sudo /etc/init.d/dhcp3-server restart

Rakenna chroot-ympäristö

Päätteet tarvitsevat chroot-ympäristön, joka on 32-bittinen. Rakenna se tälle 64-bittiselle juuripalvelimelle näin.

sudo ltsp-build-client --arch i386 --ltsp-cluster --prompt-rootpass

Kun kysytään ltsp-klusteriin liittyviä asioita, niin vastaa näin. Tässä asennuksessa näin.

Configuration of LTSP-Cluster
NOTE: booleans must be answered as uppercase Y or N
Server name: 192.168.1.101
Port (default: 80): 80
Use SSL [y/N]: N
Enable hardware inventory [Y/n]: Y
Request timeout (default: 2): 2

Anna chroot-ympäristön root-käyttäjän salasana, kun sitä kysytään.

Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

Lopuksi luodaan image päätteille.

Creating 4.0 filesystem on /opt/ltsp/images/i386.img.tmp, block size 131072.
[--]
Info: updating inetd config
info: LTSP-asiakkaan asennus päättyi onnistuneesti

Edellä annetut tiedot ovat /opt/ltsp/i386/etc/ltsp/getltscfg-cluster.conf-tiedostossa.

SERVER=192.168.1.101
PORT=80
ENABLE_SSL=N
INVENTORY=Y
TIMEOUT=2

Asenna ltsp-control-ohjelma

Asenna ltsp-cluster-control-ohjelma.

sudo apt-get install ltsp-cluster-control postgresql

Muokkaa ohjelman asetustiedostoa.

sudo nano /etc/ltsp/ltsp-cluster-control.config.php

Kun muokkaat php-tiedostoa, niin ole tarkkana. Tiedostossa ei saa olla tyhjiä rivejä alussa (ennen <?php-merkintää) tai lopussa (jälkeen ?>-merkinnän).

Tässä asennuksessa on käytössä tällainen asetustiedosto. Huomaa tietokantaan liittyvät tiedot.

<?php
    $CONFIG['save'] = "Save";
    $CONFIG['lang'] = "en"; #Language for the interface (en and fr are supported"
    $CONFIG['charset'] = "UTF-8";
    $CONFIG['use_https'] = "false"; #Force https
    $CONFIG['terminal_auth'] = "false";
    $CONFIG['db_server'] = "localhost"; #Hostname of the database server
    $CONFIG['db_user'] = "ltsp"; #Username to access the database
    $CONFIG['db_password'] = "ltsp"; #Password to access the database
    $CONFIG['db_name'] = "ltsp"; #Database name
    $CONFIG['db_type'] = "postgres"; #Database type (only postgres is supported)
    $CONFIG['auth_name'] = "EmptyAuth";
    $CONFIG['loadbalancer'] = "192.168.1.101"; #Hostname of the loadbalancer
    $CONFIG['first_setup_lock'] = "TRUE";
    $CONFIG['printer_servers'] = array("cups.yourdomain.com"); #Hostname(s) of your print servers
    $CONFIG['rootInstall'] = "/usr/share/ltsp-cluster-control/Admin/";
?>

Luo tietokantaan uusi käyttäjä. Anna salasana uudelle käyttäjälle. Käytä samaa, minkä olit asettanut yllä olevaan tiedostoon.

sudo -u postgres createuser -SDRIP ltsp
Enter password for new role: 
Enter it again: 

Luo tietokantaan uusi kanta.

sudo -u postgres createdb ltsp -O ltsp

Siirry uuteen hakemistoon ja luo kantaan uudet taulut.

cd /usr/share/ltsp-cluster-control/DB/

cat schema.sql functions.sql | psql -h localhost ltsp ltsp

Password for user ltsp: 

Siirry seuraavaksi root-käyttäjäksi ja siirry /root-hakemistoon.

sudo su
cd /root

Hae /root-hakemistoon kaksi tiedostoa.

wget http://bazaar.launchpad.net/%7Eltsp-cluster-team/ltsp-cluster/ltsp-cluster-control/download/head%3A/controlcenter.py-20090118065910-j5inpmeqapsuuepd-3/control-center.py

wget http://bazaar.launchpad.net/%7Eltsp-cluster-team/ltsp-cluster/ltsp-cluster-control/download/head%3A/rdpldm.config-20090430131602-g0xccqrcx91oxsl0-1/rdp%2Bldm.config

Muokkaa control-center.py-tiedostoa niin, että se vastaa tietokannan tietoja.

nano control-center.py

#/usr/bin/python
import pgdb, os, sys

#FIXME: This should be a configuration file
db_user="ltsp"
db_password="ltsp"
db_host="localhost"
db_database="ltsp"

Asenna python-paketti.

apt-get install python-pygresql

Pysäytä Apache2-palvelin ja asenna haetut kaksi tiedostoa.

/etc/init.d/apache2 stop

python control-center.py rdp+ldm.config

Cleaned status table
Cleaned log table
Cleaned computershw table
Cleaned status table
Cleaned log table
Cleaned computershw table
Regenerated tree

Käynnistä Apache2-palvelin.

/etc/init.d/apache2 start

Poistu root-käyttäjän tilasta.

exit

Avaa selaimella ltsp-cluster-control ja tee seuraavat muutokset ensimmäisellä lehdellä.

http://ltsp-root01/ltsp-cluster-control/Admin/admin.php

LANG = fi_FI.UTF-8
LDM_DIRECTX = True
LDM_SERVER = %LOADBALANCER%
LOCAL_APPS_MENU = True
SCREEN_07 = ldm
TIMESERVER = ntp.ubuntu.com
XKBLAYOUT = fi

http://www.arkki.info/howto/Wiki/LTSP-Cluster/LTSP-ClusterControlCenter-01.png

Asenna loadbalancer-palvelin

Asenna seuraavaksi loadbalancer-palvelin.

sudo apt-get install ltsp-cluster-lbserver

Muokkaa loadbalancer-palvelimen asetustiedostoa.

sudo nano /etc/ltsp/lbsconfig.xml

Tässä perusasennuksessa on vain yksi ohjelmisto-palvelin: <node address="http://192.168.1.102:8000" name="ltsp-appserv01"/>

Ryhmän nimi on "karmic", lisäksi kohtaan "max-threads" on annettu arvo "1".

cat /etc/ltsp/lbsconfig.xml

<?xml version="1.0"?>
<lbsconfig>
    <lbservice listen="*:8008" max-threads="1" refresh-delay="60" returns="$IP"/>
    <lbslave is-slave="false"/>
    <mgmtservice enabled="true" listen="*:8001"/>
    <nodes>
        <group default="true" name="karmic">
            <node address="http://192.168.1.102:8000" name="ltsp-appserv01"/>
        </group>
    </nodes>
    <rules>
        <variable name="LOADAVG" weight="50">
            <rule capacity=".7"/>
        </variable>
        <variable name="NBX11SESS" weight="25">
            <rule capacity="$CPUFREQ*$CPUCOUNT*$CPUCOUNT/120" critical="$CPUFREQ*$CPUCOUNT*$CPUCOUNT/100"/>
        </variable>
        <variable name="MEMUSED" weight="25">
            <rule capacity="$MEMTOTAL-100000"/>
        </variable>
    </rules>
</lbsconfig>

Näin kaikki on tehty valmiiksi juuripalvelimen osalta. Seuraavaksi siirrytään ohjelmisto-palvelimen pariin.

LTSP-klusterin ohjelmistopalvelin

Asenna ohjelmistopalvelin "Alternate install CD"-levyltä, muta älä asenna mitään LTSP-paketteja.

Asenna kaikki mahdolliset päivitykset ohjelmistopalvelimelle.

sudo apt-get update
sudo apt-get dist-upgrade

uname -a
Linux ltsp-appserv01 2.6.31-12-generic #40-Ubuntu SMP Wed Oct 7 04:13:44 UTC 2009 x86_64 GNU/Linux

Asenna tämän jälkeen seuraavat paketit.

sudo apt-get install ubuntu-desktop ltsp-server ltsp-cluster-lbagent ltsp-cluster-accountmanager

Voit poistaa päätteiden resurssien kannalta turhia ohjelmia, kuten näytönsäästäjän ja Compiz-paketin.

sudo apt-get remove --purge gnome-screensaver compiz

Tarkista vielä, että ohjelmistopalvelimella ei ole mitään ylimääräistä.

sudo apt-get autoremove && sudo apt-get autoclean

Poista käytöstä seuraavat palvelut.

sudo update-rc.d -f nbd-server remove

sudo update-rc.d -f gdm remove

sudo update-rc.d -f bluetooth remove

sudo update-rc.d -f pulseaudio remove

Luo vielä seuraava tiedosto ja kopioi tämä sisältö tiedostoon

sudo nano /etc/xdg/autostart/pulseaudio-module-suspend-on-idle.desktop

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=PulseAudio Session Management
Comment=Load module-suspend-on-idle into PulseAudio
Exec=pactl load-module module-suspend-on-idle
Terminal=false
Type=Application
Categories=
GenericName=

Luo yksi käyttäjä ohjelmistopalvelimelle ja lisää käyttäjä ryhmiin.

sudo adduser ltsp001

sudo adduser ltsp001 fuse

sudo adduser ltsp001 audio

sudo adduser ltsp001 video

Testiympäristön muokkaus

Jos haluat testata päätteitä LTSP-klusteri-ympäristössä, niin asenna seuraavat ohjelmat juuripalvelimen chroot-ympäristöön. Tee sitä ennen päivitykset chroot-ympäristöön. Näistä on kerrottu toisaalla. Chroot-ympäristön salasanana annoit jo aivan asennusten alussa.

https://help.ubuntu.com/community/UbuntuLTSP/UpdatingChroot

sudo cp /etc/apt/sources.list /opt/ltsp/i386/etc/apt/sources.list
export LTSP_HANDLE_DAEMONS=false
sudo chroot /opt/ltsp/i386
mount -t proc proc /proc
apt-get update && apt-get dist-upgrade
apt-get install nano ssh mc htop
exit

Kun Linux-ydin päivittyy chroot-ympäristössä, niin rakenna uusi image näin. Muista "--arch i386" -optio 64-bittisellä palvelimella.

sudo ltsp-update-kernels
sudo umount /opt/ltsp/i386/proc

sudo ltsp-update-image --arch i386

Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on /opt/ltsp/images/i386.img.tmp, block size 131072.
[--}
Info: port 2000 is already defined with /opt/ltsp/images/i386.img in inetd.conf
Info: taking no action.

Tunnus "ltsp001" on ohjelmistopalvelimella "ltsp-appserv01".

ltsp001@ltsp-appserv01:~$ uname -a
Linux ltsp-appserv01 2.6.31-12-generic #41-Ubuntu SMP Wed Oct 7 19:37:12 UTC 2009 x86_64 GNU/Linux
ltsp001@ltsp-appserv01:~$

Chroot-ympäristön root-tunnus on myös käytössä.

root@ltsp200:~# uname -a
Linux ltsp200 2.6.31-12-generic #41-Ubuntu SMP Wed Oct 7 18:42:46 UTC 2009 i686 GNU/Linux
root@ltsp200:~# ps ax | grep ltsp
 2291 ?        S      0:00 /bin/sh /usr/share/ltsp/screen_session 07
 4108 ?        S      0:00 /bin/openvt -f -w -c 7 -- /usr/share/ltsp/screen.d/ldm
 4109 tty7     Ss+    0:00 /bin/sh /usr/share/ltsp/screen.d/ldm
 4222 tty7     S+     0:00 xinit /usr/share/ltsp/xinitrc /usr/sbin/ldm -- :7 vt7 -auth /var/run/ldm-xauth-iVl786vMH/Xauthority -br
 4486 pts/0    Ss+    0:00 ssh -Y -t -M -S /var/run/ldm_socket_4241_192.168.1.102 -o NumberOfPasswordPrompts=1 ltsp001@192.168.1.102 echo LTSPROCKS; /bin/sh -
 5407 ?        Ssl    0:00 sshfs -o allow_other,ControlPath=/var/run/ldm_socket_4241_192.168.1.102 192.168.1.102:/home/ltsp001 /home/ltsp001
 5495 tty7     S      0:00 /bin/sh /usr/bin/ltsp-localappsd
 5499 tty7     S      0:00 ssh -Y -t -S /var/run/ldm_socket_4241_192.168.1.102 -l ltsp001 192.168.1.102  XDG_DATA_DIRS=/tmp/ltsp-localapps-ltsp001-MITLUY/:/usr/local/share/:/usr/share/ LTSP_CLIENT=192.168.1.200 LTSP_CLIENT_HOSTNAME=ltsp200  DISPLAY=192.168.1.200:7  PULSE_SERVER=tcp:192.168.1.200:4713 ESPEAKER=192.168.1.200:16001 /etc/X11/Xsession default < /dev/null > /dev/null ; /usr/sbin/ltspfsmounter all cleanup
 5651 pts/1    S+     0:00 grep ltsp
root@ltsp200:~#

Pääte LTSP-klusterissa

Tässä asennuksessa on käytetty päätteenä HP Mini 2133-kannettavaa tietokonetta. Ennen LDM-sisäänkirjautumista, LTSP-klusteri kertoo tiedot päätteestä.

http://www.arkki.info/howto/Wiki/LTSP-Cluster/LTSP-ClusterControlCenter-05.png

Kun tunnus ja salasana on annettu, niin pääte voi kirjautua ohjelmistopalvelimelle.

http://www.arkki.info/howto/Wiki/LTSP-Cluster/LTSP-ClusterControlCenter-06.png

Muutamia ruutukappauksia ltsp-cluster-control -ohjelmasta.

http://www.arkki.info/howto/Wiki/LTSP-Cluster/LTSP-ClusterControlCenter-02.png

http://www.arkki.info/howto/Wiki/LTSP-Cluster/LTSP-ClusterControlCenter-03.png

http://www.arkki.info/howto/Wiki/LTSP-Cluster/LTSP-ClusterControlCenter-04.png