SCSI i ATA to zupełnie inne standardy. Oba są obecnie opracowywane pod egidą organizacji normalizacyjnej INCITS , ale przez różne grupy. SCSI podlega komitetowi technicznemu T10 , zaś ATA - T13 . 1
ATA zostało zaprojektowane wyłącznie z myślą o dyskach twardych. SCSI jest zarówno szerszy, jak i starszy, będąc standardowym sposobem kontrolowania urządzeń pamięci masowej, napędów taśm, wymiennych napędów nośników optycznych (CD, DVD, Blu-Ray ...), skanerów i wielu innych typów urządzeń .
W połowie lat 80. XX wieku - kiedy wprowadzono IDE do świata komputerów PC - nie było oczywiste, że SCSI zostanie zepchnięty na margines świata komputerów. SCSI miał ugruntowaną pozycję i był bardziej zdolny. Stacje robocze Unix i komputery Macintosh są dostarczane z dyskami twardymi SCSI od dziesięcioleci. Komputery klasy wyższej często miały kartę SCSI przynajmniej dla urządzeń peryferyjnych, a często także dla systemowego dysku twardego. Wczesne dyski CD-ROM i napędy taśm do komputerów osobistych pojawiły się najpierw w formie SCSI.
Jednak w branży komputerów osobistych istniał nacisk na użycie tańszego standardu ATA zamiast SCSI. Początkowy kompromis nazwano ATAPI , rozszerzenie ATA, które umożliwia urządzeniu, które wewnętrznie rozumie SCSI, odbieranie tych poleceń SCSI przez interfejs ATA. Więcej na ten temat poniżej.
Kilka lat później SCSI otrzymało funkcję przekazywania poleceń ATA , w zasadzie odwrotność ATAPI, umożliwiającą polecenia ATA przez szynę SCSI. Jednym z zastosowań tego narzędzia jest tunelowanie poleceń ATA SMART przez SCSI. smartmontools
robi to na przykład.
Później komitet INCITS T10 opracował standard o nazwie Tłumaczenie SCSI / ATA (SAT), który tłumaczy polecenia SCSI na polecenia ATA i odwrotnie. 2 jądra Linux jest libata
biblioteka dostarcza implementację SAT dla systemu Linux, między innymi .
W protokołach SCSI i ATA występuje logiczne nakładanie się, ponieważ oba kontrolują dyski twarde. Oba oczywiście potrzebują sposobu na wyszukanie określonego sektora dysku twardego, odzyskanie zawartości tego sektora itp. Niemniej jednak formaty poleceń są zupełnie inne; w przeciwnym razie nie potrzebowalibyśmy tych mechanizmów tłumaczenia i przekazywania.
SATA faktycznie „mówi” SCSI
Jest to tak samo prawdziwe, jak twierdzenie, że „samochody są różowe”. Niektóre samochody są różowe.
ATAPI, tranzyt ATA i SAT to tylko część historii. Czytaj.
Zakładam, że jest rzeczą oczywistą, że różnią się w warstwie fizycznej, ponieważ nie dzielą kompatybilnych kabli.
Tak było w starym świecie równoległych SCSI , ale podobnie jak SATA zastąpił PATA, SAS zastąpił równoległy SCSI.
SAS i SATA dzielą te same złącza dysków i są one elektrycznie kompatybilne. Kontroler SAS może komunikować się z urządzeniami SAS i SATA, ale dysk SAS nie może współpracować z kontrolerem tylko SATA. Różnica polega na negocjacjach, a w poleceniach, których można użyć po tym, jak urządzenia na każdym końcu kabla dowiedzą się, z czym rozmawiają.
W rzeczywistości wiele kontrolerów „SATA RAID” to tak naprawdę kontrolery SAS RAID. Takie kontrolery często mają jedno lub więcej odpowiednich gniazd SFF-8087 SAS na karcie, ale można do nich podłączyć dyski SATA za pomocą kabla SFF-8087 do 4 × SATA. Tak więc karta SAS / SATA RAID z dwoma odpowiednimi złączami SFF-8087 steruje maksymalnie 8 dyskami. 3)
Inną częstą sytuacją jest obudowa napędu typu hot-swap lub obudowa komputera z płytą montażową SAS . Płyta montażowa zwykle ma złącze SFF-8087, co pozwala na użycie prostego kabla 8087 do 8087 od płyty montażowej do kontrolera dysku. Jeśli dyski w zasobnikach wymienianych podczas pracy to SATA, nie ma to znaczenia. Kontroler SAS może rozmawiać z nimi za pomocą okablowania SAS, gdy siedzą w saniach napędowych, które podłączają dyski do płyty montażowej SAS. Dyski wciąż są jednak dyskami SATA, mówiąc w protokole ATA, a nie SCSI.
Wiem również, że ATAPI jest enkapsulacją SCSI
To prawda, ale ATAPI jest używany tylko dla urządzeń innych niż dyski twarde. Głównym powodem istnienia tego standardu jest umożliwienie interfejsowi ATA transportowania poleceń SCSI, takich jak polecenia przesyłania strumieniowego danych dla napędu taśmowego, polecenie „wysuwania nośnika” dla napędu optycznego lub polecenie „odtwarzania ścieżki” dla dysku CD audio .
Fakt ten staje się coraz mniej istotny, ponieważ urządzenia inne niż HDD, które mówiły SCSI przez ATAPI, znikają lub przechodzą na inne interfejsy. Napędy taśmowe niskiej klasy już nie istnieją, więc wszystkie napędy taśmowe są teraz SAS. 4 Skanery są w dzisiejszych czasach w zasadzie tylko USB. Napędy dysków optycznych przemieszczają się poza obudową komputera, aby je podłączyć przez USB, lub całkowicie znikają, pozostawiając tylko coraz rzadsze wewnętrzne napędy optyczne z komunikacją ATAPI.
Niezależnie od tego, urządzenie SATA, które rozumie SCSI przez ATAPI, jest „urządzeniem SCSI” tylko w ograniczonym zakresie. Takie urządzenia nie skorzystają z większości zalet SAS nad SCSI . Te możliwości sprawiają, że SAS jest szczególnie cenny w porównaniu do SATA, pomimo ATAPI.
Jeśli chcesz innej analogii samochodu, fakt, że mogę prowadzić samochód na owalnym torze wyścigowym, nie czyni z niego samochodu wyścigowego.
Zauważyłem, że funkcje SCSI, takie jak NCQ, FUA, DPO itp. (Jeśli nie pamiętam niepoprawnie) zostały przejęte z SCSI. Nie jest jednak jasne, jak „duża” część zestawu poleceń SCSI jest współdzielona lub podobna.
Przeważnie jest to mimikra niskiej klasy. Na przykład NCQ to nie to samo, co TCQ . Dostaniesz dysk twardy z TCQ tylko wtedy, gdy jest to urządzenie SAS. Podłącz dysk SATA z obsługą NCQ do kontrolera SAS i nie uzyska on nagle możliwości TCQ.
To powiedziawszy, nowoczesne urządzenie SATA może być znacznie bardziej wydajne niż urządzenie SCSI sprzed dekady. Z pewnością będzie w stanie obsługiwać znacznie wyższe poziomy I / O.
Wszystko to jest mylące i nakładające się, ponieważ taka jest natura świata sprzętu komputerowego. Nie ma wyraźnych granic, ponieważ producenci napędów optycznych - po prostu dla jednej branży - naprawdę nie chcą budować dwóch zupełnie różnych napędów, jednego mówiącego SAS z najwyższą ekspresją, a drugiego mówiącego SATA. Więc idą na kompromis. Lobbują w komitetach, definiując takie standardy, aby stworzyć jeden standard, który pozwoli im upuścić dysk SATA na magistrali SAS i wszyscy są w większości zadowoleni.
Gdzie mogę znaleźć pewne jasne informacje na ten temat, a zwłaszcza ich związek z jądrem Linuksa?
Ostatecznie chcesz przeczytać źródła Linuksa . Przewodnik libATA
programisty również powinien być pomocny.
Nie znam żadnego łatwego podsumowania tego, jak to wszystko działa. To nie było łatwe. Został zaprojektowany, aby uwzględnić trzy dekady ewolucji sprzętu, konkurujących standardów i różnych celów. Co więcej, został zaprojektowany bez magicznych poziomów przewidywania. Krótko mówiąc, to jest bałagan. Jedynymi osobami, które naprawdę muszą wiedzieć, jak działa ten bałagan, są ci, którzy budują jądra systemu operacyjnego, projektują sprzęt i, w mniejszym stopniu, piszą sterowniki dla jąder systemu operacyjnego. Dla tak małej kadry wysoce zdolnych ludzi wystarczą standardy i działający kodeks.
Dzisiaj Linux nazywa większość urządzeń pamięci masowej wielokrotnego zapisu /dev/sd?
. „SD” kiedyś oznaczało „dysk SCSI” i istniało jedynie po to, aby odróżnić się od /dev/hd?
ogólnego znaczenia „dysku twardego”, ale w większości przypadków oznaczało PATA. To rozróżnienie jest kolejną praktyczną nieistotnością dzisiaj. Teraz mamy dyski SSD, napędy USB, wirtualne dyski twarde , urządzenia iSCSI i wiele innych /dev/sd?
. Sugeruję, abyś zaczął myśleć o „SD” jako o „urządzeniu pamięci”, zamiast martwić się, czy urządzenie mówi ATA przez SATA, ATA przez Ethernet , SCSI przez USB , SCSI przez ATAPI, SCSI przez SAS, SCSI przez IP (iSCSI ) lub co masz.
Podstawowym problemem jest to, że schematy nazewnictwa często przewyższają przyczynę tego schematu. Widzisz to w /dev/scd0
. Obecnie urządzenie podłączone do tego /dev
węzła jest bardziej napędem DVD lub Blu-Ray niż napędem Compact Disc.
Alternatywa - w której nazywasz każdy /dev
węzeł według dokładnego typu podłączonego do niego urządzenia - ma swoje własne problemy. Czy naprawdę byłoby lepiej, gdybyśmy nazwali /dev
węzeł na podstawie protokołu niskiego poziomu, którego używał? /dev/atapi0
, /dev/sas0
Itp? A może wolisz /dev/atapibluray0
i takie? Co z dyskami multimedialnymi? Czy ten sam sterownik musi również zostać ujawniony /dev/atapicd0
na wypadek, gdyby włożyć dysk CD do napędu Blu-Ray? To tylko zastępuje jeden mylący schemat innym.
/dev/sd?
Abstrakcja Linuksa nie jest doskonała, ale jest przydatna. Na przykład możesz dowiedzieć się, że /dev/sda
najprawdopodobniej jest to dysk rozruchowy, nie martwiąc się o to, jakie okablowanie, protokół interfejsu i nośnik kryją się za tą nazwą. Jeśli wam powiem, że dany box Linux ma pojedynczy dysk systemowy, napęd optyczny, a czasami ma dysku USB podłączonego do niego, można pewnie domyślić, że są one nazywane /dev/sda
, /dev/sdb
i /dev/sdc
, odpowiednio.
Przypisy :
SCSI i ATA nie zaczęły dzielić nadrzędnej organizacji normalizacyjnej. Obaj zaczynali jako zastrzeżone kontrolery dysków twardych. SCSI ewoluowała od Shugart Associates ' SASI i ATA / IDE wyszedł znacznie późniejszym współpracy projektowej pomiędzy Western Digital, Compaq i CDC.
ANSI później znormalizowała oba, z ATA-1 po SCSI-1 około 8 lat później.
INCITS jest rodzajem siostrzanej organizacji ANSI . INCITS publikuje ostateczne standardy za pośrednictwem ANSI w USA oraz ISO / IEC JTC 1 na całym świecie.
Obecny standard to SAT-3 , opublikowany w maju 2015 r., Z SAT-4 i SAT-5 w toku, gdy piszę to w połowie lipca 2018 r. Ten ostatni link prowadzi do szkiców wersji w toku.
Ignoruję mnożniki portów SATA , ekspandery SAS itp.
Z wyjątkiem modeli wykonanych w celu zapewnienia zgodności ze starymi równoległymi systemami SCSI.
/dev/sd?
abstrakcję Linuksa .