36, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta


Rozdział 36.
Obsługa urządzeń SCSI


Tim Parker

W tym rozdziale:

SCSI (ang. Small Computer System Interface; skrót ten wymawia się skazi) jest standardową metodą komunikacji pomiędzy komputerem a urządzeniami peryferyjnymi. Posiada wiele zalet, które powodują, że jest lepszy od innych interfejsów (takich jak IDE), niestety, zwykle jest również nieco droższy.

SCSI używa dedykowanej karty kontrolera (zintegrowanej z niektórymi lepszymi płytami głównymi), do której podłączany jest łańcuch urządzeń. Mogą to być urządzenia wewnętrzne - wtedy kabel ma formę płaskiej taśmy, lub zewnętrzne - kabel do ich podłączenia jest okrągły, ekranowany. Każde urządzenie musi posiadać inny identyfikator (od 0 do 7, ale nowsze sterowniki dopuszczają do 16 urządzeń). Zwykle karcie kontrolera przypisany jest numer 7, natomiast dyskowi twardemu, z którego uruchamiany jest system - 0.

Główną zaletą interfejsu SCSI jest jego duża prędkość. Ponadto w urządzeniach SCSI zamontowana jest elektronika służąca do obsługi interfejsu, co powoduje, że jest im łatwiej się ze sobą porozumieć. Następną zaletą jest fakt, że system sam się konfiguruje. Po podłączeniu do magistrali SCSI np. skanera (mającego oczywiście ustawiony unikalny identyfikator) urządzenie samo przesyła do sterownika dane o sobie, dzięki czemu cały proces konfiguracji może odbyć się automatycznie.

Na końcu łańcucha SCSI musi być zamontowany terminator. Jest to w najprostszym przypadku zestaw oporników, zapewniający właściwe warunki rozchodzenia się fali elektromagnetycznej. Niektóre urządzenia SCSI posiadają terminator wewnętrzny, który powinien być aktywny tylko wtedy, gdy urządzenie podłączone jest na końcu łańcucha. Niektóre urządzenia potrafią również samodzielnie wykryć taką sytuację i załączyć terminator. Aby uniknąć niespodzianek, powinieneś przejrzeć dołączoną do urządzeń dokumentację.

Urządzenia SCSI mogą komunikować się poprzez magistralę SCSI bez angażowania płyty głównej czy procesora, np. skaner może wysyłać polecenia bezpośrednio do dysku twardego czy drukarki, co wpływa na zwiększenie sprawności systemu.

Nowsze standardy SCSI

Kilka lat temu dostępny był tylko jeden rodzaj interfejsu SCSI. W tej chwili funkcjonuje przynajmniej pięć jego wersji, z których niektóre są kompatybilne ze sobą, inne nie. Wszystkie wersje dzielą się na trzy kategorie, nazywane SCSI-I, SCSI-II i SCSI-III. SCSI-I to tradycyjny, ośmiobitowy interfejs mogący obsłużyć do siedmiu urządzeń. Można go rozpoznać po prostokątnych, 50-nóżkowych gniazdach. SCSI-I był dość ograniczony pod względem szybkości, dlatego wprowadzone zostały nowsze systemy. Ważne jest, by nie mylić nazw złączy używanych przez urządzenia z nazwami standardów, ponieważ nie zawsze są one zgodne. SCSI-II pozwala na dołączenie do 15 urządzeń poprzez o wiele mniejsze, choć również 50-nóżkowe gniazda w kształcie litery D. SCSI-III również pozwala na dołączenie 15 urządzeń, ale używa szerszych, 68-nóżkowych złączy w kształcie litery D.

Na pewno spotkałeś się z takimi określeniami standardów jak Fast, Wide czy UltraWide SCSI. Są to określenia związane z tym, czy wtyk kabla wewnętrznego ma 50 czy 68 nóżek (i odpowiednio zewnętrznego 40 czy 68 nóżek). Połączenia wewnętrzne i zewnętrzne mają różne szerokości, co może być nieco mylące. W tabeli 36.1 zebrano podstawowe typy interfejsów SCSI wraz z ich własnościami.

