Apple Mac a podivná zařízení. LTO, SAS, Fibre Channel, eSATA

Tématem tohoto článku je připojení externích zařízení k Macu prostřednictvím rozhraní SAS, Fibre Channel (FC) a eSATA. Hned na začátek si řekněme, že existuje jednoduchý způsob, jak k těmto zařízením přistupovat: poskládat levný PC, vložit do něj řadič HBA SAS nebo FC (například nejzákladnější adaptér LSI), připojit k tomuto řadiči svá zařízení, nainstalovat na PC jakýkoliv Linux a pracovat z Macu přes síť. Ale to je nudné a nezajímavé. Půjdeme hardcore cestou a budeme připojovat naše zařízení přímo k Macu.

Co k tomu budeme potřebovat:
– slušné množství finančních prostředků na nákup nové techniky, nebo štěstí při aukcích na eBay (kde je možné s malým úsilím koupit požadované zařízení předchozích generací až 10krát levněji než v ceníku);
– tento článek.

K práci s magnetickou páskou (dnes téměř všude zastoupenou formátem LTO) je třeba mít páskový mechanizmus (streamer) nebo páskovou knihovnu standardu LTO. Je to poměrně drahé zařízení při prvním nákupu (od stovek tisíc korun), ale za rozumné peníze při koupi z druhé ruky. Jelikož se generace LTO mění přibližně každý druhý rok a kompatibilita je omezena na dvě generace, trh s použitými zařízeními je dostatečně nasycen funkčními zařízeními, která jsou stará čtyři a více let, tedy ze starších generací. Pokud kupujete nové zařízení pro komerční účely, sami víte, proč ho potřebujete. Pokud chcete koupit pro domácnost a rodinu, můžete tento variant zvážit jako způsob archivace informací (protože samotná média jsou velmi levná na 1 gigabyte).

Od generace LTO-5 (a částečně LTO-4) se zařízení pro práci s magnetickou páskou připojují k počítači hardwarově prostřednictvím rozhraní SAS nebo FC (obvykle existují dvě varianty provedení každého zařízení)

Na druhou stranu nám společnost Apple laskavě poskytuje v našem Macu rozhraní USB-C (pracující podle protokolů USB, Thunderbolt 3 nebo DisplayPort), občas rozhraní Ethernet, stejně jako vlastní adaptéry Thunderbolt 3 – Thunderbolt 2 a Thunderbolt – FireWire 800.

Bezvýchodná situace? Ne tak docela. Naštěstí může Thunderbolt fungovat v režimu PCIe a umožňuje připojení PCIe karet stejným způsobem, jako kdyby byly nainstalovány přímo uvnitř počítačové skříně. Díky tomu je možné jakékoli rozšíření hardwarové konfigurace Macu, pokud existují odpovídající adaptéry a ovladače.

Konceptuálně nejjednodušším způsobem, jak vyřešit tento úkol, je externí box pro PCIe adaptéry s Thunderbolt interface (systém rozšíření karet PCIe), do kterého lze nainstalovat řídič (Host bus adapter, HBA) SAS nebo FC. Například takové boxy vyrábí firma Sonnet a někteří další. Je tu však nuance: vhodný není každý řadič, ale pouze ten, který má ovladač pro macOS. Takových karet je velmi málo a ty nejlevnější a nejpopulárnější (například ty stejné LSI) mezi ně nepatří. Naštěstí firma Sonnet dala dohromady tabulku kompatibility karet PCIe s různými operačními systémy prostřednictvím rozhraní Thunderbolt.

Dalším způsobem je zakoupení hotového Thunderbolt – SAS nebo Thunderbolt – FC konvertoru, který v podstatě představuje již hotovou sestavu boxu a řadiče. Nejznámější v tomto směru je firma ATTO, ale objevují se i výrobky od jiných firem.

Upozorňujeme, že ne všechny SAS a FC řadiče byly certifikovány podle standardu LTO, protože to samé o sobě stojí peníze. Někteří výrobci přímo uvádějí, že jejich řadiče nejsou určeny pro práci s páskovými úložišti.

