Apple Mac i fantazyjne urządzenia. LTO, SAS, Fibre Channel, eSATA

Tematem tego artykułu jest podłączenie urządzeń zewnętrznych do komputera Mac poprzez interfejsy SAS, Fibre Channel (FC), eSATA. Od razu powiedzmy, że na rozwiązanie problemu dostępu do takich urządzeń jest sposób dla zdrowego człowieka: zbuduj tani pecet, podłącz kartę kontrolera HBA SAS lub FC (na przykład prosty adapter LSI), podłącz swoje urządzenia do za pomocą tego kontrolera zainstaluj dowolnego Linuksa na komputerze PC i pracuj na komputerze Mac przez sieć. Ale to jest banalne i nieciekawe. Pójdziemy trasą hardkorową i podłączymy nasze urządzenia bezpośrednio do Maca.

Czego potrzebujemy do tego:
– przyzwoitą kwotę na zakup nowego sprzętu, czyli powodzenia na aukcjach w serwisie eBay (gdzie przy odrobinie wysiłku można kupić wymagany sprzęt poprzednich generacji 10 razy taniej niż cena katalogowa);
- Ten artykuł.

Aby pracować z taśmą magnetyczną (obecnie prawie powszechnie reprezentowaną w formacie LTO), musisz mieć napęd taśmowy LTO (streamer) lub bibliotekę taśm. Jest to dość drogie urządzenie na pierwszy zakup (od setek tysięcy rubli), ale warte rozsądnej kwoty przy zakupie używanego. Ponieważ generacje LTO zmieniają się mniej więcej co dwa lata, a kompatybilność ogranicza się do dwóch generacji, rynek wtórny jest dość nasycony sprawnymi urządzeniami mającymi cztery lata i więcej, tj. pokolenie przedostatnie i następne. Jeśli kupisz nowe urządzenie w celach komercyjnych, sam zrozumiesz, dlaczego go potrzebujesz. Jeśli chcesz kupić dla swojego domu i rodziny, możesz rozważyć tę opcję jako sposób na archiwizację informacji (ponieważ same media są bardzo tanie w przeliczeniu na 1 gigabajt).

Począwszy od generacji LTO-5 (i częściowo LTO-4) urządzenia do pracy z taśmą magnetyczną łączone są sprzętowo z komputerem poprzez interfejs SAS lub FC (przeważnie występują dwie wersje każdego urządzenia)

Z drugiej strony Apple łaskawie udostępnia nam w naszym Macu interfejs USB-C (pracujący z wykorzystaniem protokołów USB, Thunderbolt 3 lub DisplayPort), czasami interfejs Ethernet, a także autorskie Thunderbolt 3 – Thunderbolt 2 i Thunderbolt – FireWire 800 adaptery.

Pat? Nie bardzo. Na szczęście Thunderbolt może pracować w trybie PCIe i pozwala na podłączenie kart PCIe w taki sam sposób, jakby były zainstalowane bezpośrednio w obudowie komputera. Dzięki temu możliwa jest dowolna rozbudowa konfiguracji sprzętowej Maca pod warunkiem posiadania odpowiedniego adaptera i sterowników.

Koncepcyjnie najprostszym sposobem rozwiązania problemu jest zewnętrzna skrzynka na adaptery PCIe z interfejsem Thunderbolt (system rozbudowy karty PCIe), w której można zainstalować adapter magistrali SAS lub FC Host (HBA). Na przykład takie pudełka są produkowane przez firmę Sonet i kilka innych. Jest tu niuans: nie każdy kontroler jest dla nas odpowiedni, ale tylko taki, który ma sterownik dla macOS. Takich płyt jest tylko kilka, a najtańsze i najpopularniejsze (na przykład te same LSI) nie są uwzględnione w ich liczbie. Na szczęście Sonnet zadał sobie trud skompilowania tabela kompatybilności Karty PCIe z różnymi systemami operacyjnymi poprzez interfejs Thunderbolt.