Tabela 36.1. Standardy SCSI

Nazwa

Magistrala, do której podłączony jest sterownik

Liczba nóżek złącza
wewnę­trznego

Liczba nóżek złącza
zewnę­trznego

Maksymalna szybkość transmisji danych (MB/s)

SCSI (SCSI-I)

EISA/ISA/PCI

50

50

10

FastWide (SCSI-II)

EISA

50 i 68

68

20

Fast-20 Wide (SCSI-II)

EISA

50 i 68

68

20

Fast Wide (SCSI-III)

PCI

68

68

20

Fast-20 Wide (SCSI-III)

PCI

68

68

20

Differential Fast-20 Wide (Differential SCSI)

PCI

68

68

20

Dostępne są również karty sterowników dopuszczające transmisję danych nawet z prędkością 40 MB/s, ale nie są one kompatybilne z większością urządzeń. Differential SCSI to standard, który różni się nieco pod względem elektrycznym w sposobie przesyłania danych (używana jest metoda różnicowa) - dzięki temu możliwe jest stosowanie dłuższych przewodów i większych prędkości przesyłu. Obecnie dostępnych jest niewiele urządzeń obsługujących ten standard. Również karty sterowników są droższe niż dla pozostałych odmian. W obrębie jednego łańcucha SCSI nie można mieszać urządzeń standardowych i różnicowych.

Nie będziemy wgłębiać się w szczegóły interfejsu SCSI, ponieważ nie są one istotne dla Linuxa. Jeśli chcesz uzyskać więcej informacji, przejrzyj dokumentację dołączaną do sterownika, która zwykle zawiera teoretyczny opis interfejsu.

Obsługiwane urządzenia SCSI

Nie można, niestety, założyć, że jeżeli Linux obsługuje interfejs SCSI, to każde urządzenie SCSI będzie działać poprawnie. Do każdej wersji systemu dołączany jest plik, w którym znajdują się informacje o obsługiwanych urządzeniach. Zajrzyj do niego przed zakupem nowej karty kontrolera czy innego urządzenia.

Niektóre urządzenia rozprowadzane są wraz z poprawkami w kodzie jądra systemu (ang. patch), dzięki którym urządzenie może być obsługiwane. Musisz upewnić się wtedy, czy poprawki przeznaczone są do Twojej wersji jądra, a następnie przekompilować jądro z nowymi sterownikami. Czasem poprawki nie są rozprowadzane z urządzeniami, ale można je znaleźć na stronach WWW producenta.

Sterowniki SCSI

Każdemu urządzeniu w systemie Linux musi odpowiadać plik urządzenia - pod tym względem urządzenia SCSI nie są żadnym wyjątkiem. W większości przypadków Linux jest rozprowadzany wraz z pełnym zestawem takich plików, które wymagają tylko skonfigurowania. Jeśli nie jesteś jeszcze za pan brat ze sterownikami, plikami urządzeń oraz głównymi i pobocznymi numerami urządzeń, zajrzyj do rozdziału 33. „Urządzenia”.

Dyski twarde

Dyski SCSI zawsze są urządzeniami blokowymi, a ich numer główny powinien mieć wartość 8. W przeciwieństwie do systemów BSD, Linux nie obsługuje bezpośredniego dostępu do dysków SCSI.

Dla każdego dysku rezerwowanych jest 16 numerów pobocznych. Numer 0 reprezentuje cały dysk, numery od 1 do 4 - partycje podstawowe, od 5 do 15 - partycje rozszerzone.

W Linuxie numery poboczne dysków są przydzielane dynamicznie, rozpoczynając od najniższej wartości identyfikatora SCSI. Zgodnie z przyjętą powszechnie konwencją dyski twarde SCSI nazywają się /dev/sdX (na przykład /dev/sda, /dev/sdb), a ich poszczególne partycje - /dev/sdXY (na przykład /dev/sda1, /dev/sda2).