Pro úplnost zmíníme, že firma mLogic vyrábí zařízení, které představuje úložiště IBM LTO-8 v externím pouzdru, do kterého je okamžitě integrován konvertor SAS do Thunderbolt 3. To je však věc ještě více exotická než všechno výše popsané, zvlášť podle měřítek našich končin. Pochybuji, že toto zařízení lze legálně dovézt do Ruska (úložiště LTO obsahují kryptografické prostředky a výrobci, jako IBM a HP, z tohoto důvodu získávají pro každý model povolení FSB na import).

Dále se podíváme na konkrétní sadu vybavení, jejímž se autorem stal vlastník v důsledku několika úspěšných nákupů, ale obecný princip by měl zůstat stejný pro všechny varianty.

Takže máme pro práci s páskou následující vybavení:
– počítač Apple Mac mini 2018 s macOS 10.15 Catalina, který má porty USB-C s podporou Thunderbolt 3;
– adaptér Apple Thunderbolt 3 / Thunderbolt 2;
– kabel Apple Thunderbolt 2;
– převodník rozhraní ATTO ThunderLink SH 1068 (2*Thunderbolt / 2*SAS-2);
– kabel SAS SFF-8088 – SFF-8088;
– páskový disk LTO-5 IBM TS2350;
– kazety LTO-5, čisticí kazeta.

Teď, jak se říká, s celou touto věcí se pokusíme vzlétnout.

Stáhneme z webu ATTO nejnovější verzi ovladače ThunderLink SH 1068 (zřejmě je pro naše pohodlí sloučena s ovladačem SH 2068 a nachází se v sekci 2068, o čemž je zmínka pouze v samotném archivu s ovladačem) a konfigurační utilitu ATTO.

Apple Mac a podivná zařízení. LTO, SAS, Fibre Channel, eSATA

Ovladač, jak jinak, potřebuje instalaci. Před takovými akcemi autor doporučuje vždy udělat snapshot souborového systému APFS spouštěcího disku příkazem

tmutil localsnapshot

nebo zálohu spouštěcího disku, pokud je tam HFS+. Co kdyby něco. Pak bude snadné se z snapshotu vrátit.

Dále nezkušený, ale projevující náležitou opatrnost a důvtip, se bezpochyby skloní k tomu, aby pečlivě přečetl instrukce ATTO k instalaci ovladače a provedl je. Výsledkem je – tadá! – operační systém, který visí na etapě spuštění. Zde nám může pomoci snapshot, ze kterého se můžeme obnovit, když vyvoláme Time machine z oddílu pro obnovu, nebo můžeme dokonce ručně odstranit problematický kext z adresáře rozšíření jádra (autor obecně nedoporučuje tak činit).

Proč se to děje? Protože se o nás postarala firma Apple. V posledních verzích macOS nelze jen tak vzít a vložit cizí kód do procesu spuštění. Dobří programátoři Apple zablokovali takové destruktivní chování. Přesněji řečeno, zablokovali to napůl, když se čekání na ovladač injikuje, ale samotný ovladač ne, a tak všechno prostě zamrzne.

Co by měl dělat zkušený mysl před instalací ovladače? Především dát příkaz:

csrutil status

Pokud na něj dostaneme odpověď:

Status ochrany integrity systému: povoleno.

to znamená, že o nás dobří programátoři Apple pečují, takže nic nevyjde, dokud jejich skvělou ochranu nevypneme. K tomu se restartujeme do režimu obnovení (⌘R), vyvoláme terminál a dáme příkaz:

csrutil disable

Poté se restartujeme do pracovní systém, a teprve tehdy nainstalujeme ovladač a zároveň konfigurační utilitu ATTO (v zásadě, konfigurační utilita je potřebná pouze pro diagnostiku a není vyžadována při běžném provozu). Po cestě, když to bude vyžadováno, potvrďte v systémových nastaveních autorizaci firmy ATTO. Po instalaci se můžete znovu restartovat do režimu obnovení a dát příkaz

csrutil enable

Apple se o nás opět stará.

Nyní máme podporovaný ovladačem rozhraní k externím SAS zařízením (nebo FC, pokud by byl použit převodník FC). Ale jak pracovat s páskou na logické úrovni?

