Apple Mac и луксозни устройства. LTO, SAS, Fibre Channel, eSATA

Темата на тази статия е свързване на външни устройства към Mac чрез SAS, Fibre 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), понякога Ethernet интерфейс, както и собствени Thunderbolt 3 - Thunderbolt 2 и Thunderbolt - FireWire 800 адаптери.

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

Концептуално най-простият начин за решаване на проблема е външна кутия за PCIe адаптери с интерфейс Thunderbolt (система за разширение на PCIe карта), в която можете да инсталирате SAS или FC Host bus адаптер (HBA). Например, такива кутии се произвеждат от компанията сонет и някои други. Тук има нюанс: не всеки контролер е подходящ за нас, а само този, който има драйвер за macOS. Има само няколко такива платки, а най-евтините и популярни (например същата LSI) не са включени в техния брой. За щастие Sonnet си направи труда да компилира таблица за съвместимост 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, Fibre 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 (с който не се свързвам) вече е направил това в своя продукт Tolis Tape Tools. Лошата новина е, че споменатата компания струва $399, за да използва резултатите от работата си. Оценките на този факт може да варират, но лично авторът не е готов да плати на някого 400 долара за код, който е написан предимно от напълно различни хора и е в открита употреба от 1970 г. и следователно авторът задава този въпрос за себе си счита за затворен. (Между другото, има безплатен проект, изоставен в неясно състояние в Github IOSCSITape по същата тема).

За щастие в света има корпорация 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:

опция за едно устройство sync_type=time@1

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

Apple Mac и луксозни устройства. LTO, SAS, Fibre 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 Версия на ядрото: Версия на ядрото на Darwin 19.4.0: сряда, 4 март 22:28:40 PST 2020 г.; корен: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 Версия на ядрото: Версия на ядрото на Darwin 19.4.0: сряда, 4 март, 22:28:40 PST 2020 г.; корен:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Устройство за форматиране '0'.
LTFS15004I Размер на блока на тома LTFS: 524288.
LTFS15005I Правила за разполагане на индексен дял: размер=10M/име=.DS_Store.

LTFS11337I Актуализирайте флага за мръсен индекс (1) - NO_BARCODE (0x0x1021081e0).
Добавка LTFS17085I: Зареждане на бекенда на лентата „iokit“.
LTFS30810I Отваряне на устройство чрез iokit драйвер (0).
LTFS30814I ID на доставчика е IBM.
LTFS30815I ID на продукта е „ULT3580-TD5“.
LTFS30816I Ревизията на фърмуера е H976.
LTFS30817I Серийният номер на устройството е **********.
LTFS17160I Максималният размер на блока на устройството е 1048576.
LTFS11330I Зареждаща касета.
LTFS30854I Защитата на логическия блок е деактивирана.
LTFS11332I Зареждането е успешно.
LTFS17157I Промяна на настройката на устройството в режим на писане навсякъде.
LTFS15049I Проверка на носителя (монтиране).
LTFS30854I Защитата на логическия блок е деактивирана.
LTFS15010I Създаване на дял с данни b на SCSI дял 1.
LTFS15011I Създаване на индексен дял a на SCSI дял 0.
LTFS17165I Нулиране на пропорцията на капацитета на носителя.
LTFS11097I Разделяне на носителя.
LTFS11100I Записване на етикет в дял b.
LTFS11278I Индекс за запис в дял b.
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) - NO_BARCODE (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 Версия на ядрото: Версия на ядрото на Darwin 19.4.0: сряда, 4 март 22:28:40 PST 2020 г.; корен:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS14063I Типът на синхронизиране е “време”, времето за синхронизиране е 60 сек.
307 LTFS17085I Добавка: Зареждане на задната част на лентата „iokit“.
307 LTFS17085I Добавка: Зареждане на „унифициран“ iosched бекенд.
307 LTFS14095I Задайте режим на запис навсякъде на лентовото устройство, за да избегнете изхвърляне на касетата.
307 LTFS30810I Отваряне на устройство чрез iokit драйвер (0).
307 LTFS30814I ID на доставчика е IBM.
307 LTFS30815I ID на продукта е „ULT3580-TD5“.
307 LTFS30816I Ревизията на фърмуера е H976.
307 LTFS30817I Серийният номер на устройството е **********.
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 Том 0 (ltfs).

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

Apple Mac и луксозни устройства. LTO, SAS, Fibre Channel, eSATA

Като цяло трябва да имате предвид, че е препоръчително да не прекалявате с преглеждането на съдържанието на директориите на лентата в прозорците на търсачката, тъй като това е невероятно скъпа операция за LTFS, но е по-добре да работите с терминални команди или просто да нулирате резервната директория групово към лентата, както е показано в прозореца по-горе.

Между другото, има специално написана помощна програма на IBM ltfs_copy и нейните клонове, предназначени за по-ефективно копиране между лента и диск, но досега авторът не е успял да ги намери в публичното пространство с повърхностно търсене.

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

umount /Volumes/LTFS

или просто го изхвърлете в кошчето.

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

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

Apple Mac и луксозни устройства. LTO, SAS, Fibre Channel, eSATA

Източник: www.habr.com

Добавяне на нов коментар