Apple Mac и фенси уреди. LTO, SAS, Fiber Channel, eSATA

Темата на оваа статија е поврзување на надворешни уреди со Mac преку SAS, Fiber Channel (FC), eSATA интерфејси. Веднаш да кажеме дека за да се реши проблемот со пристап до такви уреди, постои начин за здрава личност: изгради евтин компјутер, приклучи HBA SAS или FC контролерска картичка (на пример, едноставен LSI адаптер), поврзете ги вашите уреди со овој контролер, инсталирајте кој било Linux на компјутерот и работете од Mac преку мрежата. Но, ова е банално и неинтересно. Ќе одиме по хардкор рутата и ќе ги поврземе нашите уреди директно на Mac.

Што ни треба за ова:
– пристојна сума на пари за купување нова опрема или среќа на аукциите на eBay (каде што со малку труд може да ја купите потребната опрема од претходните генерации 10 пати поевтино од цената на списокот);
- Оваа статија.

За да работите со магнетна лента (сега речиси универзално претставена во формат LTO), мора да имате LTO лента погон (стример) или библиотека со касети. Ова е прилично скап уред за првично купување (од стотици илјади рубли), но вреди разумна сума пари кога се купува користен. Бидејќи генерациите на LTO се менуваат приближно на секои две години, а компатибилноста е ограничена на две генерации, секундарниот пазар е доста заситен со употребливи уреди стари четири или повеќе години, т.е. генерацијата пред последната и потоа. Ако купите нов уред за комерцијални цели, тогаш самите разбирате зошто ви е потребен. Ако сакате да купувате за вашиот дом и семејство, можете да ја разгледате оваа опција како начин за архивирање на информации (бидејќи самите медиуми се многу евтини за 1 гигабајт).

Почнувајќи од генерацијата LTO-5 (и делумно LTO-4), уредите за работа со магнетна лента се поврзани хардверски со компјутерот преку SAS или FC интерфејс (обично има две верзии на секој уред)

Од друга страна, Apple љубезно ни обезбедува USB-C интерфејс во нашиот Mac (работи користејќи ги протоколите USB, Thunderbolt 3 или DisplayPort), понекогаш етернет интерфејс, како и комерцијален Thunderbolt 3 - Thunderbolt 2 и Thunderbolt - FireWire 800 адаптери.

Застој? Не навистина. За среќа, Thunderbolt може да работи во режим PCIe и да дозволи PCIe картичките да се поврзат на ист начин како да се инсталирани директно во куќиштето на компјутерот. Поради ова, можно е секое проширување на хардверската конфигурација на Mac, под услов да има соодветен адаптер и драјвери.

Концептуално, наједноставниот начин да се реши проблемот е надворешна кутија за PCIe адаптери со Thunderbolt интерфејс (систем за проширување на картичката PCIe), во која можете да инсталирате SAS или FC Host адаптер за автобус (HBA). На пример, таквите кутии ги произведува компанијата Сонет и некои други. Тука има една нијанса: не секој контролер е погоден за нас, туку само оној што има драјвер за macOS. Има само неколку такви табли, а најевтините и најпопуларните (на пример, истиот LSI) не се вклучени во нивниот број. За среќа, Сонет се потруди да го состави табела за компатибилност PCIe картички со различни ОС преку Thunderbolt интерфејс.

Друго решение е да купите готов конвертер за интерфејс Thunderbolt - SAS или Thunderbolt - FC, кој, всушност, е готов склоп на кутија и контролер. Најпознатата компанија во оваа област ATTO, но има и производи од други компании.

Забележете дека не сите контролори на SAS и FC се сертифицирани за усогласување со стандардот LTO, бидејќи тоа само по себе чини пари. Некои производители директно пишуваат дека нивните контролери не се дизајнирани да работат со погони за лента.

За да ја комплетираме сликата, забележуваме дека mLogic произведува аранжман, кој е IBM LTO-8 погон во надворешно куќиште, во кое веднаш се интегрира конвертор SAS во Thunderbolt 3. Ова, сепак, е уште поегзотична работа од сè што е опишано погоре, особено според стандардите на нашиот регион. Се сомневам дека овој уред може дури и легално да се увезе во Русија (LTO-дисковите содржат криптографски карактеристики, а производителите како IBM и HP добиваат дозвола за увоз на FSB за секој модел поради оваа причина).