Jak je známo neznalému, ale erudovanému, je jakýkoli Unix-compatible systém podporuje páskové jednotky na úrovni jádra a základních systémových utilit, mezi které patří především mt (řízení páskového mechanismu) a tar (archivátor s podporou práce s archivy na pásce). Ale co by na to poznamenal erudovaný myslitel? Jakýkoli Unix-compatible systém, kromě macOS. Společnost Apple se o nás postarala tím, že odstranila podporu páskových zařízení ze svého kódu.

Ale nelze vrátit tento kód portováním standardních open-source utilit Unix do macOS? Dobrou zprávou je, že to již udělala firma Tolis (odkaz na kterou zde neuvádím) ve svém produktu Tolis Tape Tools. Špatnou zprávou je, že používání výsledků její práce je firmou oceněno na 399 USD. Hodnocení tohoto faktu mohou být různá, ale osobně autor není připraven platit někomu 400 dolarů za kód, který byl většinou napsán zcela jinými lidmi a byl od 70. let minulého století veřejně dostupný, a proto považuje tuto otázku za uzavřenou. (Mimochodem, na GitHubu je opuštěný projekt IOSCSITape na stejné téma).

Naštěstí existuje korporace IBM, jejíž obchodní apetity mají zcela jiné rozměry, a proto se neprojevují v každé drobnosti. V této souvislosti vyvinula pásek souborový systém LTFS s otevřeným zdrojovým kódem, který je distribuován i pro macOS.

Existuje nuance, že různí výrobci pásek vydávají své vlastní verze LTFS, podporující jejich zařízení. Protože autor používá páskový disk IBM, nainstaloval LTFS od IBM. Pro disky jiných značek mohou být potřeba jejich vlastní LTFS porty. A existuje univerzální implementace openLTFS na GitHubu a Homebrew.

Důležité je, že LTFS využívá funkci partitioning média, a proto může fungovat se zařízeními a kazetami počínaje generací LTO-5.

Takže v našem případě stahujeme z webu IBM produkt IBM Spectrum Archive Single Drive Edition pro macOS, který zahrnuje implementaci LTFS. Bez jakýchkoli problémů instalujeme produkt jeho vlastním instalátorem. Během instalace se také nainstaluje balíček FUSE, přičemž v systémových nastaveních je třeba potvrdit autorizaci chytrého programátora jménem Anatol Pomozov, od které závisí celá IBM. Úcta a respekt tomuto člověku.

Je vhodné hned v souboru /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local napsat řádek:

option single-drive sync_type=time@1

což nastaví připojení pásky jako výchozí s vyprázdněním zapisovacího buffru po 1 minutě neaktivity (výchozí je 5 minut).

Apple Mac a podivná zařízení. LTO, SAS, Fibre Channel, eSATA

Nakonec je vše připraveno k připojení. Připojujeme řetězec: Mac – adaptér T3/T2 – kabel Thunderbolt – převodník ATTO – kabel SAS – páskový disk (výběr z několika portů na Macu, převodníku a disku není podstatný). Zapneme napájení převodníku. Zapneme napájení páskového disku. Čekáme na dokončení inicializace disku podle jeho indikace.

Dáme příkaz:

ltfs -o device_list

Hurá! Získáváme (v tradiční diagnostické manéře IBM):

307 LTFS14000I LTFS začíná, verze LTFS 2.4.2.0 (10418), úroveň protokolu 2.
307 LTFS14058I Specifikace formátu LTFS verze 2.4.0.
307 LTFS14104I Spuštěno pomocí „ltfs -o device_list“.
307 LTFS14105I Tento binární soubor je sestaven pro Mac OS X.
307 LTFS14106I GCC verze je 4.2.1 Kompatibilní s Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Verze jádra: Darwin Kernel Version 19.4.0: Stř 4. Bře 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS17085I Plugin: Načítání „iokit“ páskového backendu.
Seznam páskových zařízení:
Zařízení Název = 0, ID výrobce = IBM, ID produktu = ULT3580-TD5, Sériové číslo = **********, Název produktu = [ULT3580-TD5].