Linux nie sprawia problemów podczas dzielenia dysków SCSI na partycje, ponieważ potrafi komunikować się bezpośrednio z kontrolerem. Każdy dysk jest widziany tak, jak widzi go kontroler, z numerami bloków zaczynającymi się od 0 do najwyższego numeru (i przy założeniu, że wszystkie bloki są pozbawione błędów). W ten sposób łatwo jest uzyskać informacje o geometrii dysku (dla porównania, DOS wymaga odwzorowania numerów bloków na adresy w formacie głowica/cylinder/sektor, które nie są zbyt wygodne, choć pozwalają na bezpośrednią manipulację zawartością dysku).

Możesz przeznaczyć cały dysk twardy dla systemu Linux - wtedy program instalacyjny zajmie się zakładaniem partycji. Można również podzielić dysk na partycje linuxowym lub DOS-owym programem fdisk, dzieląc dostępną przestrzeń pomiędzy różne systemy operacyjne. W systemach obsługujących zarówno urządzenia SCSI jak i IDE, może być konieczna zmiana ustawień BIOS-u tak, by można było uruchomić system z dysku SCSI.

Napędy CD-ROM

Napędy CD-ROM, w których wielkość bloku danych wynosi 512 lub 2048 bajtów, będą w systemie linuxowym działać prawidłowo, nie będą natomiast działać pozostałe typy napędów. Nie powinno to raczej sprawiać problemów, ponieważ inne napędy są rzadkością.

Dyski CD-ROM zapisywane są w kilku różnych formatach i - niestety - nie wszystkie z nich dają się odczytać w systemie linuxowym. Najważniejszym, międzynarodowym standardem jest ISO9660, ale nie wszystkie płyty są z nim zgodne, ponieważ został on wprowadzony dość długo po rozpowszechnieniu się napędów CD-ROM.

Numer główny CD-ROM-u z interfejsem SCSI to 11, natomiast numery poboczne przydzielane są dynamicznie (pierwsze urządzenie otrzyma numer 0, drugie - 1 itd.). Poszczególne napędy nazywają się /dev/srX, np. /dev/sr0, /dev/sr1, lub też /dev/scdX, np. /dev/scd0, zależnie od wersji systemu.

Aby możliwy był odczyt danych z dysku CD-ROM, należy zamontować zawarty na nim system plików. Można to zrobić ręcznie lub zamieścić odpowiednie polecenie w jednym z plików inicjalizacyjnych. Ma ono postać:

mount nazwa_urządzenia punkt_zamontowania, np.:
mount /dev/sr0 /mnt/cdrom

Jeśli Twój CD-ROM nie montuje się poprawnie po wydaniu takiego polecenia, przyczyną może być niewłaściwy format dysku, brak katalogu, w którym system plików ma być zamontowany, lub brak wpisu w pliku /etc/fstab. Wpis taki powoduje, że domyślnym typem systemu plików zapisanego na dysku CD-ROM jest ISO9660. W takim przypadku możesz użyć pełniejszej wersji polecenia:

mount -t iso9660 /dev/sr0 /mnt/cdrom

Aby możliwe było zamontowanie systemu plików zapisanego na płycie CD-ROM, jądro systemu musi obsługiwać system plików ISO9660. Jeśli tak nie jest, trzeba je przekompilować załączając odpowiednie opcje.

Linux próbuje zablokować otwieranie napędu w czasie, gdy dysk jest zamontowany. Jest to zabezpieczenie przed próbą zmiany dysku bez poinformowania o tym systemu operacyjnego. Nie wszystkie napędy pozwalają na to, ale jeśli nie możesz wyjąć dysku, to najprawdopodobniej oznacza to, że najpierw trzeba go odmontować poleceniem umount punkt_zamontowania (nawet jeśli nie jest aktualnie używany).

Napędy taśmowe

Linux obsługuje kilka typów napędów taśmowych SCSI. Przed zakupem powinieneś sprawdzić, czy dany model jest obsługiwany, przeglądając dokumentację dołączoną do dystrybucji. Najpopularniejsze modele, takie jak Archive Viper firmy QIC, Exabyte, Wangtek 5150S i napędy DAT działają w systemie Linux bez zarzutu.

