R-22-07.pdf

(483 KB) Pobierz
PLP_Rozdzia³_22
Rozdział 22. Systemy
bezdyskowe
Od wielu lat pracujesz, bawisz się i ogólnie zajmujesz się komputerami. Obecnie używasz dwóch
lub trzech komputerów typu PC, na których działa Windows 2000, Windows 98, Windows ME i
kilka dystrybucji Linuksa. Połączyłeś je nawet w sieć w swoim domu. Twój garaż szybko zapełnia
się pozostałościami po ostatnich modyfikacjach sprzętu. Czy to brzmi znajomo?
Być może używasz komputerów PC w biurze i masz tam mieszankę nowych i niezbyt nowych
maszyn, wśród których można znaleźć także zniszczone komputery, których nikt nie chce
wyrzucić. Być może mają one jeszcze jakąś wartość zapisaną na papierze w dziale księgowości,
albo ich naprawa nie jest uzasadniona ekonomicznie z powodu uszkodzonych dysków.
Jeżeli masz sieciowy dostęp do komputera, na którym działa Linux, to możesz ożywić niektóre z
tych starszych maszyn. W rzeczywistości można tego dokonać, dysponując prawie dowolnym
serwerem udostępniającym protokoły BOOTP i TFTP , ale tutaj zajmiemy się tylko Linuksem.
W tym rozdziale mamy zamiar skrótowo pokazać bezdyskowe systemy linuksowe. Pomysł jest
bardzo prosty: weź pierwszy lepszy komputer typu PC wyposażony w pamięć, tanią kartę grafiki
oraz kartę sieciową (i nic więcej!) i zmień go w stację roboczą, maszynę obliczeniową, albo w
system do buszowania po Internecie ustawiony na korytarzu.
Być może trudno będzie uzasadnić nakład pracy i czasu, ale jest to rozdział-przerywnik i należy
się nam trochę rozrywki!
Trochę historii
W latach 80-tych pamięć i twarde dyski były bardzo drogie, dlatego wynaleziono kilka sposobów
na zbudowanie biurkowych stacji roboczych. Coraz więcej aplikacji uzyskiwało interfejs graficzny
i wymagało zastosowania kolorowych monitorów, zamiast starszych terminali znakowych.
Na uniwersytetach i w większych firmach użytkowane wspólnie komputery, obsługujące całe
działy mogły obsługiwać system X Window i tu narodził się pomysł X-terminala. X-terminal nie
ma własnych lokalnych urządzeń do przechowywania danych i ma bardzo mało pamięci. Jego
wyłącznym zadaniem jest obsługa aplikacji działających na serwerze. Zazwyczaj działa na nich
bardzo prosty własny system operacyjny, który wystarcza do obsługi serwera X .
1
Gdy osobiste stacje robocze uzyskały popularność i nastąpił wzrost ich wydajności obliczeniowej,
następnym logicznym krokiem było uruchamianie aplikacji na samych stacjach roboczych.
Niestety, urządzenia do przechowywania danych nadal były drogie. Jednym ze sposobów obejścia
tego problemu stało się korzystanie z serwera do przechowywania wymaganych przez stację
roboczą danych, które mogły zawierać system operacyjny tej stacji.
X-terminale i bezdyskowe stacje robocze znalazły uznanie w wielu firmach. Był to bardzo
wygodny sposób uzyskania wydajnego komputera na biurku. Główny serwer kontrolował całe
oprogramowanie, a więc stosunkowo łatwo można było nim zarządzać (szczególnie wtedy, gdy
porówna się to ze współczesnymi komputerami osobistymi) — wszelkie modyfikacje dokonywane
były tylko w jednym miejscu, czyli na serwerze. Jeżeli uszkodziła się stacja robocza lub X-
terminal, to można było je natychmiast wymienić na inne — wymagało to tylko zmiany jednego
wiersza (lub wcale!) na serwerze i użytkownik mógł kontynuować pracę.
Do sukcesu takiego sposobu pracy przyczyniła się w znacznym stopniu sieć, ale stanowiło to
prawdopodobnie także jedną z przyczyn upadku idei stacji roboczych. W miarę wzrostu ich
wydajności okazywało się, że wydajność sieci jest za mała. Żądania odczytu dużych aplikacji i
plików danych z serwera stały się zbyt trudnym zadaniem. Niektóre stacje robocze zaczęto
wyposażać w twarde dyski i instalować lokalnie aplikacje, a więc stacja robocza przekształciła się
w komputer osobisty. Systemy bezdyskowe odeszły w zapomnienie, a wiele zalet zarządzania
takimi scentralizowanymi systemami po prostu zniknęło.
W latach 90-tych idea systemów bezdyskowych nieco odżyła, ponieważ sieci stały się towarem
konsumpcyjnym. Można je łatwo zbudować i uzyskać większą przepustowość. Jako przykłady
użycia systemów bezdyskowych (lub prawie bezdyskowych) należy wymienić:
komputer sieciowy,
przystawki obsługujące kino domowe,
kioski internetowe.
W naszej aplikacji obsługującej wypożyczalnię płyt DVD można zastosować system bezdyskowy
umożliwiający dostęp wielu użytkowników lub działający w publicznym kiosku.
Wszystkie urządzenia tego rodzaju działają na zasadzie pobrania systemu operacyjnego (lub tylko
podstawowych procedur tego systemu) poprzez sieć, a więc nie wymagają stosowania lokalnych
urządzeń do przechowywania danych. Ich oprogramowanie jest aktualizowane natychmiast po
zmianie plików w sieci, a więc nie zwiększają one nakładów pracy potrzebnych na utrzymanie.
Jest to więc rozwiązanie idealne dla masowego klienta.
Jeden z autorów książki wniósł do koncepcji systemu bezdyskowego pewną nowość, zauważywszy,
że maszyna bezdyskowa pracuje o wiele ciszej niż zwykły komputer osobisty, ponieważ nie ma
twardego dysku. Prawie pusta obudowa pozwala także na utrzymanie niższej temperatury.
Postanowił się więc zbudować działający bezgłośnie PC. Usunąwszy wentylator z zasilacza i
zastąpiwszy wiatraczek na procesorze dużym radiatorem, uzyskał bezgłośną maszynę. Jak
stwierdziliśmy, jest to idealne rozwiązanie dla surfowania po Internecie.
Uważajcie jednak na zabawy z zasilaczem, jeżeli nie macie pewnej dozy doświadczenia w tego
typu pracach. Wentylator nie jest tam wstawiony całkowicie bez powodu.
Linux obsługiwał bezdyskowe maszyny prawie od początku swojego powstania. Kluczowe
właściwości jądra umożliwiają załadowanie systemu z sieci i pobieranie wszystkich potrzebnych
2
plików z serwera. Wykorzystując system Linux, można więc zbudować X-terminal lub
bezdyskową stację roboczą.
W tym rozdziale mamy zamiar pokazać krok po kroku, w jaki sposób można to zrobić, mając na
uwadze następujące zagadnienia:
Czym jest system bezdyskowy?
Dlaczego chcemy go zbudować?
Jak ma działać system bezdyskowy?
Jakiego rodzaju aplikacje mają być na nim uruchamiane?
Co takiego!? Nie ma dysku?
Prawdziwie bezdyskowy system nie ma żadnego lokalnego urządzenia do przechowywania
danych, czyli nie można w nim znaleźć:
twardego dysku,
napędu CD-ROM,
stacji dyskietek,
monitora (prawdopodobnie).
Każdy plik potrzebny do działania takiego systemu jest pobierany z serwera poprzez sieć.
Zazwyczaj spotyka się sieć typu Ethernet o przepływności albo 10 Mbit/s, albo 100 Mbit/s. Można
też spotkać łącza ATM i xDSL (najczęściej w przystawkach obsługujących systemy „wideo na
żądanie”). Jeżeli w takiej sieci można przekazywać pliki, to oznacza, że można także korzystać z
systemów bezdyskowych. Skoncentrujemy się tutaj na zastosowaniu sieci typu Ethernet z
protokołem TCP/IP , ale większość omawianych zagadnień można odnieść także do sieci innego
rodzaju.
Dlaczego ma być bez dysku?
Systemy bezdyskowe mają wiele zalet:
Koszt systemu może być bardzo mały, ponieważ nie ma on twardego dysku ani napędu
CD-ROM.
Można zbudować bezdyskowy komputer osobisty, wydając nań znacznie mniej ciężko
zarobionych pieniędzy, niż wydałoby się na zwyczajny PC. Jeśli system bezdyskowy ma pracować
jako X-terminal, to nie trzeba w nim nawet stosować nowinek w postaci najwydajniejszych
procesorów. Można zbudować doskonały system bezdyskowy na maszynie z procesorem 486,
czyli na takiej, która dzisiaj uważana jest za przestarzałą (szczególnie dla Microsoft Windows).
Pentium-100, 32 MB RAM jest wyzwaniem dla Windows NT4 (nie mylić z Windows 2000!),
natomiast Linux na takim systemie bezdyskowym radzi sobie całkiem nieźle.
3
System pozbawiony lokalnych urządzeń do przechowywania danych może być bardzo
bezpieczny.
Są to idealne maszyny dla studentów eksperymentujących z Linuksem. Brak tu lokalnego systemu
plików, który mógłby być zniszczony podczas eksperymentów, zaś pliki na serwerze można łatwo
kontrolować lub wymieniać.
Administrowanie grupą maszyn bezdyskowych jest prostsze, ponieważ wszystko dzieje
się na serwerze.
Jak już wspomniano wcześniej, nowe maszyny bezdyskowe można dodawać bardzo prosto.
Jednocześnie może być utworzona kopia konfiguracji każdej z nich, a więc odtwarzanie systemu
po awarii nie sprawia kłopotów. Taki rodzaj centralnego zarządzania jest szczególnie przydatny w
systemach rozproszonych na terenie większej organizacji, np. uczelni lub kilku biur jednej firmy.
Oczywiście, są też wady systemów bezdyskowych:
Systemy bezdyskowe wymagają użycia serwera dostarczającego pliki i inne zasoby.
Niezależnie od tego, że stosunkowo nowoczesny i dobrze wyposażony komputer osobisty może
działać jako serwer obsługujący całkiem sporą liczbę stacji bezdyskowych, to czynnikiem
ograniczającym takie zastosowanie jest sama sieć. Ponieważ wszystkie pliki są przekazywane
przez sieć na żądanie, jej obciążenie może bardzo wzrosnąć i stać się poważnym ograniczeniem.
Szybkość transmisji w sieci lokalnej, wynosząca 10 Mbit/s nie może się równać z
szybkością zapisu danych na dysk.
Możemy tylko stwierdzić, że jeśli aplikacje działające w systemie bezdyskowym są właściwie
dobrane, to całość może działać poprawnie (użyteczne aplikacje omówimy później). Podział sieci
na segmenty i zastosowanie przełączników także może zmniejszyć wpływ innych użytkowników
sieci na działanie systemów bezdyskowych.
W systemach wykorzystujących tylko serwer istnieje możliwość groźnej awarii
spowodowanej uszkodzeniem jednego węzła.
Jest to kluczowe zagadnienie, które odegrało zasadniczą rolę w rozwoju osobistych komputerów
biurkowych i rozproszonego przetwarzania danych. Nie trzeba jednak zanadto się martwić,
bowiem nie jest to sytuacja gorsza niż zależność od centralnego serwera plików lub poczty. Tutaj
kluczową sprawą także jest odpowiednie zarządzanie serwerem.
Jak to działa?
System bezdyskowy, chcąc po rozruchu i uruchomieniu użyć swoich plików, korzysta po prostu z
sieciowego systemu plików. Będziemy tu używali NFS (skrót od Network File System ). W
rzeczywistości serwer udostępnia kilka systemów plików. Każda maszyna bezdyskowa ma pełny
dostęp do przydzielonego jej obszaru na serwerze plików. Jest to tzw. nadrzędny system plików
oznaczany symbolem „ / ”. Oprócz tego maszyny bezdyskowe korzystają ze wspólnej partycji
/usr . Aby zapobiec konfliktom przy zapisie w systemie plików /usr , montujemy tę partycję z
atrybutem „tylko do odczytu”.
4
W rzeczywistości jest całkowicie możliwe uruchamianie wielu maszyn bezdyskowych z jednego
nadrzędnego systemu plików, mającego status „tylko do odczytu”. Dzięki temu uzyskujemy
dodatkowe zabezpieczenie, ponieważ dosyć trudno włamać się do takiego systemu.
Często nie zwraca się na to uwagi, ale w standardowym wydaniu Uniksa pliki w katalogu /usr
mają zazwyczaj atrybut „tylko do odczytu” — dzięki temu mogą być współużytkowane w postaci
pojedynczych kopii. Pliki, które były przechowywane w katalogu /usr i musiały mieć zezwolenie
zapisu (np. logi przechowywane w /usr/adm ), zostały przeniesione do katalogu /var , który jest
udostępniony do zapisu. Szczegółowe informacje na temat hierarchii plików w systemie Linux i
atrybutów plików w katalogu /usr można znaleźć po adresem http://www.pathname.com/fhs/ .
Na powyższym schemacie mamy dwie bezdyskowe stacje robocze (o nazwach dl-1 i dl-2 ),
które korzystają z oddzielnych obszarów na dysku serwera, przeznaczonych na partycje główne.
Stacje robocze wspólnie wykorzystują /usr . W wyniku takiej konfiguracji działają one tak, jakby
było wykonane następujące polecenia montowania systemu NFS :
Dla stacji dl-1 :
mount -t nfs server:/root-1 /
mount -t nfs -o ro server:/dl-usr /usr
Dla stacji dl-2 :
mount -t nfs server:/root-2 /
mount -t nfs -o ro server:/dl-usr /usr
W rzeczywistości w wielu dystrybucjach Linuksa zarzucono wykorzystanie subtelności zezwoleń
na zapis w katalogu /usr i na trwałe pozostawiono w nim pliki zapisywalne. Ten problem
omówimy w dalszej części rozdziału.
5
209516299.001.png 209516299.002.png
Zgłoś jeśli naruszono regulamin