Innym rozwiązaniem jest zakup gotowego konwertera interfejsu Thunderbolt – SAS lub Thunderbolt – FC, który w istocie jest gotowym złożeniem skrzynki i kontrolera. Najbardziej znana firma w tej okolicy ATTO, ale są też produkty innych firm.

Należy pamiętać, że nie wszystkie kontrolery SAS i FC są certyfikowane na zgodność ze standardem LTO, ponieważ samo w sobie jest to kosztowne. Niektórzy producenci piszą wprost, że ich kontrolery nie są przeznaczone do współpracy z napędami taśmowymi.

Aby uzupełnić obraz, zauważamy, że mLogic produkuje устройство, czyli dysk IBM LTO-8 w obudowie zewnętrznej, w którym od razu integruje się konwerter SAS na Thunderbolt 3. Jest to jednak rzecz jeszcze bardziej egzotyczna niż wszystko opisane powyżej, zwłaszcza jak na standardy naszego regionu. Wątpię, czy to urządzenie można w ogóle legalnie importować do Rosji (dyski LTO zawierają funkcje kryptograficzne i producenci tacy jak IBM i HP otrzymują z tego powodu pozwolenie na import FSB dla każdego modelu).

Następnie rozważymy jako przykład konkretny zestaw sprzętu, którego właścicielem stał się autor w wyniku kilku udanych przejęć, ale ogólną zasadę należy zachować dla wszystkich opcji.

Mamy więc następujący sprzęt do pracy z taśmą:
– komputer Apple Mac mini 2018 z systemem macOS 10.15 Catalina, posiadający porty USB-C z obsługą Thunderbolt 3;
– Adapter Apple Thunderbolt 3 / Thunderbolt 2;
– Kabel Apple Thunderbolt 2;
– Konwerter interfejsu ATTO ThunderLink SH 1068 (2*Thunderbolt / 2*SAS-2);
– kabel SAS SFF-8088 – SFF-8088;
– napęd taśmowy LTO-5 IBM TS2350;
– wkłady LTO-5, wkład czyszczący.

Teraz, jak to mówią, spróbujemy rzucić wyzwanie tym wszystkim rzeczom.

Pobieramy ze strony ATTO najnowszą wersję sterownika ThunderLink SH 1068 (najwyraźniej dla naszej wygody jest on połączony ze sterownikiem SH 2068 i znajduje się w sekcji 2068, która jest wpisana tylko wewnątrz archiwum ze sterownikiem) oraz Narzędzie konfiguracyjne ATTO.

Apple Mac i fantazyjne urządzenia. LTO, SAS, Fibre Channel, eSATA

Sterownik oczywiście wymaga instalacji. Przed takimi działaniami autor radzi zawsze wykonać migawkę systemu plików APFS dysku startowego za pomocą polecenia

tmutil localsnapshot

lub kopię zapasową dysku rozruchowego, jeśli ma HFS+. Nigdy nie wiesz. Wtedy łatwo będzie wycofać się z migawki.

Następnie niedoświadczony, ale zachowujący należytą staranność umysł niewątpliwie będzie skłonny do uważnego przeczytania instrukcji instalacji sterownika ATTO i przestrzegania ich. W rezultacie - tadam! – dostajemy system operacyjny, który zawiesza się na etapie ładowania. Tutaj możemy potrzebować migawki, z której będziemy mogli odzyskać, wywołując Time Machine z partycji odzyskiwania lub z tej samej partycji odzyskiwania możemy ręcznie usunąć chory kext z katalogu rozszerzeń jądra (autor generalnie nie zaleca tego).

Dlaczego to się dzieje? Ponieważ Apple się o nas zatroszczyło. W najnowszych wersjach systemu macOS nie można łatwo wprowadzić obcego kodu do procesu rozruchu. Dobrzy programiści Apple zablokowali to destrukcyjne zachowanie. Dokładniej, zablokowali to w połowie, kiedy oczekiwania sterownika zostały spełnione, ale sam sterownik nie, więc wszystko po prostu się zawiesza.

Co wyrafinowany umysł powinien zrobić przed instalacją sterownika? Najpierw wydaj polecenie:

csrutil status

Jeżeli w odpowiedzi na to otrzymamy:

Stan ochrony integralności systemu: włączony.

to znaczy, że dobrzy programiści Apple troszczą się o nas, więc nic nam nie wyjdzie, dopóki nie wyłączymy ich wspaniałej ochrony. Aby to zrobić, uruchom ponownie komputer na partycji odzyskiwania (⌘R), wywołaj terminal i wydaj polecenie:

csrutil disable

Następnie ponownie uruchamiamy działający system, a dopiero potem instalujemy sterownik, a jednocześnie narzędzie konfiguracyjne ATTO (w zasadzie narzędzie konfiguracyjne jest potrzebne tylko do diagnostyki i nie jest wymagane podczas normalnej pracy). Po drodze na żądanie potwierdzamy autoryzację ATTO w ustawieniach systemu. Po instalacji możesz ponownie uruchomić komputer na partycji odzyskiwania i wydać polecenie

csrutil enable

Apple znów się o nas troszczy.

Teraz mamy obsługiwany przez sterowniki interfejs do zewnętrznych urządzeń SAS (lub FC, jeśli zastosowano konwerter FC). Ale jak pracować z taśmą na poziomie logicznym?

Jak wie niedoświadczony, ale erudycyjny umysł, każdy system kompatybilny z Unixem obsługuje napędy taśmowe na poziomie jądra i podstawowe narzędzia systemowe, do których zaliczają się przede wszystkim mt (zarządzanie taśmami) i tar (archiwizator obsługujący pracę z archiwami na taśmie). Co jednak wyrafinowany umysł może na ten temat powiedzieć? Dowolny system kompatybilny z Unixem, z wyjątkiem macOS-u. Apple zatroszczył się o nas, usuwając ze swojego kodu obsługę urządzeń taśmowych.

Ale czy naprawdę niemożliwe jest zwrócenie tego kodu poprzez przeniesienie standardowych narzędzi uniksowych typu open source do systemu macOS? Dobra wiadomość jest taka, że ​​firma Tolis (do której nie odsyłam) zrobiła to już w swoim produkcie Tolis Tape Tools. Zła wiadomość jest taka, że ​​wspomniana firma kosztuje 399 dolarów za korzystanie z wyników swojej pracy. Szacunki tego faktu mogą się różnić, ale autor osobiście nie jest gotowy zapłacić komuś 400 dolarów za kod, który w większości został napisany przez zupełnie inne osoby i jest w powszechnym użyciu od lat 1970. XX wieku, dlatego autor zadaje to pytanie sobie uważa za zamknięte. (Nawiasem mówiąc, na Githubie istnieje darmowy projekt porzucony w niejasnym stanie Taśma IOSCSIT w tym samym temacie).

Na szczęście jest na świecie korporacja IBM, której apetyty komercyjne są na zupełnie inną skalę i dlatego nie objawiają się w każdym drobiazgu. W szczególności opracował system plików taśmowych LTFS typu open source, który jest również dystrybuowany dla systemu macOS.

Należy jednak pamiętać, że różni producenci urządzeń taśmowych udostępniają własne wersje systemu LTFS do obsługi swoich urządzeń. Ponieważ autor korzysta z napędu taśmowego IBM, zainstalował LTFS firmy IBM. Dyski innych firm mogą wymagać własnych portów LTFS. Istnieje uniwersalna implementacja openLTFS na Github i Homebrew.

Ważne jest dla nas, że LTFS wykorzystuje funkcję partycjonowania nośników, dzięki czemu może współpracować z urządzeniami i kartridżami począwszy od generacji LTO-5.

Zatem w naszym przypadku pobieramy IBM Spectrum Archive Single Drive Edition dla systemu macOS ze strony internetowej IBM, która zawiera implementację LTFS. Bez żadnych przygód instalujemy produkt za pomocą własnego instalatora. Po drodze instaluje także pakiet FUSE, a w ustawieniach systemu będzie musiał potwierdzić autoryzację sprytnego programisty imieniem Anatol Pomozov, od którego w tym przypadku zależy całe IBM. Szacunek i szacunek dla tego człowieka.

Wskazane jest natychmiastowe zapisanie linii w pliku /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local:

opcja pojedynczego dysku sync_type=time@1

co określa, że ​​taśma jest domyślnie zamontowana, a bufor nagrywania jest resetowany po 1 minucie bezczynności (domyślnie jest to 5 minut).

Apple Mac i fantazyjne urządzenia. LTO, SAS, Fibre Channel, eSATA

Wreszcie wszystko jest gotowe do podłączenia. Łączymy łańcuch: Mac – adapter T3/T2 – kabel Thunderbolt – konwerter ATTO – kabel SAS – napęd taśmowy (wybór kilku portów w Macu, konwerterze i napędzie nie ma znaczenia). Włącz zasilanie konwertera. Włącz zasilanie napędu taśmowego. Czekamy, aż dysk zakończy inicjalizację zgodnie ze wskazaniami.

Wydajemy polecenie:

ltfs -o device_list

Brawo! Otrzymujemy (w zwykły sposób diagnostyczny IBM):

307 LTFS14000I Uruchamianie LTFS, wersja LTFS 2.4.2.0 (10418), poziom logowania 2.
307 LTFS14058I Specyfikacja formatu LTFS wersja 2.4.0.
307 LTFS14104I Uruchamiany przez „ltfs -o lista_urządzeń”.
307 LTFS14105I Ten plik binarny jest przeznaczony dla systemu Mac OS X.
307 LTFS14106I Wersja GCC to 4.2.1 kompatybilna z Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Wersja jądra: Darwin Kernel Wersja 19.4.0: środa 4 marca 22:28:40 PST 2020; katalog główny: xnu-6153.101.6 ~ 15/RELEASE_X86_64.
307 LTFS17085I Wtyczka: Ładowanie zaplecza taśmy „iokit”.
Lista urządzeń taśmowych:.
Nazwa urządzenia = 0, Identyfikator dostawcy = IBM, Identyfikator produktu = ULT3580-TD5, Numer seryjny = **********, Nazwa produktu = [ULT3580-TD5].

Włóż kasetę, poczekaj, aż się załaduje i sformatuje:

mkltfs -d 0 -nTest -r "size=10M/name=.DS_Store"

Tutaj parametr -d określa numer napędu (zawsze zero, jeśli jest jedyny, ale nie można go pominąć w tym poleceniu), -n to nazwa taśmy (można go pominąć), a parametr -r wymaga umieszczenia zawartości plików .DS_Store o rozmiarze nieprzekraczającym 10 megabajtów, w sekcji indeksowej (tj. przeznaczonej dla katalogów) taśmy zamiast w sekcji danych.

Tajemnicze życie rozpoczęło się w napędzie taśmowym. Czekamy kilka minut i otrzymujemy następującą odpowiedź:

LTFS15000I Uruchamianie mkltfs, LTFS wersja 2.4.2.0 (10418), poziom dziennika 2.
LTFS15041I Uruchomiony przez „mkltfs -d 0 -nTest -r rozmiar=10M/nazwa=.DS_Store”.
LTFS15042I Ten plik binarny jest przeznaczony dla systemu Mac OS X.
Wersja LTFS15043I GCC to 4.2.1 kompatybilna z Apple Clang 4.1 ((tagi/Apple/clang-421.11.66)).
LTFS17087I Wersja jądra: Darwin Kernel Wersja 19.4.0: środa 4 marca 22:28:40 PST 2020; katalog główny: xnu-6153.101.6 ~ 15/RELEASE_X86_64.
LTFS15003I Urządzenie formatujące „0”.
LTFS15004I Rozmiar bloku woluminu LTFS: 524288.
LTFS15005I Zasady rozmieszczenia partycji indeksu: rozmiar=10M/nazwa=.DS_Store.