Napędy taśmowe mają zwykle numer główny 9, a numery poboczne przydzielane są dynamicznie. Nazwy napędów nieprzewijanych mają przeważnie postać /dev/nrstX (np. /dev/nrst0), a napędów przewijanych - /dev/rstX (np. /dev/rst1). W przypadku napędów nieprzewijanych najstarszy bit numeru pobocznego jest ustawiony, więc pierwsze urządzenie tego typu będzie miało numer główny 9, a poboczny 128.

Ogólnie Linux obsługuje zarówno urządzenia o stałej, jak i o zmiennej długości bloku, pod warunkiem, że jego długość jest mniejsza od długości bufora sterownika, która jest ustawiona w większości dystrybucji na 32 kB (ale może zostać zmieniona). Parametry napędu - takie jak długość bloku, buforowanie czy gęstość taśmy - ustawiane są poleceniem ioctls lub za pomocą programu mt.

Inne urządzenia

Dostępnych jest również wiele innych urządzeń opartych na interfejsie SCSI, takich jak skanery, drukarki, dyski wymienialne itp. Takie urządzenia obsługiwane są przez ogólny sterownik SCSI. Sterownik ten udostępnia interfejs służący do wysyłania poleceń do dowolnego urządzenia SCSI.

Sterownik ogólny SCSI używa trybu znakowego i ma numer główny 21. Numery poboczne są przydzielane dynamicznie - 0 dla pierwszego urządzenia, 1 dla drugiego itd. Odpowiednie urządzenia nazywają się /dev/sg0, /dev/sg1 itd.

SCSI - rozwiązywanie problemów

Wiele często spotykanych przy pracy z interfejsem SCSI problemów da się łatwo rozwiązać. Najtrudniej jest znaleźć ich źródło. Czasem pomaga czytanie komunikatów diagnostycznych wyświetlanych podczas uruchamiania systemu i inicjalizacji magistrali SCSI.

Poniżej zebraliśmy najczęściej występujące problemy z urządzeniami SCSI wraz z rozwiązaniami, które pomogą w większości przypadków.

Wszystkie identyfikatory przydzielone są jednemu urządzeniu SCSI: Urządzenie ma przypisany ten sam numer, który jest przypisany kontrolerowi (zwykle 7). Należy zmienić ustawienie odpowiedniej zworki.

Wszystkie dostępne numery LUN są zajęte przez dane urządzenie: Prawdopodobnie posiadasz starą wersję oprogramowania firmowego. W pliku /usr/src/linux/ drivers/scsi/scsi.c w definicji zmiennej blacklist zawarta jest lista „nieposłusznych” urządzeń - możesz spróbować dodać swoje urządzenie do tej listy i przekompilować jądro. Jeśli to nie pomaga, skontaktuj się z producentem.

Komunikat „time out”: Upewnij się, że przerwania, z których korzysta kontroler, są ustawione prawidłowo oraz że nie ma żadnych konfliktów IRQ, DMA czy portów wejścia/wyjścia z innymi urządzeniami.

Komunikaty „sense error”: Komunikaty te spowodowane są zwykle wadliwymi przewodami lub brakiem terminatorów. Upewnij się, że łańcuch SCSI jest prawidłowo zakończony z obu stron. Nie używaj terminatora w środku łańcucha - to również sprawia problemy. Jeśli używasz długich przewodów, możesz spróbować zamontować aktywne terminatory zamiast pasywnych.

Napęd taśmowy nie jest rozpoznawany podczas uruchamiania systemu: Spróbuj uruchomić system z włożoną taśmą.

Jądro obsługujące sieć nie pracuje poprawnie z urządzeniami SCSI: Procedura autoprobe używana dla wielu sterowników sieciowych może zakłócać działanie sterownika SCSI. Spróbuj wyłączać po kolei sterowniki, aż znajdziesz ten sprawiający problemy, a następnie skonfiguruj go ponownie.

