Návody
-
Linux Terminal Server Project - II
Linux Terminal Server Project - II
Instalace. Konfigurace serveru a pracovních stanic.
Instalace
Co budeme potřebovat? Celá distribuce je rozdělena do těchto základních
balíčků:
LTSP core - vše společné pro libovolné volby systému.
Kernel - pro každou stanici je potřeba mít připravené jádro s
odpovídajícím ovladačem síťové karty. Jádro je celkem aktuální (2.4.19) a
bude postačovat většině nasazení. Pokud si budete chtít zkompilovat
vlastní, tak vás upozorním na patch, který je potřeba pro umožnění
swapování přes síť nfs-swap
pro stanice s nedostatkem paměti. Po kompilaci je také potřeba jádro
pozměnit pomocí programu mknbi.
X Core - Má-li na stanici běžet X server, budete potřebovat tento
balíček.
X fonts - Pro X server jsou k dispozici základní fonty.
Dále předpokládejme, že budeme používat rozsah IP adres 192.168.0.0/24,
tedy adresy určené pro sítě, které nebudou přímo připojeny k internetu.
Bylo by totiž naprosto zbytečné stanicím přidělovat reálné IP adresy.
Veškerá komunikace s okolím bude provozována přímo serverem.
Pro většinu uživatelů asi bude nejjednodušší instalace na server pomocí
systému RPM (k dispozici jsou i balíčky tar.gz a .deb). Tedy asi takto:
rpm -i lts_core lts_kernel lts_x_core lts_x_fonts
Pro verzi 3.x.x je základním adresářem /opt/ltsp . Přesuneme
se tedy tam a ještě trochu hlouběji do /opt/ltsp/templates a
spustíme skript ltsp_initialize . Tento skript upraví klíčové
soubory serveru. V témže adresáři se můžete podívat do jednotlivých
souborů, které popisují prováděné změny. Vypíšeme alespoň některé:
- XDM/GDM - pro stanice bude potřeba nějaký přihlašovací démon, takže
nemáte-li jej spuštěn, provede to instalační skript za vás. Kdo tyto
programy, či jim podobné nezná, nechť zví, že vyčkávají na svém místě a
pokud nějaká stanice ze sítě vyšle požadavek XDMCP, tak se probudí, odpoví
a následně na dané stanici zobrazí přihlašovací dialog.
- dhcpd - jednotlivým stanicím musíme přidělit IP adresy, atd. V
současné době je to asi nejpoužívanější protokol pro přidělování výchozích
prostředků. Tento protokol je například houfně používán k připojování WiFi
stanic.
- NFS - musíme také umožnit přístup k souborovému systému. Network
FileSystem je jedním ze starších, ale stále používaných způsobů
zpřístupnění souborů na serveru. Je až s podivem, že přes jeho bezpečnostní
problémy má stále takový úspěch.
- tcpwrappers - K potřebným protokolům musíme povolit přístup
z jednotlivých stanic. Na druhou stranu bude potřeba zakázat jejich
využívání počítači vně sítě.
- syslog - nastavíme také korektní logování, abychom měli vše pod
kontrolou. Všechny logové záznamy z jednotlivých stanic jsou přesměrovány
na server.
- tftpd - a na závěr umožníme stanicím stažení jádra protokolem Tiny
FTP. Tento protokol je velmi omezenou verzí klasického FTP a používá se
víceméně pouze k tomuto účelu.
Dalším krokem bude nastavení jednotlivých stanic. Existují tři soubory v
systému, které budeme modifikovat ručně. Jsou to:
/etc/dhcpd.conf
/etc/hosts
/opt/ltsp/i386/etc/lts.conf
/etc/dhcpd.conf
Pokud neznáte DHCP, tak vězte, že se jedná o Dynamic Host
Configuration Protocol a slouží k přenosu základních informací o
připojované stanici. Po nabootování stanice vyšle požadavek a server jí
přidělí IP adresu, jméno, adresu serveru, gateway, cestu k odpovídajícímu
jádru a cestu ke kořenovému systému pro stanici. Nastavení je celkem
jednoduché. Projdeme si ukázkový konfigurační soubor
/etc/dhcpd.conf.example nainstalovaný předchozím skriptem.
ddns-update-style```````````none;
default-lease-time``````````21600;
max-lease-time``````````````21600;
option subnet-mask``````````255.255.255.0;
option broadcast-address````192.168.0.255;
option routers``````````````192.168.0.254;
option domain-name-servers``192.168.0.254;
option domain-name``````````"yourdomain.com";
option root-path````````````"192.168.0.254:/opt/ltsp/i386";
option option-128 code 128 = string;
option option-129 code 129 = text;
shared-network WORKSTATIONS {
`subnet 192.168.0.0 netmask 255.255.255.0 {
`}
}
group {
`use-host-decl-names``on;
`option log-servers```192.168.0.254;
`host ws001 {
```hardware ethernet``00:E0:06:E8:00:84;
```fixed-address``````192.168.0.1;
```filename```````````"/lts/vmlinuz-2.4.19-ltsp-1";
`}
`host ws002 {
```hardware ethernet``00:D0:09:30:6A:1C;
```fixed-address``````192.168.0.2;
```filename```````````"/lts/vmlinuz-2.4.9-ltsp-6";
`}
}
Z důležitých nastavení si všimněme adres a masek sítí. Je zjevné,
že počítáme s tím, že IP adresa serveru je 192.168.0.254 a maska sítě
255.255.255.0. Místo, kde je umístěn souborový systém pro každou stanici,
je zadáno pomocí option root-path .
Pro každou stanici existuje záznam s IP adresou a jádrem. Příkladem
budiž záznam ws001 . To je budoucí jméno stanice s ethernetovou
adresou 00:E0:06:E8:00:84 .
Zápis dalších stanic je opravdu triviální.
/etc/hosts
Druhým souborem, do kterého musíme zapsat další údaje, je
/etc/hosts . Je to soubor, do kterého se systém podívá,
pokud potřebuje převést jméno počítače z IP adresy a obráceně. Pokud zde
není nalezena hledaná dvojice, tak vyšle požadavek DNS serveru. Tak je
alespoň většina počítačů nastavena. Toto chování lze změnit pomocí
souboru /etc/host.conf . Předpokládejme, že tedy obsahuje
jediný řádek order hosts, bind , který popisuje výše uvedený
způsob. Samotný soubor /etc/hosts pak bude obsahovat tyto
údaje:
192.168.0.1 ws001
192.168.0.2 ws002
192.168.0.254 server
/opt/ltsp/i386/etc/lts.conf
A vzhůru do hlavního konfiguračního souboru.
[Default]
SERVER`````````````= 192.168.0.254
XSERVER````````````= auto
X_MOUSE_PROTOCOL```= "PS/2"
X_MOUSE_DEVICE`````= "/dev/psaux"
X_MOUSE_RESOLUTION`= 400
X_MOUSE_BUTTONS````= 3
USE_XFS````````````= N
LOCAL_APPS`````````= N
RUNLEVEL```````````= 5
[ws001]
XSERVER````````````= auto
LOCAL_APPS`````````= N
USE_NFS_SWAP```````= N
SWAPFILE_SIZE``````= 48m
RUNLEVEL```````````= 5
[ws002]
XSERVER````````````= XF86_SVGA
LOCAL_APPS`````````= N
USE_NFS_SWAP```````= N
SWAPFILE_SIZE``````= 64m
RUNLEVEL```````````= 3
[ws003]
MODULE_01 = agpgart.o # This is for i810 video
MODULE_02 = uart401.o
MODULE_03 = sb.o`io=0x220 irq=5 dma=1
MODULE_04 = opl3.o
První sekcí je [Default] . Obsahuje výchozí nastavení.
Zastavíme se u položky XSERVER . Nastavení auto
říká, že se X server (4.x) pokusí detekovat videokartu a nahraje
odpovídající ovladač. Tato možnost je pro valnou většinu karet postačující.
Druhou možností je zapsání konkrétního serveru (3.3.6) bez nutnosti
detekce. Tuto možnost doporučuji použít pouze v případě problematické
detekce karty. Položka USE_XFS zakazuje použití font serveru,
podobně LOCAL_APPS pak spouštění lokálních aplikací.
Položka RUNLEVEL umožňuje tyto tři volby:
- 3 - Spuštění shellu na terminálu. Volba je vhodná pouze pro
hledání chyb.
- 4 - Tato úroveň běhu spustí několik telnetových klientů na virtuálních
konzolích. Jde tedy o čistě textový mód.
- 5 - Plný běh se spuštěným X serverem.
Kromě sekce [Default] může mít každá stanice vlastní
sekci. Nastavení v této sekci může přidat další volby, či předefinovat
výchozí hodnoty. Vidíme například položku USE_NFS_SWAP , která
umožňuje swapování přes síť při nedostatku paměti. S touto položkou je
svázán i údaj SWAPFILE_SIZE . Pro stanici lze definovat, které
jaderné moduly se musí nahrát včetně jejich pořadí, viz volby
MODULE_xx . V dokumentaci je popsáno asi 60 různých voleb.
Zájemce tedy odkazuji tam.
Tímto jsme, snad úspěšně, nastavili server a můžeme se pustit do
terminálových stanic.
Stanice
Máme několik možností, jak bootovat jednotlivé stanice. Budeme se
zabývat mojí oblíbenou variantou. Nejdříve zaváděcí program odzkoušíme na
disketě a pokud budeme chtít, tak jej následně přesuneme do paměti EEPROM
na síťové kartě.
Buď si budete tento program chtít zkompilovat sami a pak vás odkáži na
adresu www.etherboot.com, nebo jste
příliš pohodlní a použijete stránku www.rom-o-matic.net. Zde si vybereme
model síťové karty ve stanici. Můžeme nastavit spoustu voleb a hlavně
zvolíme výstupní formát Floppy bootable ROM image . Získaný
soubor směle přesuneme na disketu například takto:
dd if=/tmp/eb-rtl8139.lzdsk of=/dev/fd0
Nyní můžeme disketu vložit do stanice (nesmíme zapomenout v BIOSu
nastavit bootování z diskety) a spustíme ji (rozuměj stanici). Pokud jsme
udělali vše podle návodu, respektive dobře, tak systém naběhne až k uvítací
obrazovce X-windows. Nyní se uživatel může přihlásit a pracovat víceméně
bez omezení. Pokud se nám bootování z diskety osvědčí, pak můžeme přejít
k přehrání programu přímo do paměti EEPROM na síťové kartě.
Lokální tisk
Tiskárna může být připojena k serveru a pak jde pro všechny klienty o
lokální tisk. To je samozřejmě nejjednodušší varianta. Z různých důvodů
(vesměs lokačních) ale budeme chtít, aby byla některá z tiskáren připojena
k některé stanici. Není to problém, LTSP umožňuje připojit až tři tiskárny
ke stanici. Veškeré nastavení stanice se odehrává v souboru
lts.conf . Předvedeme si nastavení běžné tiskárny na paralelním
portu.
[ws001]
PRINTER_0_DEVICE = /dev/lp0
PRINTER_0_TYPE = P
Pro nastavení terminálu již nemusíme dělat nic. Na všech počítačích,
které budou tuto tiskárnu používat, ji samozřejmě nastavit musíme.
Použijeme tedy běžný konfigurační nástroj pro tiskárny (vi) a přidáme jednu
vzdálenou. K tomu budeme potřebovat IP adresu terminálu a port, na kterém
běží patřičný démon. IP adresu známe a port je 9100. Případné další
tiskárny použijí porty 9101 a 9102.
Lokální aplikace
Pokud se rozhodneme pro tuto možnost, budeme muset zprovoznit službu
NIS. Každá aplikace totiž musí vědět něco o uživatelích a skupinách.
Projekt LTSP volí právě cestu pomocí NIS (Network Information Service),
který je zatím asi nejpoužívanější možností zpřístupnění těchto dat.
V souboru lts.conf se nás budou týkat tyto volby:
LOCAL_APPS , NIS_DOMAIN a NIS_SERVER .
Názvy jsou celkem samovysvětlující, takže pokročíme dál. Musíme mít na
mysli, že klienti asi nebudou stejné architektury jako server. Budeme-li
mít klienty Pentia a server Pentium II, tak asi některé knihovny a programy
nebudou spustitelné na klientech. Budeme tedy muset vytvořit zvláštní
souborový strom pro stanice. Ten je umístěn v adresáři
/opt/ltsp/i386 . Na serveru LTSP je umístěn například balíček pro
lokální Netscape. Pokud balíček pro svůj program nenajdete, tak opravdu
musíte vše udělat sami.
Pokud se vám již vše podařilo, můžete zkusit pustit program z terminálu.
Pustíte-li ovšem běžný Netscape, tak se spustí na serveru a ne na
terminálu. K obejití tohoto chování budeme používat mechanismu rsh (remote
shell). To je další bezpečnostní díra a další důvod, proč byste měli
používat firewall. Ale zpět. Třeba v xtermu napište:
HOST= echo $DISPLAY | awk -F: '{ print $1 }'
rsh ${HOST} MOZILLA_HOME=/usr/local/netscape \
/usr/local/netscape/netscape -display ${DISPLAY}
Závěr
Doufám, že jste získali alespoň letmý přehled o tom, co projekt LTSP
je, co umožňuje a jak se ovládá. Také doufám, že je to lákavá varianta, pro
místa, kde druh operačního systému není životně důležitý a Linux by se tam
mohl alespoň drápkem uchytit. Takže doufám, že až zase někdy navštívím
knihovnu nebo internetovou kavárnu, tak slavnostně zasednu před stroj s
tučňákem.
Související lánky
Odkazy a zdroje
Diskuse k tomuto článku
Jen tak bokem, TFTP neni Tiny FTP nybrz Trivial FTP. Ale jinak se ten clanek bude v historicky kratke bucnosti hodit 
Zadrhel byva v lokalnich zarizenich a aplikacich, ty omezuji praci se stanici, nicmene zatim se podarilo rozbehnout lokane USB tiskarnu, SCSI scanner, mechaniky a disky (po zkouseni ruznych pristupu nakonec kombinaci autofs a NBD), PSIONa na ttySX (vsechna zarizeni mohou byt samozrejme pristupna odkudkoliv ze site), z aplikaci mimo jine Phoenix (pro nej bylo potreba stahnou LBE a zkompilovat glib a libgtk). NIS neni bezpodminecne nutny, lze se obejit i bez nej.
Mate-li nekdo zkompilovane VMWARE (v3.2) moduly pro 2.4.19-ltsp-1 (vmnet.o a vmmon.o), dejte vedet, prosim. Jinak lze VMWARE spoustet na serveru, jedine omezeni je, ze ho na stanici nepustite do fullscreen modu.
Snazim se o to, aby stanice nebyla nijak omezena oproti beznemu stavu, myslim ze se to postupne dari, ale chce to trpelivost a cas. Kdyz se to ale podari, je to proste parada.
Pokud nekdo vi, jak zaridit aby se cela X session pri vypnuti stanice neukoncila, bel bych vdecny za radu. Zatim jsem vsude cetl, ze to nelze (coz je pomerne logicky zduvodnitelne). Jedine reseni by byla nejaka kombinace s VNC a to mi uz pripada hodne obskurni.
S tou X-session to IMHO nejde. Proste to na to neni urcene. Spis me zajima jak jste rozjel zvuk. Nam to funguje jenom s esd. Arts jsem nikdy nedonutil.
Resil jsem stejny problem s VMware (potreboval jsem behat Money od Cigleru) a nakonec jsem dospel k tomuto reseni:
- Windows 2000 Pro (Win 98 zatezuji CPU, i kdyz nic nedelaji, parchanti ))
- Fullscreen resim tak, ze VMware furt bezi na serveru pod rootem a uzivatele se konekti pres VNC - idealni reseni (s tim VMware byl i problem s blbym ukazatelem mysi (cerny ctverec) na starsich videokartach u klientu)
Stavajici problemy:
- pri bootovani W2k jde vykon systemu na 1 minutu do haje (AMD 2100+, 0.5 GB DDR333, normalni disk) - zatim to nevadi, protoze ty VMwary bezi furt
- jak snadno prepinat mezi full screen VNC a Xkama (kdyz v nich nebezi zadna aplikace)? (asi jen blbost - jen nebyl cas to doresit)
Obsah clanku je mimo muj obzor, ale zarazila me tam zminka o swapovani pres sit. To musi bejt hrozne pomaly nebo ne ?
staci, ze je to 10MBit a uz je to rychlejsie nez 50MB disk 
Rycho to _fakt_ neni, pokud zaraz swapuje vic stanic. Nicmene k tomu opravdu nedochazi casto.
do konfigurace dhcp serveru doporucuju dat option:
deny unknown-clients;
ktery zajisti to, ze kdyz nahodou na lokalni siti bude nekdo mit omylem rozjety dhcp server tak to nezabere tu adresu, tak jak je to tam ted napsane tak to nepomuze, mam to vyzkousene, typicky projev je ze pustite stanici a nechce se konektrout, da se to oznat podle hlasek v logu a dhcp ma navic takovy soubor kam si uklada aktivni klienty
dalsi veci muze byt obtizne nastaveni NIS+NFS, doporucuju howto a hlavne pozor na PAM system ktery tohle zatim nema poradne zvladnute
o LTSP běžel loni na serveru antiindoš, ale ten server je už asi mrtvý. Má někdo představu, jaký by byl potřeba server pro 60 současně běžících stanic? Když by všichni současně psali v OpenOffice.org?
Obzri sa min. nejakom najnovsom athlone, 2GB RAM
...
Mohlo by to stacit.
Mne bezi 10 klientov na Athlove XP 2000+, 1GB RAM, raid, 10MBit a je to celkom v pohode, load sa pohybuje do 0.5, pokial tam samozrejme nezostane visiet nejaky zblbnuty proces.
Doporucoval bych nejaky SMP stroj, staci se dvema procesory. Mem asi 10 klientu na 2x2.4 Intel Xeon s 512MB RAM, RAID a load je naprosto minimalni a RAM staci.
Pro OpenOffice staci sit 10MBit. Jine aplikace mohou byt narocnejsi (Java 1.3 a nizsi, Java 1.4 je uz v pohode)
Jeste malou poznamku. Majitel firmy je spokojenej, protoze nemusel menit vsechny pocitace ve firme a usetril hromadu penez za software! 
Mrtví ještě nejsme, i když nestíhám živit Anti-Indoše takovým tempem jako dříve :(
K vaší otázce - hrubý odhad pro velikost serveru na počet stanic je na webu k12LTSP.org Pro pracoviště s 2-10 stanicemi se uvádělo tuším P III 1 GHz + 512 MB RAM paměti + dalších 50 MB na každou další stanici spouštějící kombinaci OO + Mozilla. Čili na standardní počítačovou učebnu (ne na její indošistickou karikaturu) uvádějí kolem 2 GB RAM. V Riverdale mají na 35 stanic 6 LTSP serverů (4x dual CPU Xeon 1,8 GHz + 4 GB RAM, 2x Xeon 500 MHz + 2 GB RAM). Jako minimální nároky to pokládám za trošku přehnané, nicméně chcete-li dobrý výkon, na CPU a zejména na RAM nešetřete.
Máte však možnost celý systém vytvořit jako distribuované prostředí (cluster) a tak serveru ulevit, pokud to zvládnou stanice. Na webu LTSP je několik návodů, využívajících vesměs clusterový systém Mosix či OpenMosix.
Omlouvám se za poznámku o smrti antiindoše, hledal jsem na staré adrese.
Co se týče LSTP pro 60 stanic. Moc by se mi to líbilo, ale jako za tři měsíce končící civilka nemám dostatek pravomocí to prosadit Nehledě na to, že se loni nakoupily počítače za třičtvrtě miliónu.
Je pravda, že 2xCPU dělo se 4 GB RAM, RAIDem, SCSI apod. vypadá jako strašák finančních oddělení, nicméně zkuste tu částku rozpustit do cen harddisků, licencí na WinXP/2k a adekvátní HW konfigurace pro stanice a zjistíte, že celá linuxová paráda vyjde mnohem levněji a to nemluvím o redukcích nákladů na údržbu.
Případovka z Riverdale tam ostatně má poměrně podrobnou kalkulaci, jinak jsou na k12ltsp.org i jiné případové studie (ceny jsou v $)
Terminálový systém vyžaduje, pravda, také poněkud propustnější síť, nejlépe přepínaná 1000/100/10 (server na gigabitu, stanice dle rozrani na 100 nebo 10),což však bude během několika let běžným standardem pro počítačové sítě. Mě to fungovalo i na 100/10 a to na té 100 byl ještě alias. Nicméně poněkud pomaleji.
Na stávající síti (neznám vaše podmínky) by možná byl řešením zmíněný distribuovaný systém (zase chce síť s lepší odezvou), který by běžel paralelně s vaší stávající sítí, řekněme zatím spíše jako demonstrace schopností systému pro vaše vedení. Vedení zvl. státních institucí je vždy konzervativní, pořizuje to, "co je všude" a zviklat je může maximálně událost typu návštěvy BSA apod.
P.S. Nová adresa Anti-Indoše je ai.edunix.cz, trošku jsme ho adaptovali pro potřeby projektu Linux do škol.
lidi namají zájem sedět v kavárně před linuxem, vyzkoušeno 6 pc - 4 wokna +2 rh 7,3 linux jenom v nouzi.
|