Следно, ќе разгледаме, како пример, специфичен сет на опрема, чиј сопственик стана авторот како резултат на неколку успешни аквизиции, но општиот принцип треба да се одржува за сите опции.

Значи, ја имаме следната опрема за работа со лента:
– Компјутер Apple Mac mini 2018 со macOS 10.15 Catalina, со USB-C порти со поддршка за Thunderbolt 3;
– Apple Thunderbolt 3 / Thunderbolt 2 адаптер;
– Apple Thunderbolt 2 кабел;
– ATTO ThunderLink SH 1068 интерфејс конвертор (2*Thunderbolt / 2*SAS-2);
– SAS кабел SFF-8088 – SFF-8088;
– лента погон LTO-5 IBM TS2350;
– Касети LTO-5, кертриџ за чистење.

Сега, како што велат, со сите овие работи ќе се обидеме да полетаме.

Од веб-страницата ATTO ја преземаме најновата верзија на двигателот ThunderLink SH 1068 (очигледно, за наша погодност, таа е комбинирана со драјверот SH 2068 и се наоѓа во делот 2068, кој е напишан само внатре во архивата со возачот) и ATTO алатка за конфигурација.

Apple Mac и фенси уреди. LTO, SAS, Fiber Channel, eSATA

На возачот, се разбира, му треба инсталација. Пред ваквите активности, авторот советува секогаш да направите слика од датотечниот систем APFS на дискот за подигање со командата

tmutil localsnapshot

или резервна копија од дискот за подигање, ако има HFS+. Никогаш не знаеш. Тогаш ќе биде лесно да се вратите од снимката.

Следно, неискусниот, но со должно внимание, несомнено ќе биде склон внимателно да ги прочита упатствата за инсталирање на драјверот ATTO и да ги следи. Како резултат - тадам! – добиваме оперативен систем кој виси во фазата на вчитување. Овде можеби ќе ни треба снимка од која можеме да се опоравиме со повикување на Time Machine од партицијата за обновување или од истата партиција за обновување можеме рачно да го избришеме заболениот kext од директориумот со екстензии на јадрото (авторот генерално не препорачува да го правите тоа).

Зошто се случува ова? Затоа што Apple се грижеше за нас. Во последните верзии на macOS, не можете лесно да внесете странски код во процесот на подигање. Добрите програмери на Apple го блокираа ова деструктивно однесување. Поточно, го блокираа на половина пат, кога очекувањата на возачот се реализираат, но самиот возач не е така, па сè само замрзнува.

Што треба да направи софистициран ум пред да инсталира драјвер? Прво, дајте ја командата:

csrutil status

Доколку како одговор на тоа добиеме:

Статус на заштита на интегритетот на системот: овозможено.

тогаш тоа значи дека добрите програмери на Apple се грижат за нас, така што ништо нема да ни успее додека не ја оневозможиме нивната прекрасна заштита. За да го направите ова, рестартирајте во партицијата за обновување (⌘R), повикајте го терминалот и издадете ја командата:

csrutil disable

После ова, ние се рестартираме во работниот систем и само тогаш го инсталираме драјверот, а во исто време и алатката за конфигурација ATTO (во принцип, алатката за конфигурација е потребна само за дијагностика и не е потребна при нормална работа). Попатно, на прашањето, ја потврдуваме овластувањето ATTO во системските поставки. По инсталацијата, можете повторно да се рестартирате во партицијата за обновување и да ја дадете командата

csrutil enable

Apple повторно се грижи за нас.

Сега имаме интерфејс поддржан од драјвер за надворешни SAS уреди (или FC, ако се користел FC конвертор). Но, како да се работи со лента на логично ниво?

Како што знае неискусниот, но ерудитниот ум, секој систем компатибилен со Unix поддржува погонски касети на ниво на јадрото и основните системски алатки, кои првенствено вклучуваат mt (управување со лента) и tar (архиватор што поддржува работа со архиви на лента) . Меѓутоа, што може да каже софистицираниот ум за ова? Секој систем компатибилен со Unix, освен macOS. Apple се погрижи за нас со отстранување на поддршката за уреди со лента од својот код.

Но, дали е навистина невозможно да се врати овој код со пренесување стандардни Unix услужни програми со отворен код на macOS? Добрата вест е што Толис (за кој не се поврзувам) веќе го направи ова во нивниот производ Tolis Tape Tools. Лошата вест е што споменатата компанија чини 399 долари за користење на резултатите од својата работа. Проценките за овој факт може да варираат, но авторот лично не е подготвен да плати некому 400 долари за шифра која е претежно напишана од сосема различни луѓе и е во отворена употреба од 1970-тите, и затоа авторот си го поставува ова прашање за себе. смета за затворена. (Патем, има бесплатен проект напуштен во нејасна состојба на Github IOSCSIT лента на истата тема).

За среќа, во светот постои корпорацијата IBM, чии комерцијални апетити се на сосема различни размери и затоа не се манифестираат во секоја ситница. Конкретно, го разви датотечен систем LTFS лента со отворен код, кој исто така е дистрибуиран за macOS.

Забелешката овде е дека различни производители на уреди за лента издаваат свои верзии на LTFS за поддршка на нивните уреди. Бидејќи авторот користи IBM лента, тој инсталираше LTFS од IBM. Податоците од трета страна може да бараат свои LTFS порти. И постои универзална имплементација на openLTFS на Github и Homebrew.

За нас е важно LTFS да ја користи функцијата за партиција на медиуми и затоа може да работи со уреди и касети почнувајќи од генерацијата LTO-5.

Значи, во нашиот случај, го преземаме IBM Spectrum Archive Single Drive Edition за macOS од веб-страницата на IBM, која ја вклучува имплементацијата LTFS. Без никакви авантури, го инсталираме производот користејќи сопствен инсталатер. Попатно го инсталира и FUSE пакетот, а во системските поставки ќе треба да потврди овластување на паметен програмер по име Анатол Помозов, од кого во овој случај зависи целиот IBM. Почит и почит кон овој човек.

Препорачливо е веднаш да ја напишете линијата во датотеката /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local:

опција single-drive sync_type=time@1

што одредува дека лентата е стандардно монтирана и баферот за снимање се ресетира по 1 минута неактивност (стандардно е 5 минути).

Apple Mac и фенси уреди. LTO, SAS, Fiber Channel, eSATA

Конечно, сè е подготвено за поврзување. Го поврзуваме синџирот: Mac – T3/T2 адаптер – Thunderbolt кабел – ATTO конвертор – SAS кабел – погон на лента (изборот на неколку порти на Mac, конверторот и погонот не е важен). Вклучете го напојувањето на конверторот. Вклучете го напојувањето на погонот на лентата. Чекаме погонот да ја заврши иницијализацијата според неговата индикација.

Ја даваме командата:

ltfs -o device_list

Ура! Добиваме (на вообичаениот дијагностички начин на IBM):

307 LTFS14000I LTFS стартување, LTFS верзија 2.4.2.0 (10418), евиденција ниво 2.
307 LTFS14058I LTFS Формат Спецификација верзија 2.4.0.
307 LTFS14104I Лансиран од „ltfs -o device_list“.
307 LTFS14105I Овој бинарен е изграден за Mac OS X.
307 LTFS14106I GCC верзијата е компатибилна со 4.2.1 Apple Clang 4.1 ((ознаки/Apple/clang-421.11.66)).
307 LTFS17087I Верзија на кернелот: Дарвин кернел верзија 19.4.0: сре 4 март 22:28:40 PST 2020 година; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS17085I Приклучок: Се вчитува заднината на лентата „iokit“.
Список на уреди со лента:.
Име на уред = 0, ID на добавувач = IBM, ID на производ = ULT3580-TD5, Сериски број = **********, Име на производ = [ULT3580-TD5].

Вметнете ја касетата, почекајте да се вчита и форматира:

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

Овде параметарот -d го одредува бројот на уредот (секогаш е нула ако е единствениот, но не може да се изостави во оваа команда), -n е името на лентата (можете да го испуштите), а параметарот -r бара поставување на содржината од .DS_Store датотеки што не надминуваат големина од 10 мегабајти, во делот индекс (т.е. наменети за директориуми) на лентата наместо во делот за податоци.

Мистериозниот живот започна во касетата. Чекаме неколку минути и го добиваме следниот одговор:

LTFS15000I Стартување на mkltfs, LTFS верзија 2.4.2.0 (10418), ниво на евиденција 2.
LTFS15041I Лансиран од „mkltfs -d 0 -nTest -r size=10M/name=.DS_Store“.
LTFS15042I Овој бинарен е изграден за Mac OS X.
LTFS15043I GCC верзијата е компатибилна со 4.2.1 Apple Clang 4.1 ((ознаки/Apple/clang-421.11.66)).
LTFS17087I верзија на кернелот: Дарвин кернел верзија 19.4.0: сре 4 март 22:28:40 PST 2020 година; root:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Уред за форматирање „0“.
LTFS15004I LTFS волуменски блокови: 524288.
LTFS15005I Политика за поставување партиции на индекс: големина=10M/име=.DS_Store.

LTFS11337I Ажурирање на индекс-валкано знаменце (1) - БЕЗ_БАРКОД (0x0x1021081e0).
Приклучок LTFS17085I: Се вчитува заднината на лентата „iokit“.
LTFS30810I Отворање уред преку двигателот на iokit (0).
ИД на продавач LTFS30814I е IBM.
ID на производ LTFS30815I е „ULT3580-TD5“.
Ревизијата на фирмверот LTFS30816I е H976.
Серијата LTFS30817I Drive е **********.
LTFS17160I Максималната големина на блокот на уредот е 1048576.
LTFS11330I Касета за полнење.
LTFS30854I Заштитата од логички блок е оневозможена.
LTFS11332I Вчитувањето е успешно.
LTFS17157I Промена на поставката на дискот во режим за пишување насекаде.
LTFS15049I Проверка на медиумот (приклучок).
LTFS30854I Заштитата од логички блок е оневозможена.
LTFS15010I Креирање на податочна партиција b на SCSI партиција 1.
LTFS15011I Креирање индексна партиција a на SCSI партиција 0.
LTFS17165I Ресетирање на пропорцијата на капацитетот на медиумот.
LTFS11097I Поделба на медиумот.
LTFS11100I Пишување етикета на партицијата б.
LTFS11278I Запишување индекс на партиција б.
LTFS30808I READ_ATTR (0x8c) враќа -20501.
LTFS30865I READ_ATTR враќа Невалидно поле во CDB (-20501) 0.
LTFS30836I Не можам да го прочитам атрибутот (-20501).
LTFS11336I Атрибутот не постои. Игнорирај ја очекуваната грешка.
LTFS17235I Индекс на запишување на NO_BARCODE во b (Причина: Формат, 0 датотеки) **********.
LTFS17236I Напиша индекс на NO_BARCODE (b, **********).
LTFS11337I Ажурирање на индекс-валкано знаменце (0) - БЕЗ_БАРКОД (0x0x1021081e0).
LTFS11100I Пишување етикета на партицијата a.
LTFS11278I Пишување индекс на партиција a.
LTFS30808I READ_ATTR (0x8c) враќа -20501.
LTFS30865I READ_ATTR враќа Невалидно поле во CDB (-20501) 0.
LTFS30836I Не можам да го прочитам атрибутот (-20501).
LTFS11336I Атрибутот не постои. Игнорирај ја очекуваната грешка.
LTFS17235I Запишување индекс на NO_BARCODE на a (Причина: Формат, 0 датотеки) 9068025555.
LTFS17236I Напиша индекс на NO_BARCODE (a, **********).
LTFS15013I Volume UUID is: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

Капацитетот на јачината на звукот LTFS15019I е 1425 GB.
LTFS30854I Заштитата од логички блок е оневозможена.
LTFS15024I Успешно форматиран медиум.

Монтирајте ја форматираната лента:

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

Добиваме уште неколку минути работа со возење и дијагностика:

307 LTFS14000I LTFS стартување, LTFS верзија 2.4.2.0 (10418), евиденција ниво 2.
307 LTFS14058I LTFS Формат Спецификација верзија 2.4.0.
307 LTFS14104I Лансиран од „ltfs /Volumes/LTFS/“.
307 LTFS14105I Овој бинарен е изграден за Mac OS X.
307 LTFS14106I GCC верзијата е компатибилна со 4.2.1 Apple Clang 4.1 ((ознаки/Apple/clang-421.11.66)).
307 LTFS17087I Верзија на кернелот: Дарвин кернел верзија 19.4.0: сре 4 март 22:28:40 PST 2020 година; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS14063I Типот на синхронизација е „време“, Времето на синхронизација е 60 секунди.
307 LTFS17085I Приклучок: Се вчитува заднината на лентата „iokit“.
307 LTFS17085I Приклучок: Се вчитува „унифициран“ iosched backend.
307 LTFS14095I Поставете го режимот за пишување насекаде на уредот за лента за да избегнете исфрлање на касетата.
307 LTFS30810I Отворање уред преку двигателот на iokit (0).
307 LTFS30814I ИД на продавач е IBM.
307 LTFS30815I ID на производ е „ULT3580-TD5“.
307 LTFS30816I Ревизијата на фирмверот е H976.
307 LTFS30817I Drive серија е **********.
307 LTFS17160I Максималната големина на блокот на уредот е 1048576.
307 LTFS11330I Касета за полнење.
307 LTFS30854I Заштитата од логички блок е оневозможена.
307 LTFS11332I Вчитувањето е успешно.
307 LTFS17157I Промена на поставката на уредот во режим за пишување насекаде.
307 LTFS11005I Монтирање на јачината на звукот.
307 LTFS30854I Заштитата од логички блок е оневозможена.
307 LTFS17227I Атрибут на лента: Добавувач = IBM.
307 LTFS17227I Атрибут на лента: Име на апликацијата = LTFS.
307 LTFS17227I Атрибут на лента: Верзија на апликација = 2.4.2.0.
307 LTFS17227I Атрибут на лента: Средна ознака =.
307 LTFS17228I Атрибут на лента: ИД за локализација на текст = 0x81.
307 LTFS17227I Атрибут на лента: Баркод =.
307 LTFS17227I Атрибут на лента: Формат на апликација Верзија = 2.4.0.
307 LTFS17228I Атрибут на лента: Статус за заклучување јачина = 0x00.
307 LTFS17227I Атрибут на лента: Име на медиумски базен =.
307 LTFS14111I Почетното поставување е успешно завршено.
307 LTFS14112I Повикај ја командата „mount“ за да го провериш резултатот од конечното поставување.
307 LTFS14113I Наведената точка за монтирање е наведена доколку е успешна.

И еве ја, нашата лента на работната површина, наречена Test(ltfs)! Неименуваната лента ќе се вика OSXFUSE Volume 0 (ltfs).

Сега можете да работите со него.

Apple Mac и фенси уреди. LTO, SAS, Fiber Channel, eSATA

Општо земено, треба да имате на ум дека препорачливо е да не се претера со прегледувањето на содржината на директориумите со касети во прозорците за пронаоѓање, бидејќи ова е неверојатно скапа операција за LTFS, но подобро е да работите со терминални команди или едноставно да се ресетирате директориумот за резервни копии на големо до лентата, како што е прикажано во прозорецот погоре.

Патем, постои специјално напишана алатка за IBM ltfs_copy и нејзините клонови, дизајнирани за поефикасно копирање помеѓу лента и диск, но досега авторот не успеал да ги најде во јавниот домен со површно пребарување.

Можете да ја одмонтирате лентата со командата:

umount /Volumes/LTFS

или само фрлете го во ѓубре.

Всушност, во природата има некакви графички обвивки за macOS за да ги олеснат овие дејства, но по таквите перверзии, дали треба да се плашиме да напишеме неколку линии во терминалот?

Како несакан ефект, добиваме можност да поврземе надворешни eSATA дискови преку SAS/4*eSATA кабел.

Apple Mac и фенси уреди. LTO, SAS, Fiber Channel, eSATA

Извор: www.habr.com

Додадете коментар