210 likes | 392 Views
INFN - Napoli 1 INFM - UDR Napoli 2 Workshop CCR 2003 – Paestum. Rosario Esposito 1 Francesco Maria Taurino 1,2 Gennaro Tortone 1. LTSP Linux Terminal Server Project. Problema.
E N D
INFN - Napoli1INFM - UDR Napoli2 Workshop CCR 2003 – Paestum Rosario Esposito1 Francesco Maria Taurino1,2 Gennaro Tortone1 LTSPLinux Terminal Server Project
Problema • Dotare le sale utenti e i laboratori studenti di terminaliche permettano l'utilizzo delle risorse dei centri di calcolo • I terminali seriali e gli X-terminal (tipo Digital VXT) sono ormai obsoleti e non offrono prestazioni ritenute soddisfacenti • Il carico di lavoro sui sistemisti è solitamente molto elevato ed è possibile dedicare poco tempo alla manutenzione delle sale utenti • Affidare agli utenti, a volte occasionali, una postazione di lavoro Windows aumenta i rischi di intrusione / hackeraggio
Possibili soluzioni Nuovi sistemi X-terminal sono disponibili in commercio, ma a prezzi piuttosto elevati e caratteristiche hardware medio-basse I terminali Windows prevedono l'utilizzo di serverMicrosoft ($$) e non consentono l'accesso a risorse Xwindows, se non nelle versioni più costose PC standard con una installazione personalizzata di Linux(es.: LinuXterminal http://www.na.infn.it/compreso/Linuxterminal99/) LTSP – Linux Terminal Server Project
LTSP - Introduzione • LTSP è un prodotto OpenSource che fornisce un metodo molto semplice per utilizzare PC a basso costo come terminali grafici o testuali • Consente il boot di macchine diskless tramite una scheda di rete dotata di EEPROM (es.: 3com 905cTX) oppure PXE-compliant • Prevede l’utilizzo di un boot server su cui girano i servizi dhcp, tftp e nfs e su cui vanno installati i pacchetti di LTSP, reperibili su http://www.ltsp.org
LTSP – Altri utilizzi • Può essere utilizzato per creare chioschi informatici o internet cafè • Esistono pacchetti per trasformare un pool di terminali LTSP in una Linux farm con OpenMosix(es.: http://bofh.be/clusterknoppix/) • E' possibile consentire l'accesso ai floppy dei terminali per trasferire file da/verso i sistemi di public login • Sono disponibili alcune applicazioni per l'esecuzione in locale, come Netscape, rdesktop, il client ICA, ma e' necessario configurare un server NIS
LTSP – Come funziona (1/2) • Il PC-terminale, dopo l'accensione ed il POST, rileva la presenza di una rom boottabile • Viene eseguito il codice di Etherboot, che effettua la richiesta DHCP • Il server DHCP risponde alla richiesta con i dati relativi all'indirizzo ip, la netmask, il path ed il nome del kernel da scaricare ed il percorso da montare come rootfs • Via TFTP viene scaricato il kernel da eseguire • Il kernel riconosce l'hardware della macchina ma invece di eseguire “init” esegue lo script “linuxrc”
LTSP – Come funziona (2/2) • linuxrc, fra le altre cose, monta la directory root dal server nfs e lancia “init” • Init completa la configurazione della macchina ed imposta il terminale al runlevel specificato: • 3 : shell (debug delle configurazioni) • 4 : sessioni telnet • 5 : sessione X, con richiesta XDMCP verso il server specificato. A questo runlevel la scheda grafica viene configurata in modo automatico!
Hardware supportato • PC x86 compatibili (esiste una versione sperimentaleper macchine PPC) • Tutte le schede di rete supportate da Etherboot e dal kernel di Linux • Tutte le schede video supportate da XFree86 4.1, oppure 3.3.6 grazie ad appositi pacchetti aggiuntivi
LTSP – server (1/8) • LTSP è disponibile in formato sorgente, tgz, deb, e rpm per RedHat, Mandrake, Suse • Le slide si riferiscono all’installazione di unboot-server con Mandrake Linux • I pacchetti LTSP necessari sono 4 • ltsp_core – mini-distribuzione per i client • ltsp_kernel – kernel per i terminali • ltsp_x_core – XFree86 4.1 • ltsp_x_fonts – fonts per X-Windows
LTSP – server (2/8) • Installare i pacchetti dhcp-server, tftp-server e nfs-server • # urpmi dhcp-server • # urpmi tftp-server • # urpmi nfs-utils • Installare i 4 pacchetti ltsp scaricati dal sito LTSP • # rpm -Uvh ltsp*
LTSP – server (3/8) Editare il file /etc/dhcpd.conf : ddns-update-style none; option domain-name "na.infn.it"; option domain-name-servers 192.84.134.50, 192.84.134.55; default-lease-time 21600; max-lease-time 43200; option root-path "192.84.149.101:/opt/ltsp/i386"; subnet 192.84.149.0 netmask 255.255.255.0 { option routers 192.84.149.254; option subnet-mask 255.255.255.0; host lxt1 { hardware ethernet 00:04:76:D6:EF:D6; fixed-address 192.84.149.102; filename "/lts/vmlinuz-2.4.9-ltsp-lpp-6"; } }
LTSP – server (4/8) Editare il file /opt/ltsp/i386/etc/lts.conf, che contiene le opzioni per i client e i settaggi specifici per le macchine con hardware particolare: [Default] XDM_SERVER = 192.84.149.101 XSERVER = auto X_MOUSE_PROTOCOL = "PS/2" X_MOUSE_DEVICE = "/dev/psaux" X_MOUSE_RESOLUTION = 400 X_MOUSE_BUTTONS = 2
LTSP – server (5/8) X_MOUSE_EMULATE3BTN = Y USE_XFS = Y XFS_SERVER = 192.84.134.1 LOCAL_APPS = N RUNLEVEL = 5 DNS_SERVER = 192.84.134.50 SEARCH_DOMAIN = na.infn.it [192.84.149.46] X_MOUSE_PROTOCOL = "Microsoft" X_MOUSE_DEVICE = "/dev/ttyS0" X_MOUSE_RESOLUTION = 400 X_MOUSE_BUTTONS = 2 X_MOUSE_EMULATE3BTN = Y
LTSP – server (6/8) • Avviare i server • # service dhcpd start • # service xinetd restart (tftp e' gestito da xinetd) • Esportare la directory di ltsp via nfs • In /etc/exports /opt *(ro) • Avviare il server nfs • # service nfs start LTSP non richiede alcun daemon specifico in esecuzione sul server
LTSP – server (7/8) • Nella configurazione di default di LTSP i client fanno una richiesta XDMCP di tipo “query” all'host XDM_SERVER • Può essere conveniente modificare gli script LTSP edil login manager per effettuare richieste di tipo “indirect” per consentire agli utenti il login su più server • Modificare il file /opt/ltsp/i386/etc/rc.local e modificare, la stringa “-query ${XDM_SERVER}” in“-indirect ${XDM_SERVER}”
LTSP – server (8/8) • Modificare il file di configurazione del login manager che gira sull’XDM server per accettare le connessioni di tipo indirect e inserire la lista degli host da contattare • Ad esempio per gdm (/etc/X11/gdm/gdm.conf) • In [xdmcp] : “Enable = true” “HonorIndirect = true” • Aumentare i parametri “Max*” in base al numero di terminali • In [chooser] : “Hosts = server1.domain, server2.domain, server3.domain”
LTSP – client (1/2) Se i client sono dotati di floppy disk : • Scaricare dal sito http://www.rom-o-matic.net l'immagine di boot per floppy disk, in formato lzdsk, corrispondente alla scheda di rete installata • Copiare l'immagine su un floppy • Boot da floppy • Il client carica il programma e comincia la procedura di boot via rete • Dopo pochi secondi è disponibile la sessione X verso il server specificato
LTSP – client (2/2) Se i client sono dotati di scheda di rete con EEPROM: • Scaricare dal sito http://www.rom-o-matic.net l'immagine di boot per eprom, in formato lzrom, corrispondente alla scheda di rete installata • Programmare la EEPROM ed inserirla nella scheda di rete • Configurare il terminale per il boot via rete • Il client carica il programma dalla EEPROM della scheda e comincia la procedura di boot via rete • Dopo pochi secondi e' disponibile la sessione X verso il server specificato
LTSP e PXE • E' possibile fare il boot di client LTSP via PXE • Dopo il POST, il PC esegue una richiesta di boot via rete • Il server DHCP indica al client di scaricare il bootloader pxelinux (http://syslinux.zytor.com/) • Pxelinux effettua il download del kernel LTSP • Vengono eseguiti gli step di LTSP per completare la configurazione “al volo” del terminale
LTSP a Napoli Nella sezione INFN di Napoli LTSP e' utilizzato per il boot di 68 terminali diskless da due server Linux • 18 del centro di calcolo 10 Celeron 1000 - 256 MB 8 Pentium 200 - 32 MB • 50 per i laboratori studenti del dip. di Fisica 20 Celeron 400 - 64 MB 30 PIII 1000 - 256 MB Il Setup dei server ha richiesto meno di 2 ore (ciascuno)