Apple Mac et dispositifs étranges. LTO, SAS, Fibre Channel, eSATA

Le sujet de cet article est la connexion d'appareils externes à un Mac via les interfaces SAS, Fibre Channel (FC) et eSATA. Tout d'abord, précisons qu'il existe une solution simple pour accéder à de tels appareils : assembler un PC bon marché, y insérer une carte contrôleur HBA SAS ou FC (par exemple, un simple adaptateur LSI), connecter vos appareils à ce contrôleur, installer un Linux sur le PC et travailler avec le Mac via le réseau. Mais c'est banal et ennuyeux. Nous allons prendre le chemin du hardcore et connecter nos appareils. directement au Mac.

Ce dont nous aurons besoin :
– une somme considérable pour acheter du nouveau matériel, ou de la chance lors des enchères sur eBay (où, avec un peu d'efforts, il est possible d'acheter le matériel requis des générations précédentes dix fois moins cher que dans les listes de prix);
– cet article.

Pour travailler avec des bandes magnétiques (qui sont actuellement presque exclusivement au format LTO), il est nécessaire de disposer d'un lecteur de bandes (streamer) ou d'une bibliothèque de bandes au standard LTO. C'est un appareil relativement coûteux à l'achat initial (à partir de centaines de milliers de roubles), mais acceptable lorsque acheté 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 fonctionnels de quatre ans et plus, c'est-à-dire des générations précédentes et au-delà. Si vous achetez un nouvel appareil à des fins commerciales, vous savez 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'archivage de l'information (car les supports eux-mêmes sont très bon marché au coût par gigaoctet).

À partir de la génération LTO-5 (et en partie LTO-4), les appareils pour travailler avec des bandes magnétiques se connectent matériellement à l'ordinateur via les interfaces SAS ou FC (généralement, il existe deux variantes de chaque appareil).

D'autre part, la société Apple nous offre dans notre Mac une interface USB-C (fonctionnant avec les protocoles USB, Thunderbolt 3 ou DisplayPort), parfois une interface Ethernet, ainsi que des adaptateurs Thunderbolt 3 – Thunderbolt 2 et Thunderbolt – FireWire 800.

Une impasse ? Pas tout à fait. Heureusement, le bus Thunderbolt peut fonctionner en mode PCIe et permettre la connexion de cartes PCIe comme si elles étaient installées directement à l'intérieur du boîtier de l'ordinateur. Cela ouvre la possibilité d'étendre la configuration matérielle du Mac, à condition d'avoir l'adaptateur et les pilotes appropriés.

La manière conceptuellement la plus simple de résoudre le problème est un boîtier externe pour adaptateurs PCIe avec interface Thunderbolt (système d'expansion de carte PCIe), dans lequel un contrôleur (hôte bus adapter, HBA) SAS ou FC peut être installé. Par exemple, des boîtiers de ce type sont fabriqués par la société Sonnet et quelques autres. Il y a un détail : tous les contrôleurs ne conviennent pas, seuls ceux disposant d'un pilote compatible avec macOS. Ces cartes sont relativement rares, et les moins chères et les plus populaires (comme les LSI) n'en font pas partie. Heureusement, la société Sonnet a pris la peine de compiler un tableau de compatibilité des cartes PCIe avec divers systèmes d'exploitation via l'interface Thunderbolt.

Une autre solution consiste à acheter un convertisseur d'interface Thunderbolt – SAS ou Thunderbolt – FC, qui représente en fait déjà un assemblage complet d'un boîtier et d'un contrôleur. La société la plus connue dans ce domaine est ATTO, mais il existe également des produits d'autres entreprises.

Il convient de noter que tous les contrôleurs SAS et FC ne sont pas certifiés conformes à la norme LTO, car cela coûte de l'argent. Certains fabricants précisent clairement que le fonctionnement de leurs contrôleurs avec des unités à bandes n'est pas prévu.

Pour compléter le tableau, la société mLogic fabrique un dispositif, qui est un stockeur IBM LTO-8 dans un boîtier externe, dans lequel un convertisseur SAS vers Thunderbolt 3 est déjà intégré. Cependant, cela reste un produit encore plus exotique que tout ce qui a été décrit ci-dessus, surtout dans notre région. Je doute qu'il soit même possible d'importer cet appareil légalement en Russie (les unités LTO contiennent des moyens cryptographiques, et des fabricants comme IBM et HP obtiennent donc une autorisation de la FSB pour l'importation de chaque modèle).

Nous allons maintenant examiner un ensemble d'équipements spécifique, dont l'auteur est devenu propriétaire à la suite de plusieurs acquisitions réussies, mais le principe général doit rester valable pour toutes les options.

Ainsi, nous avons pour travailler avec la bande l'équipement suivant :
– ordinateur Apple Mac mini 2018 avec macOS 10.15 Catalina, disposant de ports USB-C supportant 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 tout ce bazar, nous allons essayer de décoller.

Nous téléchargeons depuis le site d'ATTO la dernière version du pilote ThunderLink SH 1068 (apparemment, pour notre commodité, elle est regroupée avec le pilote SH 2068 et se trouve dans la section 2068, ce qui n'est indiqué que dans l'archive du pilote elle-même) et de l'outil de configuration ATTO.

Apple Mac et dispositifs étranges. LTO, SAS, Fibre Channel, eSATA

Le pilote, bien sûr, nécessite une installation. Avant de telles actions, l'auteur recommande toujours de faire un instantané du système de fichiers APFS du disque de démarrage avec la commande

tmutil localsnapshot

ou une sauvegarde du disque de démarrage, s'il s'agit de HFS+. Qui sait. Ensuite, il sera facile de revenir à partir de l'instantané.

Ensuite, une personne non expérimentée mais faisant preuve de la diligence requise, de celui qui réfléchit, devinera sans doute qu'elle doit lire attentivement le manuel ATTO sur l'installation du pilote et le suivre. En conséquence – tadam ! – nous obtenons un système d'exploitation bloqué lors du démarrage. Nous pourrions avoir besoin de l'instantané, que nous pouvons restaurer en appelant Time Machine depuis la partition de récupération, ou nous pouvons manuellement supprimer le kext problématique depuis le répertoire des extensions du noyau (l'auteur ne recommande généralement pas de faire cela).

Pourquoi cela se produit-il ? Parce qu'Apple veille sur nous. Dans les dernières versions de macOS, il n'est pas si simple d'insérer un code tiers dans le processus de démarrage. De gentils programmeurs d'Apple ont bloqué un tel comportement destructeur. En fait, ils l'ont partiellement bloqué, lorsque l'attente du pilote est intercalée, mais le pilote lui-même ne l'est pas, donc tout simplement ça bloque.

Que doit faire une personne avisée avant d'installer un pilote ? D'abord, donner la commande :

csrutil status

Si en réponse nous obtenons :

Statut de la protection de l'intégrité système : activé.

cela signifie que de gentils programmeurs d'Apple veillent sur nous, donc rien ne fonctionnera tant que nous n'aurons pas désactivé leur merveilleuse protection. Pour cela, redémarrons en mode récupération (⌘R), ouvrons le terminal et donnons la commande :

csrutil disable

Ensuite, nous redémarrons dans le système de travail, et c'est à ce moment-là que nous installons le pilote, ainsi que l'outil de configuration ATTO (en principe, l'outil de configuration n'est nécessaire que pour le diagnostic et n'est pas requis lors d'un fonctionnement normal). Pendant ce temps, lorsque cela est demandé, nous confirmons l'autorisation de l'entreprise ATTO dans les paramètres système. Après l'installation, nous pouvons à nouveau redémarrer dans la partition de récupération et donner la commande

csrutil enable

Chez Apple, ils se soucient à nouveau de nous.

Maintenant, nous avons une interface supportée par le pilote pour les appareils externes SAS (ou FC, si un convertisseur FC avait été utilisé). Mais comment travailler avec les bandes au niveau logique ?

Comme le sait un esprit non expérimenté mais érudit, tout système compatible Unix prend en charge les lecteurs de bandes au niveau du noyau et des utilitaires système de base, parmi lesquels figurent surtout mt (gestion des bandes) et tar (archiveur qui prend en charge le travail avec des archives sur bande). Cependant, qu'est-ce qu'un esprit aguerri en déduirait ? Tout système compatible Unix, excepté macOS. La société Apple s'est soucieuse de nous et a retiré le soutien aux dispositifs de bande de son code.

Mais n'est-il pas possible de récupérer ce code en portage des utilitaires standard open source Unix sur macOS ? La bonne nouvelle est que la société Tolis l'a déjà fait (je ne fournis pas de lien) dans son produit Tolis Tape Tools. La mauvaise nouvelle est que l'utilisation des résultats de leur travail est évaluée à 399 dollars américains. Les opinions sur ce fait peuvent varier, mais personnellement, je ne suis pas prêt à payer 400 dollars à quelqu'un pour un code principalement écrit par d'autres personnes et disponible en open source depuis les années 1970, considéré donc comme un sujet clos pour moi. (Soit dit en passant, il existe sur GitHub un projet abandonné dans un état incertain IOSCSITape sur le même sujet).

Heureusement, dans le monde se trouve la société IBM, dont les appétits commerciaux ont des échelles tout à fait différentes et ne se manifestent donc pas dans de menus détails. En particulier, elle a développé le système de fichiers de bande LTFS à source ouverte, distribué notamment pour macOS.

Il existe un point délicat concernant le fait que différents fabricants de dispositifs à bande produisent leurs propres versions de LTFS, compatibles avec leurs appareils. Étant donné que l'auteur utilise un lecteur de bande IBM, il a donc installé la version LTFS d'IBM. Pour les lecteurs d'autres marques, leurs propres ports LTFS peuvent être nécessaires. Il existe également une implémentation universelle openLTFS sur GitHub et Homebrew.

Il est important de noter que LTFS utilise la fonction de partitionnement du support, ce qui permet de travailler avec des dispositifs et des cassettes à partir de la génération LTO-5.

Ainsi, dans notre cas, nous téléchargeons depuis le site d'IBM le produit IBM Spectrum Archive Single Drive Edition pour macOS, qui inclut justement l'implémentation de LTFS. Nous installons le produit sans problème avec son propre installateur. En cours de route, il installe également le paquet FUSE, et dans les paramètres système, il faut confirmer l'autorisation d'un développeur émérite nommé Anatol Pomozov, dont dépend en l’occurrence toute une IBM. Salutations et respect à cet homme.

Il est judicieux d'écrire immédiatement dans le fichier /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local la ligne suivante :

option single-drive sync_type=time@1

qui définit le montage de la bande par défaut avec un vidage du tampon d'écriture après 1 minute d'inactivité (par défaut 5 minutes).

Apple Mac et dispositifs étranges. LTO, SAS, Fibre Channel, eSATA

Enfin, tout est prêt pour la connexion. Connectons la chaîne : Mac – adaptateur T3/T2 – câble Thunderbolt – convertisseur ATTO – câble SAS – lecteur de bande (le choix parmi plusieurs ports sur le Mac, le convertisseur et le lecteur n'est pas important). Allumons l'adaptateur. Allumons le lecteur de bande. Attendons la fin de l'initialisation du lecteur selon son indication.

Donnons la commande :

ltfs -o device_list

Hourra ! Nous obtenons (dans le style habituel de diagnostic d'IBM) :

307 LTFS14000I LTFS démarrage, version LTFS 2.4.2.0 (10418), niveau de journal 2.
307 LTFS14058I Version de la spécification de format LTFS 2.4.0.
307 LTFS14104I Lancé par «ltfs -o device_list».
307 LTFS14105I Ce binaire est construit pour Mac OS X.
307 LTFS14106I La version de 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 : Mer Mar 4 22:28:40 PST 2020 ; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS17085I Plugin : Chargement de «iokit» backend à bande.
Liste des dispositifs de bande :.
Nom du dispositif = 0, ID de fournisseur = IBM, ID de produit = ULT3580-TD5, Numéro de série = **********, Nom du produit = [ULT3580-TD5].

Insérons la cassette, attendons le chargement et formatons :

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

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

Une vie mystérieuse a commencé dans le lecteur de bandes. Attendez quelques minutes, nous recevons en retour :

LTFS15000I Démarrage de mkltfs, version LTFS 2.4.2.0 (10418), niveau de journalisation 2.
LTFS15041I Lancé par « mkltfs -d 0 -nTest -r size=10M/name=.DS_Store ».
LTFS15042I Ce binaire est construit pour Mac OS X.
LTFS15043I La version de GCC est 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
LTFS17087I Version du noyau : Darwin Kernel Version 19.4.0 : Mer Mar 4 22:28:40 PST 2020 ; root:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Formatage du périphérique ‘0’.
LTFS15004I Taille de bloc du volume LTFS : 524288.
LTFS15005I Politique de placement de la partition d'index : size=10M/name=.DS_Store.

LTFS11337I Mise à jour du drapeau index-dirty (1) — NO_BARCODE (0x0x1021081e0).
LTFS17085I Plugin : Chargement de l'arrière-plan de bande « iokit ».
LTFS30810I Ouverture d'un périphérique via le pilote iokit (0).
LTFS30814I L'ID du fournisseur est IBM.
LTFS30815I L'ID du produit est ‘ULT3580-TD5 ‘.
LTFS30816I La révision du firmware est H976.
LTFS30817I Le numéro de série du lecteur est **********.
LTFS17160I La taille de bloc maximale du périphérique est de 1048576.
LTFS11330I Chargement de la cartouche.
LTFS30854I La protection des blocs logiques est désactivée.
LTFS11332I Chargement réussi.
LTFS17157I Changement du paramètre du lecteur en mode écriture-n'importe où.
LTFS15049I Vérification du support (montage).
LTFS30854I La protection des blocs logiques est désactivée.
LTFS15010I Création de la partition de données b sur la partition SCSI 1.
LTFS15011I Création de la partition d'index a sur la partition SCSI 0.
LTFS17165I Réinitialisation de la proportion de capacité du support.
LTFS11097I Partitionnement du support.
LTFS11100I Écriture de l'étiquette sur la partition b.
LTFS11278I Écriture de l'index sur la partition b.
LTFS30808I READ_ATTR (0x8c) retourne -20501.
LTFS30865I READ_ATTR retourne Champ Invalide dans CDB (-20501) 0.
LTFS30836I Impossible de lire l'attribut (-20501).
LTFS11336I L'attribut n'existe pas. Ignorer l'erreur attendue.
LTFS17235I Écriture de l'index de NO_BARCODE dans b (Raison : Format, 0 fichiers) **********.
LTFS17236I Écrit l'index de NO_BARCODE (b, **********).
LTFS11337I Mise à jour du drapeau index-dirty (0) — NO_BARCODE (0x0x1021081e0).
LTFS11100I Écriture de l'étiquette sur la partition a.
LTFS11278I Écriture de l'index sur la partition a.
LTFS30808I READ_ATTR (0x8c) retourne -20501.
LTFS30865I READ_ATTR retourne Champ Invalide dans CDB (-20501) 0.
LTFS30836I Impossible de lire l'attribut (-20501).
LTFS11336I L'attribut n'existe pas. Ignorer l'erreur attendue.
LTFS17235I Écriture de l'index de NO_BARCODE dans a (Raison : Format, 0 fichiers) 9068025555.
LTFS17236I Écrit l'index de NO_BARCODE (a, **********).
LTFS15013I Le UUID du volume est : 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

LTFS15019I La capacité du volume est de 1425 Go.
LTFS30854I La protection des blocs logiques est désactivée.
LTFS15024I Support formaté avec succès.

Montage de la bande formatée :

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

Nous recevons encore quelques minutes de fonctionnement du lecteur, diagnostic :

307 LTFS14000I LTFS démarrage, version LTFS 2.4.2.0 (10418), niveau de journal 2.
307 LTFS14058I Version de la spécification de format LTFS 2.4.0.
307 LTFS14104I Lancé par « ltfs /Volumes/LTFS/ ».
307 LTFS14105I Ce binaire est construit pour Mac OS X.
307 LTFS14106I La version de 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 : Mer Mar 4 22:28:40 PST 2020 ; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS14063I Le type de synchronisation est « time », le temps de synchronisation est de 60 sec.
307 LTFS17085I Plugin : Chargement de «iokit» backend à bande.
307 LTFS17085I Plugin : Chargement de l'arrière-plan iosched « unified ».
307 LTFS14095I Réglage du mode écriture-n'importe où du périphérique de bande pour éviter l'éjection de cartouche.
307 LTFS30810I Ouverture d'un périphérique via le pilote iokit (0).
307 LTFS30814I L'ID du fournisseur est IBM.
307 LTFS30815I L'ID du produit est ‘ULT3580-TD5 ‘.
307 LTFS30816I La révision du firmware est H976.
307 LTFS30817I Le numéro de série du lecteur est **********.
307 LTFS17160I La taille de bloc maximale du périphérique est de 1048576.
307 LTFS11330I Chargement de la cartouche.
307 LTFS30854I La protection des blocs logiques est désactivée.
307 LTFS11332I Chargement réussi.
307 LTFS17157I Changement du paramètre du lecteur en mode écriture-n'importe où.
307 LTFS11005I Montage du volume.
307 LTFS30854I La protection des blocs logiques est désactivée.
307 LTFS17227I Attribut de la bande : Fournisseur = IBM.
307 LTFS17227I Attribut de la bande : Nom de l'application = LTFS.
307 LTFS17227I Attribut de la bande : Version de l'application = 2.4.2.0.
307 LTFS17227I Attribut de la bande : Étiquette d'élément =.
307 LTFS17228I Attribut de la bande : ID de localisation du texte = 0x81.
307 LTFS17227I Attribut de la bande : Code-barres =.
307 LTFS17227I Attribut de la bande : Version du format de l'application = 2.4.0.
307 LTFS17228I Attribut de la bande : Statut de verrouillage du volume = 0x00.
307 LTFS17227I Attribut de la bande : Nom du pool de médias =.
307 LTFS14111I Configuration initiale réussie.
307 LTFS14112I Exécutez la commande 'mount' pour vérifier le résultat de la configuration finale.
307 LTFS14113I Le point de montage spécifié est répertorié si réussi.

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

Vous pouvez maintenant interagir avec elle.

Apple Mac et dispositifs étranges. LTO, SAS, Fibre Channel, eSATA

En fait, il est préférable de ne pas abuser de l'exploration du contenu des répertoires de la bande dans les fenêtres du Finder, car c'est une opération incroyablement coûteuse pour LTFS ; il est donc recommandé de travailler avec des commandes terminal, ou de simplement transférer le répertoire à sauvegarder en bloc sur la bande, comme montré dans la fenêtre ci-dessus.

Il existe d'ailleurs un utilitaire spécialement conçu par IBM, ltfs_copy, et ses clones, destinés à un transfert plus efficace entre la bande et le disque, mais l'auteur n'a pas encore réussi à les trouver en accès ouvert lors d'une recherche superficielle.

Vous pouvez démonter la bande avec la commande :

umount /Volumes/LTFS

ou simplement la mettre dans la corbeille.

Il existe en effet certaines interfaces graphiques pour macOS pour faciliter ces actions, mais après de telles contorsions, pourquoi craindre de taper quelques lignes dans le terminal ?

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

Apple Mac et dispositifs étranges. LTO, SAS, Fibre Channel, eSATA

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster