Apple Mac et appareils fantaisie. LTO, SAS, Fibre Channel, eSATA

Le sujet de cet article est de connecter des périphériques externes au Mac via des interfaces SAS, Fibre Channel (FC), eSATA. Faites immédiatement une réservation pour résoudre le problème d'accès à de tels appareils, il y a une manière saine: assembler un PC bon marché, y coller une carte contrôleur HBA SAS ou FC (par exemple, l'adaptateur LSI le plus simple), connecter vos appareils à ce contrôleur, installer n'importe quel Linux sur le PC et travailler depuis Mac via le réseau. Mais c'est banal et sans intérêt. Nous allons suivre le chemin du hardcore et connecter nos appareils directement au Mac.

Ce dont nous aurons besoin pour cela:
- une somme d'argent décente pour acheter de nouveaux équipements, ou bonne chance dans les enchères sur eBay (où, avec un peu d'effort, vous pouvez acheter l'équipement requis des générations précédentes 10 fois moins cher que la liste de prix);
- Cet article.

Pour travailler avec une bande magnétique (actuellement représentée presque universellement par le format LTO), vous devez disposer d'un lecteur de bande (lecteur de bande) ou d'une bibliothèque de bandes de la norme LTO. Il s'agit d'un appareil assez cher pour l'achat initial (à partir de centaines de milliers de roubles), mais qui en vaut la peine lors de l'achat d'un d'occasion. Étant donné que les générations LTO changent environ tous les deux ans et que la compatibilité est limitée à deux générations, le marché secondaire est suffisamment saturé d'appareils utilisables de quatre ans ou plus, c'est-à-dire l'année dernière et au-delà. Si vous achetez un nouvel appareil à des fins commerciales, vous comprenez vous-même pourquoi vous en avez besoin. Si vous souhaitez acheter pour la maison et la famille, vous pouvez considérer cette option comme un moyen d'archiver les informations (car le média lui-même est très bon marché pour 1 gigaoctet).

À partir de la génération LTO-5 (et en partie LTO-4), les périphériques à bande magnétique sont connectés à l'ordinateur via une interface SAS ou FC (il existe généralement deux versions de chaque périphérique)

.Par contre, Apple nous fournit gentiment dans notre Mac Interface USB-C (fonctionnant via les protocoles USB, Thunderbolt 3 ou DisplayPort), parfois une interface Ethernet, ainsi que des adaptateurs propriétaires Thunderbolt 3 - Thunderbolt 2 et Thunderbolt - FireWire 800. Une

situation désespérée? Pas vraiment. Heureusement, le bus Thunderbolt peut fonctionner en mode PCIe et offrir la possibilité de connecter des cartes PCIe de la même manière que si elles étaient installées directement à l'intérieur du boîtier de l'ordinateur. Pour cette raison, toutes les extensions de la configuration matérielle Mac sont possibles, il y aurait un adaptateur et des pilotes appropriés.

La façon la plus simple sur le plan conceptuel de résoudre le problème consiste à utiliser un boîtier externe pour les adaptateurs PCIe avec interface Thunderbolt (système d'extension de carte PCIe), dans lequel vous pouvez installer un contrôleur (adaptateur de bus hôte, HBA) SAS ou FC. Par exemple, ces boîtes sont produites par Sonnet et plusieurs autres. Il y a une nuance: tous les contrôleurs ne nous conviennent pas, mais uniquement avec un pilote pour macOS. Il n'y a que quelques cartes de ce type, et les moins chères et les plus populaires (par exemple, le même LSI) ne sont pas incluses dans leur nombre. Heureusement, Sonnet avait du mal à compiler un tableau de compatibilité des cartes PCIe pour différents systèmes d'exploitation via l'interface Thunderbolt.

Une autre solution consiste à acheter un convertisseur prêt à l'emploi pour le convertisseur d'interface Thunderbolt-SAS ou Thunderbolt-FC, qui, en fait, est un assemblage prêt à l'emploi de la boîte et du contrôleur. ATTO est surtout connu dans ce domaine , mais on trouve également des produits d'autres sociétés.

Notez que tous les contrôleurs SAS et FC ne sont pas certifiés conformes à la norme LTO, car cela seul coûte de l'argent. Certains fabricants écrivent directement que le fonctionnement de leurs contrôleurs avec des lecteurs de bande n'est pas fourni.

Pour compléter le tableau, nous notons que la société mLogic produit un appareil, qui est un lecteur IBM LTO-8 dans un boîtier externe, dans lequel le convertisseur SAS vers Thunderbolt 3 est immédiatement intégré. Ceci, cependant, est encore plus exotique que tout ce qui précède, en particulier par rapport aux normes de notre région. Je doute que cet appareil puisse même être légalement importé en Russie (les lecteurs LTO contiennent des outils cryptographiques, et les fabricants tels qu'IBM et HP, pour cette raison, reçoivent l'autorisation d'importation FSB pour chaque modèle).

Ensuite, nous considérons par exemple un ensemble spécifique d'équipements, dont l'auteur est devenu propriétaire à la suite de plusieurs acquisitions réussies, mais le principe général devrait être maintenu pour toutes les options.

Nous avons donc l'équipement suivant pour travailler avec du ruban:
- ordinateur Apple Mac mini 2018 avec macOS 10.15 Catalina, qui dispose de ports USB-C avec prise en charge de Thunderbolt 3;
- Adaptateur Apple Thunderbolt 3 / Thunderbolt 2;
- Câble Apple Thunderbolt 2;
- Convertisseur d'interface ATTO ThunderLink SH 1068 (2 * Thunderbolt / 2 * SAS-2);
- Câble SAS SFF-8088 - SFF-8088;
- lecteur de bande LTO-5 IBM TS2350;
- Cartouches LTO-5, cartouche de nettoyage.

Maintenant, comme on dit, avec toutes ces ordures, nous allons essayer de décoller.

Téléchargez la dernière version du pilote ThunderLink SH 1068 sur le site Web d'ATTO (apparemment, pour notre commodité, il est combiné avec le pilote SH 2068 et se trouve dans la section 2068, qui est écrite uniquement dans l'archive du pilote lui-même) et l'utilitaire de configuration ATTO.

image

Le pilote, bien sûr, doit être installé. Avant de telles actions, l'auteur conseille de toujours faire un instantané du système de fichiers APFS du disque de démarrage avec la commande

tmutil localsnapshot


ou une copie de sauvegarde du disque de démarrage, s'il existe HFS +. On ne sait jamais quoi. Il sera ensuite facile de revenir en arrière à partir d'un instantané.

De plus, inexpérimenté mais faisant preuve d'une diligence raisonnable, l'esprit sera sans aucun doute enclin à lire attentivement les instructions ATTO pour installer le pilote et l'exécuter. Le résultat est tadam! - nous obtenons le système d'exploitation suspendu à l'étape de démarrage. Ici, nous pouvons utiliser un instantané à partir duquel vous pouvez récupérer en appelant Time machine à partir de la partition de récupération, ou vous pouvez effacer manuellement un kext malade du catalogue d'extension du noyau de la même partition de récupération (l'auteur ne recommande généralement pas de le faire).

Pourquoi ça arrive? Parce qu'Apple a pris soin de nous. Dans les versions récentes de macOS, il n'est pas facile de prendre et d'injecter du code superflu dans le processus de démarrage. Les bons programmeurs Apple ont bloqué un tel comportement destructeur. Plus précisément, ils l'ont bloqué de moitié lorsque l'attente du pilote est introduite, mais le pilote lui-même ne l'est pas, donc tout se bloque.

Que doit faire un esprit sophistiqué avant d'installer un pilote? D'abord, donnez la commande:

csrutil status


Si en réponse, nous obtenons:

État de la protection de l'intégrité du système: activé.


cela signifie que les bons programmeurs Apple se soucient de nous, donc rien ne viendra de nous jusqu'à ce que nous désactivions leur merveilleuse protection. Pour ce faire, nous redémarrons dans la partition de récupération (⌘R), appelons le terminal et donnons la commande:

csrutil disable


Après cela, nous redémarrons dans le système de travail, puis nous installons le pilote et en même temps l'utilitaire de configuration ATTO (en principe, l'utilitaire de configuration n'est nécessaire que pour les diagnostics et n'est pas requis pendant le fonctionnement normal). Dans le processus, lorsque nous vous le demandons, nous confirmons l'autorisation ATTO dans les paramètres système. Après l'installation, vous pouvez à nouveau redémarrer dans la partition de récupération et donner la commande

csrutil enable


Apple prend à nouveau soin de nous.

Nous avons maintenant une interface prise en charge par le pilote pour les périphériques SAS externes (ou FC, si le convertisseur FC a été utilisé). Mais comment travailler avec la bande à un niveau logique?

Comme le sait un esprit inexpérimenté mais érudit, tout système compatible Unix prend en charge les lecteurs de bande au niveau du noyau et les principaux utilitaires du système, qui comprennent principalement mt (gestion des bandes) et tar (un archiveur prenant en charge le travail avec les archives de bandes) . Mais que spécifiera l'esprit sophistiqué? Tout système compatible Unix sauf macOS . Apple s'inquiétait pour nous en supprimant la prise en charge des périphériques de bande de son code.

Mais est-il vraiment impossible de renvoyer ce code en portant les utilitaires open source open source standard sur macOS? La bonne nouvelle est que Tolis l'a déjà fait (un lien auquel je ne fournis pas) dans son produit Tolis Tape Tools. La mauvaise nouvelle est que ladite société estime l'utilisation des résultats de ses travaux à 399 dollars américains. Les estimations de ce fait peuvent être différentes, mais l'auteur personnellement n'est pas prêt à payer à quelqu'un 400 dollars pour un code, pour la plupart écrit par des personnes complètement différentes et ouvertement utilisé depuis les années 1970, et donc ce problème est pour l'auteur considère fermé. (À propos, il y a un projet IOSCSITape gratuit sur le même sujet sur le github dans un état vague ).

Heureusement, il existe une société IBM dans le monde dont les appétits commerciaux sont d'une échelle complètement différente, et n'apparaissent donc pas dans tous les détails. Elle a notamment développé le système de fichiers de bandes LTFS open source, qui est également distribué pour macOS.

Il existe une nuance dans le fait que différents fabricants de périphériques de bande publient leurs propres versions de LTFS qui prennent en charge leurs périphériques. Étant donné que l'auteur utilise le lecteur de bande IBM, LTFS a également été installé par IBM. Les disques tiers peuvent avoir besoin de leurs propres ports LTFS. Et il existe une implémentation openLTFS universelle sur github et homebrew.

Il est important pour nous que LTFS utilise la fonction de partition multimédia et puisse donc fonctionner avec des périphériques et des cartouches, à commencer par la génération LTO-5.

Donc, dans notre cas, nous téléchargeons le produit IBM Spectrum Archive Single Drive Edition pour macOS à partir du site Web IBM, qui inclut simplement l'implémentation LTFS. Sans aucune aventure, nous installons le produit avec notre propre installateur. Dans le processus, il installe également le package FUSE, et dans les paramètres système, vous devrez confirmer l'autorisation d'un programmeur intelligent nommé Anatol Pomozov, dont dépend dans ce cas tout IBM. Respect et respect pour cette personne.

Il est conseillé d'écrire immédiatement la ligne: /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local:

option single-drive sync_type = time @ 1


spécifiant le montage de la bande par défaut avec la réinitialisation du tampon d'enregistrement après 1 minute d'inactivité (5 minutes par défaut).

image

Enfin, tout est prêt à se connecter. Nous connectons la chaîne: Mac - adaptateur T3 / T2 - câble Thunderbolt - convertisseur ATTO - câble SAS - lecteur de bande (le choix de plusieurs ports sur le Mac, le convertisseur et le lecteur est sans importance). Mettez le convertisseur sous tension. Mettez le lecteur de bande sous tension. On attend l'initialisation du variateur par son indication.

Nous donnons la commande:

ltfs -o device_list


Hourra! Nous obtenons (de la manière diagnostique habituelle pour IBM):

307 LTFS14000I Démarrage LTFS, LTFS version 2.4.2.0 (10418), niveau de journalisation 2.
307 LTFS14058I Spécification de format LTFS version 2.4.0.
307 LTFS14104I Lancé par "ltfs -o device_list".
307 LTFS14105I Ce binaire est conçu pour Mac OS X.
307 LTFS14106I La version GCC est 4.2.1 compatible Apple Clang 4.1 ((tags / Apple / clang-421.11.66)).
307 LTFS17087I Version du noyau: Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; racine: xnu-6153.101.6 ~ 15 / RELEASE_X86_64.
307 LTFS17085I Plugin: Chargement du backend de bande "iokit".
Liste des périphériques de bande:.
Nom du périphérique = 0, ID fournisseur = IBM, ID produit = ULT3580-TD5, numéro de série = **********, nom du produit = [ULT3580-TD5].


Nous insérons la cartouche, attendons le téléchargement et formater:

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


Ici, le paramètre -d spécifie le numéro du lecteur (toujours zéro s'il est le seul, mais ne peut pas être omis de cette commande), -n est le nom de la bande (vous pouvez l'omettre) et le paramètre -r requiert que le contenu des fichiers .DS_Store ne dépasse pas la taille 10 mégaoctets, dans la section index (c'est-à-dire destinée aux répertoires) de la bande au lieu de la section données.

La vie mystérieuse dans le lecteur de bande a disparu. Nous attendons quelques minutes, nous obtenons la réponse:

LTFS15000I Starting mkltfs, LTFS version 2.4.2.0 (10418), log level 2.
LTFS15041I Launched by «mkltfs -d 0 -nTest -r size=10M/name=.DS_Store».
LTFS15042I This binary is built for Mac OS X.
LTFS15043I GCC version is 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
LTFS17087I Kernel version: Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Formatting device '0'.
LTFS15004I LTFS volume blocksize: 524288.
LTFS15005I Index partition placement policy: size=10M/name=.DS_Store.

LTFS11337I Update index-dirty flag (1) — NO_BARCODE (0x0x1021081e0).
LTFS17085I Plugin: Loading «iokit» tape backend.
LTFS30810I Opening a device through iokit driver (0).
LTFS30814I Vendor ID is IBM.
LTFS30815I Product ID is 'ULT3580-TD5 '.
LTFS30816I Firmware revision is H976.
LTFS30817I Drive serial is **********.
LTFS17160I Maximum device block size is 1048576.
LTFS11330I Loading cartridge.
LTFS30854I Logical block protection is disabled.
LTFS11332I Load successful.
LTFS17157I Changing the drive setting to write-anywhere mode.
LTFS15049I Checking the medium (mount).
LTFS30854I Logical block protection is disabled.
LTFS15010I Creating data partition b on SCSI partition 1.
LTFS15011I Creating index partition a on SCSI partition 0.
LTFS17165I Resetting the medium's capacity proportion.
LTFS11097I Partitioning the medium.
LTFS11100I Writing label to partition b.
LTFS11278I Writing index to partition b.
LTFS30808I READ_ATTR (0x8c) returns -20501.
LTFS30865I READ_ATTR returns Invalid Field in CDB (-20501) 0.
LTFS30836I Cannot read attribute (-20501).
LTFS11336I The attribute does not exist. Ignore the expected error.
LTFS17235I Writing index of NO_BARCODE to b (Reason: Format, 0 files) **********.
LTFS17236I Wrote index of NO_BARCODE (b, **********).
LTFS11337I Update index-dirty flag (0) — NO_BARCODE (0x0x1021081e0).
LTFS11100I Writing label to partition a.
LTFS11278I Writing index to partition a.
LTFS30808I READ_ATTR (0x8c) renvoie -20501.
LTFS30865I READ_ATTR renvoie un champ non valide dans CDB (-20501) 0.
LTFS30836I Impossible de lire l'attribut (-20501).
LTFS11336I L'attribut n'existe pas. Ignorez l'erreur attendue.
LTFS17235I Écriture de l'index de NO_BARCODE dans un (motif: format, 0 fichier) 9068025555.
LTFS17236I Écriture de l'index de NO_BARCODE (a, **********).
L'UUID du volume LTFS15013I est: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

LTFS15019I La capacité de volume est de 1425 Go.
LTFS30854I La protection de bloc logique est désactivée.
LTFS15024I Medium formaté avec succès.


Montez la bande formatée:

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


Nous obtenons encore quelques minutes de fonctionnement du variateur, diagnostics:

307 LTFS14000I LTFS starting, LTFS version 2.4.2.0 (10418), log level 2.
307 LTFS14058I LTFS Format Specification version 2.4.0.
307 LTFS14104I Launched by «ltfs /Volumes/LTFS/».
307 LTFS14105I This binary is built for Mac OS X.
307 LTFS14106I GCC version is 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Kernel version: Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS14063I Sync type is «time», Sync time is 60 sec.
307 LTFS17085I Plugin: Loading «iokit» tape backend.
307 LTFS17085I Plugin: Loading «unified» iosched backend.
307 LTFS14095I Set the tape device write-anywhere mode to avoid cartridge ejection.
307 LTFS30810I Opening a device through iokit driver (0).
307 LTFS30814I Vendor ID is IBM.
307 LTFS30815I Product ID is 'ULT3580-TD5 '.
307 LTFS30816I Firmware revision is H976.
307 LTFS30817I Drive serial is **********.
307 LTFS17160I Maximum device block size is 1048576.
307 LTFS11330I Loading cartridge.
307 LTFS30854I Logical block protection is disabled.
307 LTFS11332I Load successful.
307 LTFS17157I Changing the drive setting to write-anywhere mode.
307 LTFS11005I Mounting the volume.
307 LTFS30854I Logical block protection is disabled.
307 LTFS17227I Tape attribute: Vendor = IBM.
307 LTFS17227I Tape attribute: Application Name = LTFS.
307 LTFS17227I Tape attribute: Application Version = 2.4.2.0.
307 LTFS17227I Tape attribute: Medium Label =.
307 LTFS17228I Tape attribute: Text Localization ID = 0x81.
307 LTFS17227I Tape attribute: Barcode =.
307 LTFS17227I Tape attribute: Application Format Version = 2.4.0.
307 LTFS17228I Tape attribute: Volume Lock Status = 0x00.
307 LTFS17227I Tape attribute: Media Pool name =.
307 LTFS14111I Initial setup completed successfully.
307 LTFS14112I Invoke 'mount' command to check the result of final setup.
307 LTFS14113I Specified mount point is listed if succeeded.


Et la voici, notre bande sur le bureau, appelée Test (ltfs)! La bande sans nom recevra le nom OSXFUSE Volume 0 (ltfs).

Maintenant tu peux travailler avec elle.

image

En fait, vous devez garder à l'esprit qu'il est conseillé de ne pas abuser de l'affichage du contenu des répertoires de bande dans les fenêtres du Finder, car il s'agit d'une opération incroyablement coûteuse pour LTFS, mais il est préférable de travailler avec des commandes de terminal, ou de simplement vider le répertoire de sauvegarde en vrac sur la bande, comme illustré dans la fenêtre ci-dessus.

Soit dit en passant, il existe un utilitaire IBM spécialement écrit ltfs_copy et ses clones conçus pour une copie plus efficace entre la bande et le disque, mais jusqu'à présent, l'auteur n'a pas été en mesure de les trouver dans le domaine public lors des recherches de surface.

Vous pouvez démonter la bande avec la commande:

umount /Volumes/LTFS


ou jetez-le simplement dans le panier.

En fait, il existe une sorte de shell graphique pour macOS dans la nature pour faciliter ces actions, mais avons-nous, après de telles perversions, peur de taper quelques lignes dans le terminal?

Comme effet secondaire, nous avons la possibilité de connecter des disques eSATA externes via un câble SAS / 4 * eSATA.

image

All Articles