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

Tematem tego artykułu jest podłączanie urządzeń zewnętrznych do komputera Mac poprzez interfejsy SAS, Fibre Channel (FC) i eSATA. Powiedzmy sobie jasno od razu, że istnieje zdrowy sposób na rozwiązanie problemu dostępu do takich urządzeń: złóż tani komputer, podłącz kartę kontrolera HBA SAS lub FC (na przykład najprostszy adapter LSI), podłącz urządzenia do tego kontrolera, zainstaluj na komputerze dowolnego Linuksa i pracuj z Macintoshem przez sieć. Ale to jest banalne i nieciekawe. Pójdziemy bardziej ekstremalną drogą i podłączymy nasze urządzenia sami. bezpośrednio do Maca.

Czego potrzebujemy:
- przyzwoita suma pieniędzy na zakup nowego sprzętu lub szczęście na aukcjach na eBayu (gdzie przy odrobinie wysiłku można kupić potrzebny sprzęt poprzednich generacji 10 razy taniej niż w cenniku);
- Ten artykuł.

Aby pracować z taśmami magnetycznymi (obecnie niemal powszechnie reprezentowanymi przez format LTO), potrzebny jest napęd taśmowy (streamer) lub biblioteka taśm w standardzie LTO. Jest to dość drogie urządzenie, gdy się je kupi po raz pierwszy (kosztuje setki tysięcy rubli), ale gdy się je kupi używanym, jest warte rozsądną kwotę. Ponieważ generacje LTO zmieniają się mniej więcej co dwa lata, a kompatybilność jest ograniczona do dwóch generacji, rynek wtórny jest dość nasycony działającymi urządzeniami, które mają cztery lata lub więcej, tj. przedostatnią generację i więcej. Jeśli kupujesz nowe urządzenie w celach komercyjnych, to sam rozumiesz, dlaczego jest ci ono potrzebne. Jeśli chcesz kupić nośniki do domu i dla rodziny, możesz rozważyć tę opcję jako sposób archiwizacji informacji (jako że same nośniki są bardzo tanie w przeliczeniu na 1 gigabajt).

Począwszy od generacji LTO-5 (i częściowo LTO-4) urządzenia taśm magnetycznych są sprzętowo podłączone do komputera za pomocą interfejsu SAS lub FC (zwykle występują dwie wersje każdego urządzenia)

Z drugiej strony, Apple uprzejmie udostępnia nam interfejs USB-C w naszym Macu (działający za pośrednictwem protokołów USB, Thunderbolt 3 lub DisplayPort), czasami interfejs Ethernet, a także zastrzeżone adaptery Thunderbolt 3 – Thunderbolt 2 i Thunderbolt – FireWire 800.

Pat? Nie bardzo. Na szczęście magistrala Thunderbolt może pracować w trybie PCIe, co pozwala na podłączanie 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 Mac, pod warunkiem zastosowania odpowiedniego adaptera i sterowników.

Koncepcyjnie najprostszym sposobem rozwiązania problemu jest zastosowanie zewnętrznej obudowy dla kart PCIe z interfejsem Thunderbolt (system rozszerzeń kart PCIe), w której można zainstalować kontroler SAS lub FC (karta hosta, HBA). Na przykład takie pudełka produkuje firma Sonet i kilku innych. Jest tu jednak pewien haczyk: nie każdy kontroler będzie dla nas działał, tylko te ze sterownikiem macOSTakich płytek jest bardzo mało, a najtańsze i najpopularniejsze (na przykład te z tym samym LSI) nie należą do nich. Na szczęście Sonnet zadał sobie trud skompilowania tabela zgodności Karty PCIe z różnymi systemami operacyjnymi przez interfejs Thunderbolt.

Innym rozwiązaniem jest zakup gotowego konwertera interfejsu Thunderbolt-SAS lub Thunderbolt-FC, który w zasadzie jest gotowym zestawem składającym się z obudowy i kontrolera. Najbardziej znaną firmą w tym rejonie jest ATTOale istnieją również produkty innych firm.

Należy pamiętać, że nie wszystkie kontrolery SAS i FC posiadają certyfikat LTO, gdyż sam w sobie jest to kosztowne. Niektórzy producenci wprost piszą, że ich kontrolery nie są przeznaczone do współpracy z napędami taśmowymi.

Aby dopełnić obrazu, zauważmy, że firma mLogic produkuje устройство, który jest napędem IBM LTO-8 w zewnętrznej obudowie, w której jest natychmiast zintegrowany konwerter SAS na Thunderbolt 3. To jednak rzecz jeszcze bardziej egzotyczna niż wszystkie powyższe, szczególnie według standardów naszego regionu. Wątpię, aby to urządzenie można było legalnie importować do Rosji (napędy LTO zawierają narzędzia kryptograficzne, a 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 zakupów, ale ogólną zasadę należy zachować w przypadku wszystkich wariantów.

Tak więc do pracy z taśmą dysponujemy następującym sprzętem:
– komputer Apple Mac mini 2018 z macOS 10.15 Catalina, który posiada porty USB-C z obsługą Thunderbolt 3;
– adapter Apple Thunderbolt 3 / Thunderbolt 2;
– kabel Apple Thunderbolt 2;
– konwerter interfejsu ATTO ThunderLink SH 1068 (2xThunderbolt / 2xSAS-2);
– kabel SAS SFF-8088 – SFF-8088;
– napęd taśmowy LTO-5 IBM TS2350;
– kasety LTO-5, kaseta czyszcząca.

A teraz, jak to mówią, spróbujmy się wyrwać z tego całego syfu.

Pobierz najnowszą wersję sterownika ThunderLink SH 1068 ze strony internetowej ATTO (najwyraźniej, dla naszej wygody, jest ona połączona ze sterownikiem SH 2068 i znajduje się w sekcji 2068, która jest zapisana wyłącznie w archiwum ze sterownikiem) oraz narzędzie konfiguracyjne ATTO.

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

Sterownik oczywiście musi zostać zainstalowany. Przed wykonaniem takich czynności autor radzi zawsze wykonać migawkę systemu plików APFS dysku rozruchowego za pomocą polecenia

tmutil localsnapshot

lub kopię zapasową dysku rozruchowego, jeśli jest to HFS+. Nigdy nie wiadomo. Następnie łatwo będzie cofnąć migawkę.

Następnie, osoba o nawykowym, ale pilnym umyśle, niewątpliwie będzie skłonna uważnie przeczytać instrukcję instalacji sterownika ATTO i zastosować się do niej. Wynik jest taki - ta-dam! – otrzymujemy system operacyjny, który zawiesza się na etapie rozruchu. Tutaj może być potrzebna migawka, z której możemy przywrócić dane, wywołując Time Machine z partycji odzyskiwania, lub z tej samej partycji odzyskiwania możemy ręcznie usunąć uszkodzony kext z katalogu rozszerzeń jądra (autor generalnie nie zaleca tego).

Dlaczego tak się dzieje? Ponieważ Apple zadbało o nas. W najnowszych wersjach macOS Nie można po prostu wstrzyknąć obcego kodu do procesu rozruchu. Programiści Apple zablokowali to destrukcyjne zachowanie. A dokładniej, zablokowali je w połowie: gdy wstrzykuje się polecenie „driver wait”, ale sam sterownik nie, wszystko po prostu się zawiesza.

Co powinien zrobić człowiek o wyrafinowanym umyśle przed zainstalowaniem sterownika? Najpierw wydaj polecenie:

csrutil status

Jeżeli w odpowiedzi otrzymamy:

Status ochrony integralności systemu: włączona.

oznacza to, że dobrzy programiści Apple troszczą się o nas, więc nic nie zadziała, dopóki nie wyłączymy ich wspaniałej ochrony. Aby to zrobić, należy ponownie uruchomić komputer do partycji odzyskiwania (⌘R), wywołać terminal i wydać polecenie:

csrutil disable

Następnie należy ponownie uruchomić system operacyjny, a następnie zainstalować sterownik i jednocześnie narzędzie konfiguracyjne ATTO (w zasadzie narzędzie konfiguracyjne potrzebne jest tylko do diagnostyki i nie jest wymagane do normalnej pracy). Po drodze, na prośbę, potwierdzamy autoryzację firmy ATTO w ustawieniach systemu. Po instalacji możesz ponownie uruchomić komputer w sekcji 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 użyto konwertera FC). Ale jak pracować z taśmą na poziomie logicznym?

Jak wiadomo osobom niewtajemniczonym, ale wykształconym, każdy system zgodny z Unixem obsługuje napędy taśmowe na poziomie jądra i głównych narzędzi systemowych, do których zalicza się przede wszystkim mt (kontrola napędów taśmowych) i tar (archiwizator umożliwiający pracę z archiwami na taśmach). Cóż jednak może na ten temat wyjaśnić umysł wyrafinowany? Każdy system zgodny z Unixem, Oprócz macOS. Firma Apple zatroszczyła się o nas, usuwając ze swojego kodu obsługę urządzeń taśmowych.

Ale czy naprawdę nie da się przywrócić tego kodu, przenosząc standardowe, otwarte narzędzia Unix do macOSDobra wiadomość jest taka, że ​​Tolis (do którego nie będę linkował) zrobił to już w swoim produkcie Tolis Tape Tools. Zła wiadomość jest taka, że ​​firma pobiera 399 dolarów za korzystanie z jego prac. Szacunki mogą się różnić, ale autor osobiście nie jest skłonny zapłacić komuś 400 dolarów za kod, który został w większości napisany przez innych i jest w powszechnym użyciu od lat 1970., więc uważa tę sprawę za zamkniętą. (Przy okazji, na GitHubie znajduje się porzucony, słabo działający projekt open source). Taśma IOSCSITape na ten sam temat).

Na szczęście istnieje IBM, korporacja, której apetyty komercyjne mają zupełnie inną skalę i dlatego nie przejawiają się w błahych sprawach. W szczególności opracowała ona system plików taśmowych LTFS o otwartym kodzie źródłowym, który jest dystrybuowany między innymi dla macOS.

Istnieje jednak pewien haczyk: różni producenci urządzeń taśmowych wypuszczają własne wersje systemu LTFS obsługujące ich urządzenia. Ponieważ autor używa napędu taśmowego IBM, zainstalował także system LTFS od IBM. Inne dyski mogą wymagać własnych portów LTFS. Istnieje uniwersalna implementacja openLTFS na github i homebrew.

Dla nas istotne jest to, że LTFS korzysta z funkcji partycjonowania nośników i dlatego może współpracować z urządzeniami i kasetami począwszy od generacji LTO-5.

W naszym przypadku pobieramy produkt IBM Spectrum Archive Single Drive Edition ze strony internetowej IBM macOS, który obejmuje implementację LTFS. Instalujemy produkt bez żadnych komplikacji za pomocą własnego instalatora. Po drodze instaluje on również pakiet FUSE, choć w ustawieniach systemowych trzeba potwierdzić autoryzację inteligentnego programisty Anatola Pomozova, od którego w tym przypadku zależy cały system IBM. Szacunek i podziw dla tego człowieka.

Zaleca się natychmiastowe wpisanie następującego wiersza w pliku /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local:

opcja single-drive sync_type=time@1

który ustawia domyślne mocowanie taśmy z opróżnianiem bufora zapisu po 1 minucie bezczynności (domyślnie 5 minut).

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

Teraz 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 na Macu, konwerterze i napędzie nie jest istotny). Włączamy zasilanie przetwornicy. Włączamy zasilanie napędu taśmowego. Czekamy, aż inicjalizacja dysku zostanie ukończona zgodnie ze wskazaniem.

Wydajemy polecenie:

ltfs -o device_list

Hurra! Otrzymujemy (w typowy dla IBM sposób diagnostyczny):

307 LTFS14000I Uruchamianie LTFS, wersja LTFS 2.4.2.0 (10418), poziom logowania 2.
307 LTFS14058I Wersja specyfikacji formatu LTFS 2.4.0.
307 LTFS14104I Uruchomiono poleceniem „ltfs -o device_list”.
307 LTFS14105I Ten plik binarny jest przeznaczony dla systemu Mac OS X.
307 LTFS14106I Wersja GCC to 4.2.1 Zgodna z Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Wersja jądra: Wersja jądra Darwin 19.4.0: śr. 4 mar 22:28:40 PST 2020; korzeń: xnu-6153.101.6~15/RELEASE_X86_64.
307 Wtyczka LTFS17085I: Ł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].

Wkładamy kasetę, czekamy aż się załaduje i formatujemy:

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

Tutaj parametr -d określa numer dysku (zawsze zero, jeśli jest tylko jeden, ale nie można go pominąć w tym poleceniu), -n to nazwa taśmy (można ją pominąć), a parametr -r wymaga, aby zawartość plików .DS_Store, których rozmiar nie przekracza 10 megabajtów, była umieszczana w sekcji indeksu (czyli przeznaczonej dla katalogów) taśmy, a nie 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, wersja LTFS 2.4.2.0 (10418), poziom logowania 2.
LTFS15041I Uruchomiono poleceniem „mkltfs -d 0 -nTest -r size=10M/name=.DS_Store”.
LTFS15042I Ten plik binarny jest przeznaczony dla systemu Mac OS X.
Wersja GCC LTFS15043I to 4.2.1, zgodna z Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
LTFS17087I Wersja jądra: Wersja jądra Darwin 19.4.0: śr. 4 mar 22:28:40 PST 2020; korzeń: xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Formatowanie urządzenia '0'.
LTFS15004I Rozmiar bloku woluminu LTFS: 524288.
LTFS15005I Polityka rozmieszczenia partycji indeksu: rozmiar=10M/nazwa=.DS_Store.

