Gentoo - Przewodnik po LTSP
1.
Wprowadzenie
Co to jest LTSP
LTSP jest skrótem od "Linux Terminal Server Project". Zainstalowany na
serwerze może wyposażyć wiele stacji roboczych (tzw. "chudych klientów")
w identyczne środowiska pracy. Wszystkie aplikacje są uruchamiane na serwerze,
dlatego też w roli stacji roboczych można używać starych komputerów. Obniża to
koszty i czas poświęcony jego ewentualnej konserwacji, w szczególności, gdy
musimy mieć jednolitą przestrzeń pracy na każdym komputerze, na którym się
logujemy np. w szkołach bądź firmach.
2.
Instalacja
Czynności wstępne
Wszystkie przykłady w tym dokumencie zakładają, że IP twojego serwera to
192.168.0.254, nazwa twojej domeny to twojadomena.pl, a twoja sieć to
192.168.0.0/24.
Instalacja
Po pierwsze, musisz mieć oczywiście działający system Gentoo. Przeczytaj
dokładnie Opis Instalacji Gentoo dla twojej architektury pod adresem Strona Dokumentacji Gentoo.
Zacznijmy więc od najprostszego kroku, czyli instalacji pakietu ltsp:
Listing 2.1: Emerge LTSP |
# emerge ltsp
|
To polecenie zainstaluje ltsp oraz następujące pakiety przez niego wymagane:
-
XFree: Nazywane są XTerminalami, zgadnij dlaczego ;)
-
DHCP: DHCP jest protokołem służącym do automatycznej konfiguracji
komputerów używających TCP/IP. Używany przez ltsp do dostarczenia adresów IP
do stacji roboczych.
-
NFS: NFS jest protokołem pozwalającym na dostęp do twardych dysków
poprzez sieć. Używany przez ltsp do zamontowania podstawowego systemu dla
stacji roboczych.
-
TFTP: TFTP jest prostym programem protokołu FTP. Używany przez ltsp
do transferu jądra do stacji roboczych.
-
XINETD: Xinetd jest potężnym programem zastępującym inetd, posiada
wiele zaawansowanych funkcji. Używany przez ltsp do uruchomienia TFTP.
Uwaga:
Jeśli masz ustawioną flagę USE dla kde/gnome, emerge zainstaluje także w pełni
kompletne środowisko kde bądź gnome.
|
3.
Konfiguracja
Kiedy proces instalacji dobiegnie końca, wszystkie te usługi muszą zostać
skonfigurowane:
System Logger
Aby łatwiej analizować problemy, logger systemowy musi być skonfigurowany na
akceptowanie zdalnych połączeń. Przeczytaj dokumentację twojego loggera
systemowego w celu uzyskania odpowiednich informacji. Jeżeli, np. używasz
sysklogd, jedyne co musisz zrobić, to otworzyć plik
/etc/conf.d/sysklogd i dodać "-r" do linii SYSLOGD:
Listing 3.1: /etc/conf.d/sysklogd |
SYSLOGD="-m 0 -r"
KLOGD="-c 3 -2"
|
NFS
Następnym krokiem jest wyedytowanie pliku /etc/exports w celu
pozwolenia stacji roboczej na montowanie głównego systemu plików. Powinny tam
znajdować się co najmniej dwie linie:
Listing 3.2: /etc/exports |
/opt/ltsp-4.1/i386 192.168.0.0/255.255.255.0(ro,no_root_squash,async)
/var/opt/ltsp/swapfiles 192.168.0.0/255.255.255.0(rw,no_root_squash,async)
|
Uwaga:
Pamiętaj, że musisz zamienić maskę i sieć na odpowiadające twojej konfiguracji.
|
A teraz uruchom NFS.
Listing 3.3: Uruchamianie NFS |
# rc-update add nfs default
# /etc/init.d/nfs start
|
xinetd/tftp
TFTP wymaga odrobiny konfiguracji aby działało poprawnie. Po pierwsze, otwórz
plik /etc/conf.d/in.tftpd i ustaw odpowiednie opcję oraz ścieżki:
Listing 3.4: /etc/conf.d/in.tftpd |
INTFTPD_PATH="/tftpboot"
INTFTPD_OPTS="-s ${INTFTPD_PATH}"
|
Flaga "-s" nakazuje TFTP aby uruchamiał się w bezpiecznym, chroot'owanym
środowisku. To znaczy, że nie będziesz musiał załączać /tftpboot
np. w konfiguracji DHCP
Następnie, skonfiguruj xinetd tak aby uruchamiał TFTP i zezwalał na zdalne
połączenia. Domyślnie TFTP nie będzie uruchamiany przez xinetd, więc otwórz
/etc/xinetd.d/tftp i zmień disable=yes na disable=no.
Jeśli plik nie istnieje, nie przejmuj się, po prostu stwórz go i wypełnij
poniższą zawartością.
Listing 3.5: /etc/xinetd.d/tftp |
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
}
|
A teraz otwórz /etc/xinetd.conf i postaw znak komentarza przed
linią only_from = localhost , poprzedzając ją # i uruchom xinetd.
Listing 3.6: Uruchamianie Xinetd |
# rc-update add xinetd default
# /etc/init.d/xinetd start
|
DNS
Aby stacja robocza mogła osiągnąć wszystkie źródła, musi mieć ustawioną
odpowiednią nazwe rozwiązywania (ang. name resolving). Jest kilka sposobów,
żeby to zrobić. Jeden z nich to skonfigurowanie serwera DNS dla sieci lokalnej.
Inny sposób, zdecydowanie prostszy, to posiadanie identycznych plików
/etc/hosts na każdym systemie. Użyjemy tego drugiego:
Wszystkie stacje robocze muszą być wypisane w /etc/hosts.
Spójrz na przykład:
Listing 3.7: /etc/hosts |
127.0.0.1 localhost
192.168.0.254 server server.twojadomena.pl
192.168.0.1 ws001 ws001.twojadomena.pl
|
Konfiguracja DHCP
Uważam, że jest to najtrudniejszy krok. Musisz stworzyć działający konfig DHCP
(/etc/dhcp/dhcpd.conf). Oto przykład:
Listing 3.8: dhcpd.conf |
default-lease-time 21600;
max-lease-time 21600;
use-host-decl-names on;
ddns-update-style ad-hoc;
allow booting;
allow bootp;
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 log-servers 192.168.0.254;
option domain-name "yourdomain.com";
option root-path "192.168.0.254:/opt/ltsp-4.1/i386";
filename "/lts/vmlinuz-2.4.26-ltsp-2";
next-server 192.168.0.254;
#option option-128 code 128 = string;
#option option-129 code 129 = text;
#option option-128 e4:45:74:68:00:00;
#option option-129 "NIC=ne IO=0x300";
shared-network WORKSTATIONS {
subnet 192.168.0.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.0.1 192.168.0.16;
#host ws001 {
# hardware ethernet 00:E0:06:E8:00:84;
# fixed-address 192.168.0.1;
#}
}
}
|
Jeśli twoja stacja robocza posiada wsparcie dla PXE, powinieneś wypisać każdą
z nich tak samo jak zrobiliśmy z host ws001 (nie zapomnij usunąć znaku
komentarza). Nie dawaj im adresu z dynamicznej puli, może to doprowadzić do
tego, że dwie stacje będą miały to samo IP co będzie stwarzać problemy.
Pamiętaj, jeśli skopiujesz i wkleisz poniższy przykład, zmień każde "//" na
"##", w przeciwnym razie dhcp nie uruchomi się.
Więcej informacji znajdziesz w podręczniku DHCP:
http://www.dhcp-handbook.com/
A teraz uruchom DHCP tak samo jak uruchomiłeś xinetd oraz nfs
Listing 3.9: Uruchamianie DHCP |
# rc-update add dhcp default
# /etc/init.d/dhcp start
|
Uwaga:
Do poprawnego działania DHCPD potrzebuje aktywowania opcji CONFIG_PACKET i
CONFIG_FILTER w jądrze systemu.
|
Konfiguracja LTSP
Istnieje wiele opcji aby skonfigurować odpowiednio twoją stację roboczą,
odwiedź stronę
http://ltsp.mirrors.tds.net/pub/ltsp/docs/ltsp-4.1-en.html#AEN1190,
aby uzyskać więcej informacji na temat pliku
/opt/ltsp/i386/etc/lts.conf.
Jeśli można, zasugerujemy kilka rzeczy. Na początek skopiuj plik
/opt/ltsp/i386/etc/lts.conf.example do
/opt/ltsp/i386/etc/lts.conf i wyedytuj go stamtąd. Powinieneś
też zmienić opcje SCREEN_01 na SCREEN_01 = startx. Aby używać
myszki USB na zdalnym kliencie, dodaj poniższe linie z modułami i zmień
X_MOUSE_* w ten sposób:
Listing 3.10: /opt/ltsp/i386/etc/lts.conf |
MODULE_01 = usb-uhci
MODULE_02 = mousedev
MODULE_03 = usbmouse
X_MOUSE_PROTOCOL = "IMPS/2"
X_MOUSE_DEVICE = "/dev/input/mice"
|
Menedżer wyświetlania
Teraz musisz odpowiednio ustawić swoją konfiguracje menedżera wyświetlania
aby akceptował zdalne połączenia.
Na początek, otwórz plik /etc/X11/xdm/Xaccess i usuń znak
komentarza sprzed następującej linii:
Listing 3.11: /etc/X11/xdm/Xaccess |
#* #any host can get a login window(każdy host może uzyskać okno logowania)
|
A teraz zmień konfigurację menedżera wyświetlania.
XDM: W /etc/X11/xdm/xdm-config usuń znak komentarza
sprzed DisplayManager.requestPort: 0
KDM: W /usr/kde/3.1/share/config/kdm/kdmrc poszukaj
sekcji [Xdmcp] i zmień Enable = false na Enable = true.
GDM: W /etc/X11/gdm/gdm.conf poszukaj sekcji
[xdmcp] i zmień Enable = false na
Enable = True.
Następnie uruchom menedżer wyświetlania
Listing 3.12: Uruchamianie xdm |
# rc-update add xdm default
# /etc/init.d/xdm start
|
Ostrzeżenie:
Z menedżerami XDM i GDM mogą pojawiać się pewne problemy. Autor użył KDM aby
ominąć ten problem.
|
Pamiętaj, jeśli twój menedżer wyświetlania jest aktualnie uruchomiony,
restartowanie serwera X poprzez CTRL-ALT-BACKSPACE nie restartuje menedżera
wyświetlania.
Tworzenie dyskietki startowej (bootowalnej)
Jeśli twoje stacje robocze nie posiadają wsparcia dla bootowania PXE, możesz
utworzyć bootowalną dyskietkę, która będzie używana do uruchomienia stacji
roboczych oraz połączenia ich z terminalem serwera. Przejdź do
http://www.rom-o-matic.net, wybierz najnowszą wersję, wybierz model
swojej karty sieciowej, wciśnij Get ROM i zapisz obraz na dyskietkę:
Listing 3.13: Zapisywanie obrazu dyskietki |
# cat nicfile.zdsk > /dev/fd0
|
4.
Problemy
Istnieje wiele rzeczy, które moga sprawiać problemy, ale istnieje też wiele
źródeł, które mogą ci pomóc w ich rozwiązywaniu:
5.
FAQ
Q: Moje stacje robocze mają procesor Pentium II, ale mój serwer jest
skompilowany z flagą march=athlon-xp czy to będzie działać?
A: To nie jest problem ponieważ wszystkie aplikacje uruchamiane są na
serwerze.
Q: Jaki procesor i ile RAM'u powinieneś posiadać serwer?
A: Wiele sugestii na ten temat można znaleźć na stronie
http://wiki.ltsp.org/twiki/bin/view/Ltsp/ServerSizing.
Q: Czy macie więcej informacji na temat PXE?
A: Tak, spójrz na
http://wiki.ltsp.org/twiki/bin/view/Ltsp/PXE.
Q: Czy jest możliwe używanie akceleratorów 3D na stacjach roboczych?
A: Jeśli używasz kart Nvidii zajrzyj na
http://wiki.ltsp.org/twiki/bin/view/Ltsp/NvidiaLtsp411.
Q: W niektórych aplikacjach czcionki wyglądają brzydko czy można coś z
tym zrobić?
A: Musisz skonfigurować XFontServer, dodaj USE_XFS=Y do twojego
lts.conf, otwórz plik /etc/X11/fs/config i usuń znak
komentarza sprzed no-listen: tcp, zamień XFS_PORT="-1" na
XFS_PORT="7100" w pliku /etc/conf.d/xfs i uruchom xfs:
/etc/init.d/xfs start. Sprawdź czy plik
/etc/X11/XF86Config (albo /etc/X11/xorg.conf) zawiera
FontPath "unix/:7100" w sekcji Files.
Q: Jak mogę używać karty dźwiękowej na mojej stacji roboczej?
A: W Gentoo istnieje pakiet ltsp-sound, więcej informacji znajdziesz w
pliku README
6.
Komentarz
LTSP
"LTSP to prosty sposób na niskie koszty eksploatacji stacji roboczych, zarówno
w środowisku graficznym oraz na tekstowych terminalach serwera pracującego w
środowisku GNU/Linux."
PXE
"Krótko na temat systemu "Pre-Boot Execution Environment". Wymawiany "piksi",
PXE jest jednym z komponentów Intelowskiego WfM. Pozwala stacji roboczej na
zabootowanie z serwera znajdującego się w sieci, zamiast bootowanie z lokalnego
dysku. Połączenie utrzymuje się nawet wtedy kiedy komputer jest wyłączony."
Materiał udostępniany na podstawie licencji Creative Commons -
Attribution / Share Alike.
|