LTFS11337I Aktualizuj flagę brudnego indeksu (1) — NO_BARCODE (0x0x1021081e0).
Wtyczka LTFS17085I: Ładowanie zaplecza taśmy „iokit”.
LTFS30810I Otwieranie urządzenia za pomocą sterownika iokit (0).
LTFS30814I Identyfikator dostawcy to IBM.
LTFS30815I Identyfikator produktu to „ULT3580-TD5”.
LTFS30816I Wersja oprogramowania sprzętowego to H976.
LTFS30817I Numer seryjny napędu to **********.
LTFS17160I Maksymalny rozmiar bloku urządzenia to 1048576.
LTFS11330I Ładowanie kasety.
LTFS30854I Ochrona bloku logicznego jest wyłączona.
LTFS11332I Ładowanie powiodło się.
LTFS17157I Zmiana ustawień dysku na tryb zapisu w dowolnym miejscu.
LTFS15049I Sprawdzanie nośnika (mocowania).
LTFS30854I Ochrona bloku logicznego jest wyłączona.
LTFS15010I Tworzenie partycji danych b na partycji SCSI 1.
LTFS15011I Tworzenie partycji indeksowej a na partycji SCSI 0.
LTFS17165I Resetowanie proporcji pojemności nośnika.
LTFS11097I Partycjonowanie nośnika.
LTFS11100I Zapisywanie etykiety na partycji b.
LTFS11278I Zapisywanie indeksu na partycji b.
LTFS30808I READ_ATTR (0x8c) zwraca -20501.
LTFS30865I READ_ATTR zwraca nieprawidłowe pole w CDB (-20501) 0.
LTFS30836I Nie można odczytać atrybutu (-20501).
LTFS11336I Atrybut nie istnieje. Zignoruj ​​oczekiwany błąd.
LTFS17235I Zapisywanie indeksu NO_BARCODE do b (Przyczyna: format, 0 plików) **********.
LTFS17236I Zapisano indeks NO_BARCODE (b, **********).
LTFS11337I Aktualizuj flagę brudnego indeksu (0) — NO_BARCODE (0x0x1021081e0).
LTFS11100I Zapisywanie etykiety na partycji a.
LTFS11278I Zapisywanie indeksu na partycji a.
LTFS30808I READ_ATTR (0x8c) zwraca -20501.
LTFS30865I READ_ATTR zwraca nieprawidłowe pole w CDB (-20501) 0.
LTFS30836I Nie można odczytać atrybutu (-20501).
LTFS11336I Atrybut nie istnieje. Zignoruj ​​oczekiwany błąd.
LTFS17235I Zapisywanie indeksu NO_BARCODE do (Przyczyna: format, 0 plików) 9068025555.
LTFS17236I Zapisano indeks NO_BARCODE (a, **********).
LTFS15013I Volume UUID is: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

LTFS15019I Pojemność wolumenu wynosi 1425 GB.
LTFS30854I Ochrona bloku logicznego jest wyłączona.
LTFS15024I Nośnik został pomyślnie sformatowany.

Zamontuj sformatowaną taśmę:

sudo mkdir /Volumes/LTFS
sudo chmod 777 /Volumes/LTFS/
sudo ltfs /Volumes/LTFS

Dostajemy jeszcze kilka minut pracy i diagnostyki napędu:

307 LTFS14000I Uruchamianie LTFS, wersja LTFS 2.4.2.0 (10418), poziom logowania 2.
307 LTFS14058I Specyfikacja formatu LTFS wersja 2.4.0.
307 LTFS14104I Uruchamiany przez „ltfs /Volumes/LTFS/”.
307 LTFS14105I Ten plik binarny jest przeznaczony dla systemu Mac OS X.
307 LTFS14106I Wersja GCC to 4.2.1 kompatybilna z Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Wersja jądra: Darwin Kernel Wersja 19.4.0: środa 4 marca 22:28:40 PST 2020; katalog główny: xnu-6153.101.6 ~ 15/RELEASE_X86_64.
307 LTFS14063I Typ synchronizacji to „czas”, czas synchronizacji to 60 sekund.
307 LTFS17085I Wtyczka: Ładowanie zaplecza taśmy „iokit”.
307 LTFS17085I Wtyczka: Ładowanie „ujednoliconego” backendu iosched.
307 LTFS14095I Ustaw tryb zapisu w dowolnym miejscu urządzenia taśmowego, aby uniknąć wyrzucenia kasety.
307 LTFS30810I Otwieranie urządzenia poprzez sterownik iokit (0).
307 LTFS30814I Identyfikator dostawcy to IBM.
307 LTFS30815I Identyfikator produktu to „ULT3580-TD5”.
307 LTFS30816I Wersja oprogramowania sprzętowego to H976.
307 LTFS30817I Numer seryjny napędu to **********.
307 LTFS17160I Maksymalny rozmiar bloku urządzenia to 1048576.
307 LTFS11330I Ładowanie kasety.
307 LTFS30854I Ochrona bloku logicznego jest wyłączona.
307 LTFS11332I Ładowanie powiodło się.
307 LTFS17157I Zmiana ustawień napędu na tryb zapisu w dowolnym miejscu.
307 LTFS11005I Montaż woluminu.
307 LTFS30854I Ochrona bloku logicznego jest wyłączona.
307 LTFS17227I Atrybut taśmy: Dostawca = IBM.
307 LTFS17227I Atrybut taśmy: Nazwa aplikacji = LTFS.
307 LTFS17227I Atrybut taśmy: Wersja aplikacji = 2.4.2.0.
307 LTFS17227I Atrybut taśmy: Średnia Etykieta =.
307 LTFS17228I Atrybut taśmy: Identyfikator lokalizacji tekstu = 0x81.
307 LTFS17227I Atrybut taśmy: Kod kreskowy =.
307 LTFS17227I Atrybut taśmy: Wersja formatu aplikacji = 2.4.0.
307 LTFS17228I Atrybut taśmy: Stan blokady woluminu = 0x00.
307 LTFS17227I Atrybut taśmy: nazwa puli multimediów =.
307 LTFS14111I Początkowa konfiguracja została ukończona pomyślnie.
307 LTFS14112I Wywołaj polecenie „mount”, aby sprawdzić wynik końcowej instalacji.
307 LTFS14113I Określony punkt podłączenia zostanie wyświetlony na liście, jeśli się powiedzie.

I oto jest nasza wstążka na pulpicie o nazwie Test(ltfs)! Taśma bez nazwy zostanie nazwana OSXFUSE Volume 0 (ltfs).

Teraz możesz z nim pracować.

Apple Mac i fantazyjne urządzenia. LTO, SAS, Fibre Channel, eSATA

Ogólnie rzecz biorąc, należy pamiętać, że nie zaleca się nadużywania przeglądania zawartości katalogów taśm w oknach wyszukiwarki, ponieważ jest to niezwykle kosztowna operacja dla LTFS, ale lepiej pracować z poleceniami terminala lub po prostu resetować katalog kopii zapasowej zbiorczo na taśmę, jak pokazano w oknie powyżej.

Nawiasem mówiąc, istnieje specjalnie napisane narzędzie IBM ltfs_copy i jego klony, przeznaczone do bardziej wydajnego kopiowania między taśmą a dyskiem, ale jak dotąd autorowi nie udało się znaleźć ich w domenie publicznej za pomocą powierzchownego wyszukiwania.

Możesz odmontować taśmę za pomocą polecenia:

umount /Volumes/LTFS

lub po prostu wyrzuć go do kosza.

Co prawda w naturze istnieją pewnego rodzaju powłoki graficzne dla macOS, które ułatwiają te czynności, ale czy po takich perwersjach powinniśmy bać się wpisać kilka linijek w terminalu?

Jako efekt uboczny otrzymujemy możliwość podłączenia zewnętrznych dysków eSATA za pomocą kabla SAS/4*eSATA.

Apple Mac i fantazyjne urządzenia. LTO, SAS, Fibre Channel, eSATA

Źródło: www.habr.com

Dodaj komentarz