Thin Client terminal server Print
Friday, 14 September 2007 09:26

7 febbraio 2006

Un vecchio concetto attuale: un server piuttosto potente ed un certo numero di terminali ricavati da PC obsoleti.
Provate a cercare con un motore di ricerca (ad es. Google) “terminal server linux”, non stupitevi se il risultato indicherà la presenza di alcuni milioni di pagine web; tra le più importanti noterete la presenza di applicazioni realizzate in ambito scolastico (http://www.k12ltsp.org/contents.html).

Scopo

In questo articolo descriveremo come realizzare un terminal server che ci permetterà di semplificare i problemi di manutenzione del laboratorio e riutilizzare i PC con le seguenti caratteristiche:

  • CPU: i486 / Pentium
  • RAM: 16 / 32 MB
  • Hard Disk: nessuno
  • Adattatore di rete: 10 Mbps
  • CD: nessuno
  • Floppy: funzionante

Server

Deve essere un PC con buone caratteristiche, in particolare per 10 utenti consigliamo:

  • CPU: PIV o analogo
  • RAM: 1GB
  • Hard Disk: adatto al numero di utenti (100 – 200 GB)
  • Adattatore di rete: 1000 Mbps
  • Switch: meglio se con una porta a 1000 Mbps (quella per il server).

Software

Linux Debian 3.1 ed in particolare ltsp 4.1

Prerequisiti

Le operazioni che seguono richiedono una certa conoscenza del sistema operativo Linux e dei principi di networking.

Installazione server

Faremo riferimento al Linux Terminal Server Project (http://www.ltsp.org), in particolare alla documentazione in lingua italiana (http://www.ltsp.org/documentation/ltsp-4.1/ltsp-4.1.3-0f-it.html), e ci limiteremo a evidenziare le particolarità dell’installazione con la distribuzione Debian 3.1

^top

Installare Debian 3.1

L'installer Debian permette di selezionare il task che si riferisce all'ambiente grafico; avvenuta l'installazione è necessario installare i seguenti software:

apt-get install kdm (display manager scelto)
apt-get install ltsp-utils (software per il terminal server)
apt-get install dhcp (server dhcp)
apt-get install tftpd-hpa (Trivial File Trasfer Protocol utile per l'avvio dei terminali)

Facciamo notare che i programmi sono installabili da una sola riga di comando:
apt-get install mc kdm ltsp-utils dhcp tftpd-hpa

Installare il software per il terminal server

Come utente root eseguire:
su –  root
ltspadmin

e installare il package completo LTSP seguendo le istruzioni dettagliate nel documento
http://ltsp.mirrors.tds.net/pub/ltsp/docs/ltsp-4.1-it.html#AEN373

Eseguire il programma ltspcfg e configurare i servizi (dhcp, tftp, nfs, xdmc) seguendo passo passo le istruzioni indicate nel documento:
http://ltsp.mirrors.tds.net/pub/ltsp/docs/ltsp-4.1-it.html#AEN446

Ulteriori personalizzazioni dell'installazione
File /etc/kde3/kdmXaccess
rimuovere il carattere # dalla linea
#*            #any host can get a login window

File /etc/kde3/kdm/kdmrc
nella sezione [Xdmcp] verificare la linea:
Enable = true

File /etc/inetd.conf
modificare la linea che si riferisce al daemon tftpd come segue:
tftp  dgram   udp   wait      root  /usr/sbin/tcpd  /usr/sbin/in.tftpd  -s  /tftpboot

File /opt/lts/i386/etc/lts.conf
Configurare il tipo di tastiera per ogni workstation ad es.

[ws001]
     XSERVER = auto
     XkbModel = pc105
     XkbLayout = it
     SCREEN_01 = startx

File /opt/ltsp/i386/etc/modules.devfs
abilitare il mouse seriale come segue:

# Serial ports
alias     /dev/ttyS*    serial
#alias    /dev/tts*      serial
##alias   /dev/ttyS*     /dev/tts
#alias    /dev/cua*      /dev/tts

^top

Avviare i terminali

PXE

Le schede di rete recenti hanno il supporto PXE, ovvero permettono l'avvio del computer direttamente dalla rete; per attivare questa opzione è necessario impostare il BIOS in modo tale che la prima modalità di avvio sia “Boot from LAN”.
Nel file di configurazione del dhcp fare riferimento al kernel di avvio pxelinux.0 (vedere in seguito  il file dhcpd.conf).

Creare un floppy di avvio

Per le schede di rete che non hanno il supporto PXE possiamo preparare un floppy di avvio.
Prima di effettuare questa operazione è necessario conoscere, per ogni terminale, il tipo di scheda di rete disponibile; spesso è sufficiente rilevare le scritte sul chip principale per ricavare questa informazione (ad. Esempio RTL8139B)

Collegatevi al sito:
http://www.rom-o-matic.net/

  • selezionate l'ultima release di produzione
  • selezionate il tipo di adattatore di rete desiderato e scaricatelo
  • copiate l'immagine scaricata su un floppy formattato e privo di errori

Esempi:

  • per un adattatore del tipo RTL8139B è necessario scaricare l'immagine “rtl8139:rtl8139b”
  • per un adattatore del tipo RTL8029 è necessario scaricare l'immagine “ns8390:rtl8029”

ed eseguire il comando:
dd if=eb-5.4.1-rtl8139.zdsk of=/dev/fd0
oppure:
dd if=eb-5.4.1-ns8390.zdsk of=/dev/fd0
per creare il floppy di avvio, dove  eb-5.4.1-rtl8139.zdsk e eb-5.4.1-ns8390.zdsk sono  i file immagine scaricati nei due esempi.

Se avete un adattatore di rete di tipo ISA (ad. es. NE2000) consigliamo di scaricare l'immagine floppy di avvio che si trova nella versione ltsp 5.3.2 ed in particolare "ne - drivers/net/ns8390"
(eb-5.3.2-ne.zdsk).

Swap
È opportuno prevedere uno spazio disco di swap; eseguire i comandi:
mkdir /var/opt/ltsp
mkdir /var/opt/ltsp/swapfiles
 
Come riconoscere il MAC Address dell'adattatore di rete
Nel file di configurazione dhcpd.conf compare il MAC address della scheda di rete del terminale, per ottenere questa informazione è sufficiente procedere come segue:

  • avviare, con il floppy di avvio o con PXE, il terminale;
  • rilevare il MAC address visualizzato sul monitor (è un numero del tipo 00:0F:FE:18:50:65)
  • completare il file dhcpd.conf come indicato in seguito.

File di configurazione utilizzati
File /opt/ltsp/i386/etc/lts.conf
#
# Copyright (c) 2003 by James A. McQuillan (McQuillan Systems, LLC)
#
# This software is licensed under the Gnu General Public License.
# The full text of which can be found at http://www.LTSP.org/license.txt
#
#
# Config file for the Linux Terminal Server Project (www.ltsp.org)
#

[Default]
     SERVER             = 192.168.1.100
     XSERVER            = auto
     X_MOUSE_PROTOCOL   = "PS/2"
     X_MOUSE_DEVICE     = "/dev/psaux"
     X_MOUSE_RESOLUTION = 400
     X_MOUSE_BUTTONS    = 3
     USE_XFS            = N
     SCREEN_01        = startx
     USE_NFS_SWAP       = Y
     SWAPFILE_SIZE      = 100m

[ws001]
    XSERVER     = vesa
    X_MODE_0      = 800x600
    X_COLOR_DEPTH = 16
    XkbModel      = "pc105"
    XkbLayout      = "it"

[ws002]
    XkbModel      = "pc105"
    XkbLayout      = "it"

[ws003]
    XkbModel      = "pc105"
    XkbLayout      = "it"

# esempio di utilizzo mouse seriale
[ws004]
    X_MOUSE_PROTOCOL   = "Microsoft"
    X_MOUSE_DEVICE     = "/dev/ttyS1"   
    X_MOUSE_RESOLUTION = 50
    X_MOUSE_EMULATE3BTN = Y
    XkbModel          = "pc105"
    XkbLayout        = "it"

File /etc/dhcpd.conf
#
# Sample configuration file for ISC dhcpd for Debian
#
# $Id: dhcpd.conf,v 1.4.2.2 2002/07/10 03:50:33 peloy Exp $
#

option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 151.99.125.2;
option domain-name "ltsp";
option root-path "192.168.1.100:/opt/ltsp/i386";
default-lease-time 21600;
max-lease-time 21600;

shared-network WORKSTATIONS {
     subnet 192.168.1.0 netmask 255.255.255.0 {
          range 192.168.1.101 192.168.1.110;
     }
    
}      
group   {
         use-host-decl-names       on;
         option log-servers        192.168.1.100;
                 
         host ws001 {
              hardware ethernet     00:20:18:28:53:c0;
              fixed-address         192.168.1.101;
              filename              "/lts/vmlinuz-2.4.26-ltsp-3";
         }
          host ws002 {
              hardware ethernet     00:80:C8:FE:17:8E;
              fixed-address         192.168.1.102;
              filename              "/lts/vmlinuz-2.4.26-ltsp-3";
         }
# esempio di avvio con PXE
          host ws003 {
              hardware ethernet     00:80:C8:FD:A0:E9;
              fixed-address         192.168.1.103;
              filename              "/lts/2.4.26-ltsp-3/pxelinux.0";
         }
# esempio di adattatore ISA NE2000
          host ws004 {
              hardware ethernet     00:C0:26:10:95:84;
              fixed-address         192.168.1.104;
              filename              "/lts/vmlinuz-2.4.26-ltsp-3";
              option option-128 e4:45:74:68:00:00; #non cambiare
              option option-129 "NIC=ne IO=0x280"; #specifici della scheda }
}
Come si può notare gli indirizzi IP sono assegnati in base al MAC address.

File /etc/exports
#
# /etc/exports: the access control list for filesystems which may be exported
#        to NFS clients.  See exports(5).
## LTSP-begin ##
#
# The lines between 'LTSP-begin' and 'LTSP-end' were added
# on: Fri Sep 30 13:03:35 2005, by the ltspcfg configuration tool.
# For more information, visit the LTSP homepage
# at http://www.LTSP.org
#

/opt/ltsp     192.168.1.0/255.255.255.0(ro,no_root_squash,sync)
/var/opt/ltsp/swapfiles     192.168.1.0/255.255.255.0(rw,no_root_squash,async)

## LTSP-end ##

File /etc/hosts
127.0.0.1     localhost.localdomain     localhost
192.168.1.100    debian.ltsp     debian

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
## LTSP-begin ##
#
# The lines between 'LTSP-begin' and 'LTSP-end' were added
# on: Fri Sep 30 13:03:23 2005, by the ltspcfg configuration tool.
# For more information, visit the LTSP homepage
# at http://www.LTSP.org
#

192.169.1.101     ws001.ltsp  ws001
192.169.1.102     ws002.ltsp  ws002
192.169.1.103     ws003.ltsp  ws003
192.169.1.104     ws004.ltsp  ws004
192.169.1.105     ws005.ltsp  ws005
192.169.1.106     ws006.ltsp  ws006
192.169.1.107     ws007.ltsp  ws007
192.169.1.108     ws008.ltsp  ws008
192.169.1.109     ws009.ltsp  ws009
192.169.1.1010     ws010.ltsp  ws010
## LTSP-end ##

File /etc/host.allow
# /etc/hosts.allow
#
## LTSP-begin ##
#
# The lines between 'LTSP-begin' and 'LTSP-end' were added
# on: Fri Sep 30 13:03:29 2005, by the ltspcfg configuration tool.
# For more information, visit the LTSP homepage
# at http://www.LTSP.org
#

bootpd:     0.0.0.0
in.tftpd:   192.168.1.
portmap:    192.168.1.

## LTSP-end ##

^top

Riferimenti

Last Updated on Monday, 08 October 2007 06:58