Urządzenie SCSI zostało wykryte, ale system nie potrafi z niego korzystać: Prawdopodobnie nie masz odpowiedniego pliku urządzenia. Plik taki powinien znaleźć się w katalogu /dev, powinien również mieć przypisany odpowiedni główny i poboczny numer urządzenia. Odpowiedni plik można stworzyć za pomocą programu mkdev.

Kontroler SCSI nie działa prawidłowo, jeśli używa mapowanych adresów wejścia / wyjścia: Problem ten jest dość powszechny w przypadku sterowników Trantor 128 i Seagate; jest on spowodowany nieprawidłowym buforowaniem portów wejścia / wyjścia. Aby rozwiązać ten problem, należy wyłączyć buforowanie portu używanego przez kontroler (w ustawieniach XCMOS) lub, jeśli nie jest to możliwe, całkowicie wyłączyć buforowanie portów wejścia / wyjścia.

System nie potrafi znaleźć żadnych urządzeń SCSI (komunikat scsi: 0 hosts):
Procedura autoprobe dla sterownika opiera się na danych podawanych przez BIOS i nie potrafi prawidłowo uruchomić kontrolera. Problem ten występuje w przypadku urządzeń: Adaptec 152x, Adaptec151x, Adaptec AIC-6260, Adaptec AIC-6360, Future Domain 1680, Future Domain TMC-950, Future DomainTMC-8xx, Trantor T128, Trantor T128F, Trantor T228F, Seagate ST01, Seagate ST02 i Western Digital 7000. Sprawdź, czy BIOS kontrolera jest załączony i czy nie powoduje konfliktu z BIOS-em jakiegoś innego urządzenia. Jeśli BIOS jest załączony, znajdź jego „podpis” uruchamiając program systemu DOS debug. Przykładowo, użyj polecenia d=c800:0 programu debug, aby sprawdzić, czy kontroler potwierdzi swoją obecność (jeśli sterownik używa adresu 0xc8000). Jeśli karta nie odpowiada, zmień ustawienia adresu.

System SCSI czasem zawiesza się: Możliwych powodów jest wiele, nie wyłączając uszkodzenia karty sterownika. Sprawdź ją jakimś programem diagnostycznym. Spróbuj użyć innego kabla. Jeśli system zawiesza się tylko wtedy, gdy pracują równocześnie jakieś urządzenia, jest to prawdopodobnie wina oprogramowania firmowego - skontaktuj się wówczas z producentem. Możesz również sprawdzić, czy na dysku twardym nie występują uszkodzone sektory, które mogą być przyczyną najróżniejszych objawów.

Podsumowanie

Interfejs SCSI ma opinię trudnego w obsłudze, ale w rzeczywistości jest to jeden z najwydajniejszych i najbardziej elastycznych systemów. Większość doświadczonych użytkowników systemów UNIX-owych preferuje interfejs SCSI, ponieważ łatwo do niego dostosować jądro systemów UNIX-owych (nie wyłączając Linuxa).

Jak można ułatwić sobie codzienną pracę za pomocą języka powłoki, dowiesz się z rozdziału 14. „Programowanie w języku powłoki”.

Proces konfigurowania systemu tak, by mógł on pracować jako serwer internetowy, opisany jest w rozdziale 47. „Konfigurowanie węzła internetowego”.

O tym, jak używać systemów kontroli wersji, aby łatwiej zarządzać tworzonymi aplikacjami, możesz przeczytać w rozdziale 56. „Systemy kontroli wersji”.

584 Część VI Linux dla administratorów

584 E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\36.DOC

E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\36.DOC 585

Rozdzia³ 36. Obsługa urządzeń SCSI 585



Wyszukiwarka

Podobne podstrony:
43, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
34, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
58, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
26, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
08, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
10, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
57, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
29, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
46, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
60, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
49, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
62, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
D, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
55, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
28, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
61, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
42, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
03, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta
31, ciekawostki, Linux - Ksiega Eksperta, Linux - ksiega eksperta, Linux - księga eksperta

więcej podobnych podstron