LTFS11337I Aktualizacja flagi index-dirty (1) - NO_BARCODE (0x0x1021081e0).
Wtyczka LTFS17085I: Ładowanie zaplecza taśmy „iokit”.
LTFS30810I Otwieranie urządzenia za pomocą sterownika iokit (0).
LTFS30814I Identyfikator dostawcy: IBM.
Identyfikator produktu LTFS30815I to „ULT3580-TD5”.
Wersja oprogramowania sprzętowego LTFS30816I to H976.
Numer seryjny napędu LTFS30817I to **********.
LTFS17160I Maksymalny rozmiar bloku urządzenia wynosi 1048576.
LTFS11330I Ładowanie wkładu.
LTFS30854I Ochrona bloku logicznego jest wyłączona.
LTFS11332I Załadowano pomyślnie.
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 Zapis indeksu do 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 Zapis indeksu NO_BARCODE do b (Powód: Format, 0 plików) **********.
LTFS17236I Zapisano indeks NO_BARCODE (b, **********).
LTFS11337I Aktualizacja flagi index-dirty (0) - NO_BARCODE (0x0x1021081e0).
LTFS11100I Zapisywanie etykiety do partycji a.
LTFS11278I Zapis indeksu do 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 Zapis indeksu NO_BARCODE do (Powód: Format, 0 plików) 9068025555.
LTFS17236I Zapisano indeks NO_BARCODE (a, **********).
LTFS15013I Volume UUID is: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

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

Zamontuj sformatowaną taśmę:

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

Mamy jeszcze parę minut pracy napędu i diagnostyki:

307 LTFS14000I Uruchamianie LTFS, wersja LTFS 2.4.2.0 (10418), poziom logowania 2.
307 LTFS14058I Wersja specyfikacji formatu LTFS 2.4.0.
307 LTFS14104I Uruchomiono za pomocą „ltfs /Volumes/LTFS/”.
307 LTFS14105I Ten plik binarny jest przeznaczony dla systemu Mac OS X.
307 LTFS14106I Wersja GCC to 4.2.1 Zgodna z Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Wersja jądra: Wersja jądra Darwin 19.4.0: śr. 4 mar 22:28:40 PST 2020; korzeń: xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS14063I Typ synchronizacji to „czas”, czas synchronizacji wynosi 60 sek.
307 Wtyczka LTFS17085I: Ładowanie zaplecza taśmy „iokit”.
307 LTFS17085I Wtyczka: Ładowanie „zunifikowanego” zaplecza iosched.
307 LTFS14095I Ustawia tryb zapisu w dowolnym miejscu urządzenia taśmowego, aby zapobiec wysunięciu kasety.
307 LTFS30810I Otwieranie urządzenia za pomocą sterownika iokit (0).
307 LTFS30814I Identyfikator dostawcy: 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 wynosi 1048576.
307 LTFS11330I Ładowanie naboju.
307 LTFS30854I Ochrona bloku logicznego jest wyłączona.
307 LTFS11332I Załadowanie powiodło się.
307 LTFS17157I Zmiana ustawień napędu na tryb zapisu w dowolnym miejscu.
307 LTFS11005I Montowanie 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: Etykieta nośnika =.
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 nośników =.
307 LTFS14111I Początkowa konfiguracja zakończona pomyślnie.
307 LTFS14112I Wywołuję polecenie „mount”, aby sprawdzić wynik końcowej konfiguracji.
307 LTFS14113I W przypadku powodzenia podany jest punkt montowania.

I oto mamy naszą taśmę na pulpicie, nazwaną Test(ltfs)! Taśma bez nazwy będzie nosiła nazwę OSXFUSE Volume 0 (ltfs).

Teraz możesz z tym pracować.

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

Zasadniczo należy pamiętać, że nie zaleca się nadużywania funkcji przeglądania zawartości katalogów taśmowych w oknach Findera, gdyż jest to niezwykle kosztowna operacja dla systemu LTFS. Lepiej jest pracować przy użyciu poleceń terminalowych lub po prostu zrzucić cały katalog kopii zapasowej 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 pomiędzy taśmą a dyskiem, ale jak dotąd autorowi nie udało się znaleźć ich w domenie publicznej podczas pobieżnych poszukiwań.

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

umount /Volumes/LTFS

albo po prostu wyrzuć do kosza.

W rzeczywistości w naturze istnieją pewne powłoki graficzne dla macOS aby ułatwić sobie 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 poprzez kabel SAS/4*eSATA.

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

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

Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster