LTSP-PNP, kuormantasaus

Ohessa kuvaillaan LTSP-PNP-järjestelmä, jossa tarvitaan kuormantasausta. Järjestelmä perustuu Debianiin, koska se tukee edelleen hyvin vanhoja tyhmiä päätteitä kuten HP t-sarjaa, esimerkkinä HP t5135.

Tässä esimerkissä on yksi juuripalvelin ja kolme ohjelmistopalvelinta. Käyttäjien kotihakemistot ovat jaettu juuripalvelimelta NFS-palvelulla. Käyttäjien tiedot (tunnus/salasana) pitää olla kaikissa palvelimissa, myös ohjelmistopalvelimissa. Yksinkertaisimmillaan tiedostot (passwd, group, shadow) vain kopioidaan juuripalvelimelta ohjelmistopalvelimille.

Juuripalvelin on 32-bittinen. Ohjelmistopalvelimet ovat 32-bittisiä. Kaikissa palvelimissa on LXDE-työpöytäympäristö.

LTSP Logo Juuripalvelin ja ohjelmistopalvelimet: http://cdimage.debian.org/debian-cd/7.6.0/i386/iso-cd/debian-7.6.0-i386-lxde-CD-1.iso

Palvelimet on nimetty tässä esimerkissä näin. Palvelimille on annettu kiinteä osoite.

192.168.0.105 debian-ltsp-pnp
192.168.0.106 debian-app-01
192.168.0.107 debian-app-02
192.168.0.108 debian-app-03

Juuripalvelin

Asennetaan LTSP-PNP-järjestelmä juuripalvelimeen.

apt-get install dnsmasq ltsp-server-standalone ltsp-client

ltsp-config dnsmasq

ltsp-config nbd-server

sed -i -e 's,BOOT_METHODS=.*,BOOT_METHODS=NBD,g' /etc/ltsp/update-kernels.conf

echo 'IPAPPEND=3' >> /etc/ltsp/update-kernels.conf

/usr/share/ltsp/update-kernels

ltsp-update-image --cleanup /

ltsp-config nbd-server

service nbd-server restart

Ohjelmistopalvelimet

Ohjelmistopalvelimiin ei asenneta muuta kuin ”ldm-server”-paketti.

apt-get install ldm-server

Asetustiedostot

Jotta kuormantasaus toimisi, niin pitää luoda skripti, muokata lts.conf-tiedostoa ja lisätä ohjelmistopalvelinten ssh-avaimet juuripalvelimelle.

get_hosts-skripti

Skripti luodaan ”/usr/share/ltsp/” hakemistoon.

nano /usr/share/ltsp/get_hosts

Kopioi tämä get_hosts-tiedostoon:
#!/bin/bash
# Prioritize the server list contained in MY_SERVER_LIST parameter based on server rating
TMP_LIST=""
SHUFFLED_LIST=""
if [ -z "$MY_SERVER_LIST" ]; then
SHUFFLED_LIST=$SERVER
else
for i in $MY_SERVER_LIST; do
rank=$(netcat $i 9571 | grep rating | cut -d: -f2)
if [ -n "$rank" ]; then
TMP_LIST="$TMP_LIST\n${rank}_$i"
fi
done

TMP_LIST=$(echo -e $TMP_LIST | sort -r)
for i in $TMP_LIST; do
SHUFFLED_LIST="$SHUFFLED_LIST $(echo $i | cut -d_ -f2)"
done
fi
echo $SHUFFLED_LIST

Muokkaa tiedosto ajettavaksi.

chmod 755 /usr/share/ltsp/get_hosts

lts.conf-tiedosto

Tiedostoon ”lts.conf” pitää lisätä seuraava MY_SERVER_LIST-rivi.
nano /var/lib/tftpboot/i386/etc/lts.conf
[Default]
LDM_DIRECTX=True
[--]
MY_SERVER_LIST="192.168.0.106 192.168.0.107 192.168.0.108"

Ohjelmistopalvelimien ssh-avaimet

Kun kaikki ohjelmistopalvelimet ovat käynnissä, niin lisää ne juuripalvelimelle seuraavalla tavalla.

Luo tyhjä tiedosto ”/etc/ltsp/ssh_known_hosts.auto”

touch /etc/ltsp/ssh_known_hosts.auto

Lisää ssh-avaimet.

ltsp-update-sshkeys 192.168.0.106 debian-app-01 192.168.0.107 debian-app-02 192.168.0.108 debian-app-03

Luo uusi levykuva päätteille.

ltsp-update-image -c /

Tarkista päätteiden kirjautuminen

Näin juuripalvelimella oleva skripti jakaa päätteet ja kirjautumiset tasaisesti kolmelle ohjelmistopalvelimelle. Juuripalvelimella ei ole päätteiden prosesseja.

root@debian-app-01:~# ps ax | grep ltsp
3145 ? Ss 0:00 sshd: ltsp002 [priv]
3150 ? S 0:00 sshd: ltsp002@pts/0
3178 ? Ss 0:00 bash -c LTSP_CLIENT=192.168.0.26 LTSP_CLIENT_HOSTNAME=ltsp26 LTSP_CLIENT_MAC=08:00:27:D5:2E:14 LIBGL_ALWAYS_INDIRECT=true LC_ALL=fi_FI.UTF-8 LANGUAGE=fi_FI.UTF-8 LANG=fi_FI.UTF-8 DISPLAY=192.168.0.26:7 PULSE_SERVER=tcp:192.168.0.26:4713 ESPEAKER=192.168.0.26:16001 LTSP_ALSA_DEFAULT=pulse /etc/X11/Xsession "default" < /dev/null > /dev/null ; /usr/sbin/ltspfsmounter all cleanup
3251 ? S 0:00 openbox --config-file /home/ltsp002/.config/openbox/lxde-rc.xml
3467 pts/2 S+ 0:00 grep ltsp

root@debian-app-02:~# ps ax | grep ltsp
3131 ? Ss 0:00 sshd: ltsp003 [priv]
3136 ? S 0:00 sshd: ltsp003@pts/0
3163 ? Ss 0:00 bash -c LTSP_CLIENT=192.168.0.12 LTSP_CLIENT_HOSTNAME=ltsp12 LTSP_CLIENT_MAC=08:00:27:2C:BE:71 LIBGL_ALWAYS_INDIRECT=true LC_ALL=fi_FI.UTF-8 LANGUAGE=fi_FI.UTF-8 LANG=fi_FI.UTF-8 DISPLAY=192.168.0.12:7 PULSE_SERVER=tcp:192.168.0.12:4713 ESPEAKER=192.168.0.12:16001 LTSP_ALSA_DEFAULT=pulse /etc/X11/Xsession < /dev/null > /dev/null ; /usr/sbin/ltspfsmounter all cleanup
3236 ? S 0:00 openbox --config-file /home/ltsp003/.config/openbox/lxde-rc.xml
3487 pts/2 S+ 0:00 grep ltsp

root@debian-app-03:~# ps ax | grep ltsp
3300 ? Ss 0:00 sshd: ltsp001 [priv]
3325 ? S 0:00 sshd: ltsp001@pts/1
3352 ? Ss 0:00 bash -c LTSP_CLIENT=192.168.0.13 LTSP_CLIENT_HOSTNAME=ltsp13 LTSP_CLIENT_MAC=08:00:27:CC:7A:AB LIBGL_ALWAYS_INDIRECT=true LC_ALL=fi_FI.UTF-8 LANGUAGE=fi_FI.UTF-8 LANG=fi_FI.UTF-8 DISPLAY=192.168.0.13:7 PULSE_SERVER=tcp:192.168.0.13:4713 ESPEAKER=192.168.0.13:16001 LTSP_ALSA_DEFAULT=pulse /etc/X11/Xsession "default" < /dev/null > /dev/null ; /usr/sbin/ltspfsmounter all cleanup
3429 ? S 0:00 openbox --config-file /home/ltsp001/.config/openbox/lxde-rc.xml
3910 pts/0 S+ 0:00 grep ltsp

Lisää esimerkissä käytettyjä asetustiedostoja

root@debian-ltsp:~# cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 debian-ltsp-pnp

192.168.0.105 debian-ltsp-pnp
192.168.0.106 debian-app-01
192.168.0.107 debian-app-02
192.168.0.108 debian-app-03

root@debian-ltsp-pnp:~# cat /etc/exports
/home 192.168.0.106(rw,no_root_squash,no_subtree_check) 192.168.0.107(rw,no_root_squash,no_subtree_check) 192.168.0.108(rw,no_root_squash,no_subtree_check)

root@debian-app-01:~# cat /etc/fstab
192.168.0.105:/home /home nfs hard,intr,rsize=8192,wsize=8192,bg 0 0

root@debian-app-01:~# mount
192.168.0.105:/home on /home type nfs4 (rw,relatime,vers=4,rsize=8192,wsize=8192,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=192.168.0.106,minorversion=0,local_lock=none,addr=192.168.0.105)

root@debian-ltsp-pnp:~# ltsp-info
root@debian-ltsp-pnp:~# ltsp-info
server information:
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 7.6 (wheezy)
Release: 7.6
Codename: wheezy

server packages:
ii ldm 2:2.2.11-2
ii ldm-server 2:2.2.11-2
ii ldm-themes 12.07.1
ii ltsp-client 5.4.2-6+deb7u1
ii ltsp-client-core 5.4.2-6+deb7u1
ii ltsp-docs 1.1-1
ii ltsp-server 5.4.2-6+deb7u1
ii ltsp-server-standalone 5.4.2-6+deb7u1
un ltsp-utils
ii ltspfs 1.1-2
ii ltspfsd 1.1-2
ii ltspfsd-core 1.1-2

found image: /opt/ltsp/images/i386.img

root@debian-ltsp-pnp:~# uname -a
Linux debian-ltsp-pnp 3.2.0-4-486 #1 Debian 3.2.60-1+deb7u3 i686 GNU/Linux