Vkládáme kazetu, čekáme na načtení a formátujeme:

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

Zde parametr -d určuje číslo úložného zařízení (vždy nula, pokud je jedno, ale v tomto příkazu ho nelze vynechat), -n – název pásky (není nutné uvádět), a parametr -r vyžaduje umístění obsahu souborů .DS_Store, které nepřesahují velikost 10 megabajtů, do indexové (t.j. určené pro katalogy) části pásky místo části dat.

Na páskovém úložišti začíná tajemný život. Čekáme pár minut, dostáváme odpověď:

LTFS15000I Startup mkltfs, verze LTFS 2.4.2.0 (10418), úroveň protokolu 2.
LTFS15041I Spuštěno příkazem «mkltfs -d 0 -nTest -r size=10M/name=.DS_Store».
LTFS15042I Tento binární soubor je vytvořen pro Mac OS X.
LTFS15043I Verze GCC je 4.2.1, kompatibilní s Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
LTFS17087I Verze jádra: Darwin Kernel Version 19.4.0: Stř 4. března 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Formátování zařízení ‘0’.
LTFS15004I Bloková velikost LTFS svazku: 524288.
LTFS15005I Politika umístění indexové partition: size=10M/name=.DS_Store.

LTFS11337I Aktualizace příznaku index-dirty (1) — NO_BARCODE (0x0x1021081e0).
LTFS17085I Plugin: Načítání pozadí pásky «iokit».
LTFS30810I Otevírání zařízení přes ovladač iokit (0).
LTFS30814I Identifikační číslo výrobce je IBM.
LTFS30815I Identifikační číslo produktu je ‘ULT3580-TD5 ‘.
LTFS30816I Revize firmwaru je H976.
LTFS30817I Sériové číslo jednotky je **********.
LTFS17160I Maximální bloková velikost zařízení je 1048576.
LTFS11330I Načítání kazety.
LTFS30854I Ochrana logického bloku je zakázaná.
LTFS11332I Načtení úspěšné.
LTFS17157I Změna nastavení jednotky na režim zápisu kdekoli.
LTFS15049I Kontrola média (montáž).
LTFS30854I Ochrana logického bloku je zakázaná.
LTFS15010I Vytváření datové partition b na SCSI partition 1.
LTFS15011I Vytváření indexové partition a na SCSI partition 0.
LTFS17165I Resetování kapacity média.
LTFS11097I Rozdělení média.
LTFS11100I Zápis štítku do partition b.
LTFS11278I Zápis indexu do partition b.
LTFS30808I READ_ATTR (0x8c) vrací -20501.
LTFS30865I READ_ATTR vrací Neplatné pole v CDB (-20501) 0.
LTFS30836I Nelze přečíst atribut (-20501).
LTFS11336I Atribut neexistuje. Ignorujte očekávanou chybu.
LTFS17235I Zápis indexu NO_BARCODE do b (Důvod: Formát, 0 souborů) **********.
LTFS17236I Zapsán index NO_BARCODE (b, **********).
LTFS11337I Aktualizace příznaku index-dirty (0) — NO_BARCODE (0x0x1021081e0).
LTFS11100I Zápis štítku do partition a.
LTFS11278I Zápis indexu do partition a.
LTFS30808I READ_ATTR (0x8c) vrací -20501.
LTFS30865I READ_ATTR vrací Neplatné pole v CDB (-20501) 0.
LTFS30836I Nelze přečíst atribut (-20501).
LTFS11336I Atribut neexistuje. Ignorujte očekávanou chybu.
LTFS17235I Zápis indexu NO_BARCODE do a (Důvod: Formát, 0 souborů) 9068025555.
LTFS17236I Zapsán index NO_BARCODE (a, **********).
LTFS15013I UUID svazku je: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

LTFS15019I Kapacita svazku je 1425 GB.
LTFS30854I Ochrana logického bloku je zakázaná.
LTFS15024I Média byla úspěšně naformátována.

Mountujeme naformátovanou pásku:

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

Dostáváme ještě pár minut provozu zařízení, diagnostiku:

307 LTFS14000I LTFS začíná, verze LTFS 2.4.2.0 (10418), úroveň protokolu 2.
307 LTFS14058I Specifikace formátu LTFS verze 2.4.0.
307 LTFS14104I Spuštěno příkazem «ltfs /Volumes/LTFS/».
307 LTFS14105I Tento binární soubor je sestaven pro Mac OS X.
307 LTFS14106I GCC verze je 4.2.1 Kompatibilní s Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Verze jádra: Darwin Kernel Version 19.4.0: Stř 4. Bře 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS14063I Typ synchronizace je «time», časy synchronizace jsou 60 s.
307 LTFS17085I Plugin: Načítání „iokit“ páskového backendu.
307 LTFS17085I Plugin: Načítání pozadí iosched «unified».
307 LTFS14095I Nastartujte páskovou jednotku v režimu zápisu kdekoli, abyste se vyhnuli vysunutí kazety.
307 LTFS30810I Otevírání zařízení přes ovladač iokit (0).
307 LTFS30814I Identifikační číslo výrobce je IBM.
307 LTFS30815I Identifikační číslo produktu je ‘ULT3580-TD5 ‘.
307 LTFS30816I Revize firmwaru je H976.
307 LTFS30817I Sériové číslo jednotky je **********.
307 LTFS17160I Maximální bloková velikost zařízení je 1048576.
307 LTFS11330I Načítání kazety.
307 LTFS30854I Ochrana logického bloku je zakázaná.
307 LTFS11332I Načtení úspěšné.
307 LTFS17157I Změna nastavení jednotky na režim zápisu kdekoli.
307 LTFS11005I Připojení svazku.
307 LTFS30854I Ochrana logického bloku je zakázaná.
307 LTFS17227I Atribut pásky: Dodavatel = IBM.
307 LTFS17227I Atribut pásky: Název aplikace = LTFS.
307 LTFS17227I Atribut pásky: Verze aplikace = 2.4.2.0.
307 LTFS17227I Atribut pásky: Označení média =.
307 LTFS17228I Atribut pásky: ID lokalizace textu = 0x81.
307 LTFS17227I Atribut pásky: Čárový kód =.
307 LTFS17227I Atribut pásky: Verze formátu aplikace = 2.4.0.
307 LTFS17228I Atribut pásky: Stav zamčení svazku = 0x00.
307 LTFS17227I Atribut pásky: Název mediálního poolu =.
307 LTFS14111I Počáteční nastavení bylo úspěšně dokončeno.
307 LTFS14112I Vyvolejte příkaz 'mount', abyste zkontrolovali výsledek konečného nastavení.
307 LTFS14113I Specifikovaný připojovací bod je uveden, pokud se to podařilo.

A tady je naše páska na stole s názvem Test(ltfs)! Bez názvu páska dostane název OSXFUSE Volume 0 (ltfs).

Nyní s ní můžeme pracovat.

Apple Mac a podivná zařízení. LTO, SAS, Fibre Channel, eSATA

Musíme mít na paměti, že je lepší se vyhnout prohlížení obsahu adresářů pásek v oknech Finderu, protože to je pro LTFS neuvěřitelně náročná operace. Raději používejte terminálové příkazy nebo jednoduše vyhoďte zálohovaný adresář na pásku hromadně, jak je znázorněno v okně výše.

Existuje, mimochodem, speciálně napsaná IBM utilita ltfs_copy a její klony, určené pro efektivnější kopírování mezi páskou a diskem, ale zatím se autorovi nepodařilo najít je v otevřeném přístupu při povrchovém vyhledávání.

Pásku lze odpojit příkazem:

umount /Volumes/LTFS

nebo ji prostě hodit do koše.

Existují nějaké grafické rozhraní pro macOS pro zjednodušení těchto činností, ale máme se my, po těchto zvratech, bát napsat pár řádků do terminálu?

Jako vedlejší důsledek získáváme možnost připojit externí disky eSATA přes kabel SAS/4*eSATA.

Apple Mac a podivná zařízení. LTO, SAS, Fibre Channel, eSATA

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster