Apple Mac und ausgefallene Geräte. LTO, SAS, Fibre Channel, eSATA

In diesem Artikel geht es darum, externe Geräte über SAS-, Fibre Channel (FC) - und eSATA-Schnittstellen mit dem Mac zu verbinden. Machen Sie sofort eine Reservierung, dass es zur Lösung des Problems des Zugriffs auf solche Geräte einen gesunden Menschen gibt: Sie können einen billigen PC zusammenbauen, eine HBA SAS- oder FC-Controllerkarte dort anbringen (z. B. den einfachsten LSI-Adapter), Ihre Geräte an diesen Controller anschließen, Linux auf dem PC installieren und arbeiten vom Mac über das Netzwerk. Aber es ist banal und uninteressant. Wir werden den Weg des Hardcore gehen und unsere Geräte direkt an den Mac anschließen.

Was wir dafür brauchen:
- eine anständige Menge Geld, um neue Geräte zu kaufen, oder viel Glück bei Auktionen bei eBay (wo Sie mit ein wenig Aufwand die erforderlichen Geräte früherer Generationen zehnmal billiger als die Preisliste kaufen können);
- Dieser Beitrag.

Um mit Magnetbändern arbeiten zu können (derzeit fast überall im LTO-Format dargestellt), benötigen Sie ein Bandlaufwerk (Bandlaufwerk) oder eine Bandbibliothek des LTO-Standards. Dies ist ein ziemlich teures Gerät für den ersten Kauf (aus Hunderttausenden von Rubel), aber das vernünftige Geld wert, wenn Sie ein gebrauchtes kaufen. Da sich die LTO-Generationen ungefähr alle zwei Jahre ändern und die Kompatibilität auf zwei Generationen beschränkt ist, ist der Sekundärmarkt mit betriebsfähigen Geräten von vier Jahren oder mehr ausreichend gesättigt, d. H. das vorletzte Jahr und darüber hinaus. Wenn Sie ein neues Gerät für kommerzielle Zwecke kaufen, verstehen Sie selbst, warum Sie es benötigen. Wenn Sie für zu Hause und für die Familie kaufen möchten, können Sie diese Option als Archivierungsmethode für Informationen in Betracht ziehen (da die Medien selbst pro 1 Gigabyte sehr günstig sind).

Ab der LTO-5-Generation (und teilweise LTO-4) werden Magnetbandgeräte über eine SAS- oder FC-Schnittstelle mit dem Computer verbunden (normalerweise gibt es zwei Versionen jedes Geräts).

Apple stellt uns dies jedoch freundlicherweise auf unserem Mac zur Verfügung USB-C-Schnittstelle (funktioniert über USB-, Thunderbolt 3- oder DisplayPort-Protokolle), manchmal eine Ethernet-Schnittstelle sowie proprietäre Thunderbolt 3-Adapter - Thunderbolt 2 und Thunderbolt - FireWire 800. Eine

hoffnungslose Situation? Nicht wirklich. Glücklicherweise kann der Thunderbolt-Bus im PCIe-Modus betrieben werden und bietet die Möglichkeit, PCIe-Karten so anzuschließen, als ob sie direkt im Computergehäuse installiert wären. Aus diesem Grund sind Erweiterungen der Mac-Hardwarekonfiguration möglich, es wären ein entsprechender Adapter und Treiber vorhanden.

Die konzeptionell einfachste Möglichkeit, das Problem zu lösen, besteht darin, eine externe Box für PCIe-Adapter mit Thunderbolt-Schnittstelle (PCIe-Kartenerweiterungssystem) zu verwenden, in der Sie einen Controller (Host-Busadapter, HBA) SAS oder FC installieren können. Beispielsweise werden solche Boxen von Sonnet und mehreren anderen hergestellt. Es gibt eine Nuance: Nicht jeder Controller ist für uns geeignet, sondern nur ein Treiber für macOS. Es gibt nur wenige solcher Boards, und die billigsten und beliebtesten (zum Beispiel das gleiche LSI) sind nicht in ihrer Anzahl enthalten. Glücklicherweise hatte Sonnet Probleme, eine PCIe-Kartenkompatibilitätstabelle für verschiedene Betriebssysteme über die Thunderbolt-Schnittstelle zu erstellen.

Eine andere Lösung besteht darin, einen vorgefertigten Konverter für den Thunderbolt-SAS- oder Thunderbolt-FC-Schnittstellenkonverter zu erwerben, bei dem es sich im Wesentlichen um eine vorgefertigte Baugruppe aus der Box und der Steuerung handelt. ATTO ist in diesem Bereich am bekanntesten , aber es werden auch Produkte von anderen Unternehmen gefunden.

Beachten Sie, dass nicht alle SAS- und FC-Controller für die Einhaltung des LTO-Standards zertifiziert sind, da dies allein Geld kostet. Einige Hersteller schreiben direkt, dass der Betrieb ihrer Controller mit Bandlaufwerken nicht vorgesehen ist.

Um das Bild zu vervollständigen, stellen wir fest, dass die Firma mLogic ein Gerät herstelltDies ist ein IBM LTO-8-Laufwerk in einem externen Gehäuse, in das der Konverter von SAS zu Thunderbolt 3 sofort integriert ist. Dies ist jedoch noch exotischer als alle oben genannten, insbesondere nach den Standards unserer Region. Ich bezweifle, dass dieses Gerät sogar legal nach Russland importiert werden kann (LTO-Laufwerke enthalten kryptografische Tools, und Hersteller wie IBM und HP erhalten aus diesem Grund die FSB-Importgenehmigung für jedes Modell).

Ferner werden wir zum Beispiel einen bestimmten Satz von Geräten betrachten, dessen Eigentümer der Autor infolge mehrerer erfolgreicher Akquisitionen wurde, aber das allgemeine Prinzip sollte für alle Optionen beibehalten werden.

Wir haben also folgende Ausrüstung für die Arbeit mit Klebeband:
- Apple Mac mini 2018 Computer mit macOS 10.15 Catalina, der USB-C-Anschlüsse mit Unterstützung für Thunderbolt 3 hat;
- Apple Thunderbolt 3 / Thunderbolt 2 Adapter;
- Apple Thunderbolt 2-Kabel;
- ATTO ThunderLink SH 1068 Schnittstellenkonverter (2 * Thunderbolt / 2 * SAS-2);
- SAS-Kabel SFF-8088 - SFF-8088;
- Bandlaufwerk LTO-5 IBM TS2350;
- LTO-5-Patronen, Reinigungspatrone.

Jetzt, wie sie sagen, werden wir mit all dem Müll versuchen, uns zu entfernen.

Laden Sie die neueste Version des ThunderLink SH 1068-Treibers von der ATTO-Website herunter (anscheinend wird er zur Vereinfachung mit dem SH 2068-Treiber kombiniert und befindet sich in Abschnitt 2068, der nur im Treiberarchiv selbst geschrieben ist) und dem ATTO-Konfigurationsdienstprogramm.

Bild

Der Treiber muss natürlich installiert sein. Vor solchen Aktionen empfiehlt der Autor, mit dem Befehl immer einen Snapshot des APFS-Dateisystems der Startdiskette zu erstellen

tmutil localsnapshot


oder eine Sicherungskopie der Startdiskette, wenn HFS + vorhanden ist. Du weißt nie was. Dann ist es einfach, von einem Schnappschuss zurückzusetzen.

Darüber hinaus ist der Verstand unerfahren, aber mit der gebotenen Sorgfalt geneigt, die ATTO-Anweisungen zur Installation des Treibers sorgfältig zu lesen und auszuführen. Das Ergebnis ist Tadam! - Wir lassen das Betriebssystem beim Booten hängen. Hier können wir einen Snapshot verwenden, den Sie wiederherstellen können, indem Sie Time machine von der Wiederherstellungspartition aufrufen, oder Sie können einen kranken Text aus dem Kernel-Erweiterungskatalog manuell von derselben Wiederherstellungspartition löschen (der Autor empfiehlt dies im Allgemeinen nicht).

Warum passiert es? Weil Apple sich um uns gekümmert hat. In neueren Versionen von macOS ist es nicht einfach, fremden Code in den Startvorgang aufzunehmen und einzubetten. Gute Apple-Programmierer haben solch destruktives Verhalten blockiert. Genauer gesagt, sie haben es um die Hälfte blockiert, wenn die Fahrerwartezeit eingeführt wird, aber der Fahrer selbst nicht, also hängt einfach alles.

Was sollte ein erfahrener Kopf tun, bevor er einen Treiber installiert? Geben Sie zunächst den Befehl ein:

csrutil status


Wenn wir darauf antworten:

Status des Systemintegritätsschutzes: aktiviert.


Dies bedeutet, dass gute Apple-Programmierer sich um uns kümmern, sodass nichts von uns kommt, bis wir ihren wunderbaren Schutz ausschalten. Dazu starten wir die Wiederherstellungspartition (⌘R) neu, rufen das Terminal auf und geben den folgenden Befehl ein:

csrutil disable


Danach starten wir das funktionierende System neu und installieren dann den Treiber und gleichzeitig das ATTO-Konfigurationsdienstprogramm (im Prinzip wird das Konfigurationsdienstprogramm nur für die Diagnose benötigt und ist während des normalen Betriebs nicht erforderlich). Auf Anfrage bestätigen wir dabei die ATTO-Autorisierung in den Systemeinstellungen. Nach der Installation können Sie die Wiederherstellungspartition erneut starten und den Befehl eingeben

csrutil enable


Apple kümmert sich wieder um uns.

Jetzt haben wir eine treiberunterstützte Schnittstelle zu externen SAS-Geräten (oder FC, wenn FC-Konverter verwendet wurde). Aber wie arbeitet man mit dem Band auf einer logischen Ebene?

Wie einem unerfahrenen, aber gelehrten Verstand bekannt ist, unterstützt jedes Unix-kompatible System Bandlaufwerke auf Kernelebene und die wichtigsten Systemdienstprogramme, zu denen hauptsächlich mt (Bandverwaltung) und tar (ein Archivierer, der die Arbeit mit Bandarchiven unterstützt) gehören. . Was wird der hoch entwickelte Verstand jedoch spezifizieren? Jedes Unix-kompatible System außer macOS . Apple machte sich Sorgen um uns, indem es die Unterstützung für Bandgeräte aus seinem Code entfernte.

Aber ist es wirklich unmöglich, diesen Code zurückzugeben, indem die Standard-Open-Source-Open-Source-Dienstprogramme auf macOS portiert werden? Die gute Nachricht ist, dass Tolis dies bereits in seinem Produkt Tolis Tape Tools getan hat (ein Link, den ich nicht zur Verfügung stelle). Die schlechte Nachricht ist, dass das Unternehmen die Verwendung der Ergebnisse seiner Arbeit auf 399 US-Dollar schätzt. Schätzungen dieser Tatsache mögen unterschiedlich sein, aber der Autor persönlich ist nicht bereit, jemandem 400 Dollar für einen Code zu zahlen, der größtenteils von völlig anderen Personen geschrieben und seit den 1970er Jahren offen verwendet wird. Daher ist dieses Problem für den Autor bestimmt hält geschlossen. (Übrigens gibt es ein kostenloses IOSCSITape- Projekt zum gleichen Thema auf dem Github in einem vagen Zustand ).

Glücklicherweise gibt es ein IBM-Unternehmen auf der Welt, dessen kommerzieller Appetit völlig anders ist und daher nicht in jeder Kleinigkeit vorkommt. Insbesondere entwickelte sie das Open-Source-LTFS-Banddateisystem, das auch für macOS vertrieben wird.

Es gibt eine Nuance darin, dass verschiedene Hersteller von Bandgeräten ihre eigenen Versionen von LTFS veröffentlichen, die ihre Geräte unterstützen. Da der Autor das IBM Bandlaufwerk verwendet, wurde LTFS auch von IBM installiert. Laufwerke von Drittanbietern benötigen möglicherweise eigene LTFS-Ports. Und es gibt eine universelle openLTFS-Implementierung für Github und Homebrew.

Für uns ist es wichtig, dass LTFS die Medienpartitionsfunktion verwendet und daher ab der LTO-5-Generation mit Geräten und Kassetten arbeiten kann.

In unserem Fall laden wir das Produkt IBM Spectrum Archive Single Drive Edition für macOS von der IBM Website herunter, die nur die LTFS-Implementierung enthält. Ohne Abenteuer installieren wir das Produkt mit unserem eigenen Installer. Dabei installiert er auch das FUSE-Paket, während Sie in den Systemeinstellungen die Autorisierung eines intelligenten Programmierers namens Anatol Pomozov bestätigen müssen, von dem in diesem Fall die gesamte IBM abhängt. Respekt und Respekt für diese Person.

Es ist ratsam, sofort die folgende Zeile zu schreiben: /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local:

Option Single-Drive Sync_Type = Zeit @ 1


Festlegen der Montage des Bandes standardmäßig mit dem Zurücksetzen des Aufzeichnungspuffers nach 1 Minute Inaktivität (Standard 5 Minuten).

Bild

Endlich ist alles bereit zum Verbinden. Wir verbinden die Kette: Mac - T3 / T2 Adapter - Thunderbolt Kabel - ATTO Konverter - SAS Kabel - Bandlaufwerk (die Auswahl mehrerer Ports am Mac, am Konverter und am Laufwerk ist unwichtig). Schalten Sie den Konverter ein. Schalten Sie das Bandlaufwerk ein. Wir warten auf die Initialisierung des Laufwerks anhand seiner Anzeige.

Wir geben den Befehl:

ltfs -o device_list


Hurra! Wir erhalten (in der für IBM üblichen diagnostischen Weise):

307 LTFS14000I LTFS wird gestartet, LTFS Version 2.4.2.0 (10418), Protokollebene 2.
307 LTFS14058I LTFS-Formatspezifikation Version 2.4.0.
307 LTFS14104I Wird von "ltfs -o device_list" gestartet.
307 LTFS14105I Diese Binärdatei wurde für Mac OS X entwickelt.
307 LTFS14106I Die GCC-Version ist 4.2.1-kompatibel mit Apple Clang 4.1 ((tags / Apple / clang-421.11.66)).
307 LTFS17087I Kernel-Version: Darwin Kernel-Version 19.4.0: Mi Mar 4 22:28:40 PST 2020; root: xnu-6153.101.6 ~ 15 / RELEASE_X86_64.
307 LTFS17085I Plugin: Laden des "iokit" -Band-Backends.
Bandgeräteliste :.
Gerätename = 0, Lieferanten-ID = IBM, Produkt-ID = ULT3580-TD5, Seriennummer = **********, Produktname = [ULT3580-TD5].


Wir legen die Patrone ein, warten auf den Download und formatieren:

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


Hier gibt der Parameter -d die Nummer des Laufwerks an (immer Null, wenn es das einzige ist, aber in diesem Befehl nicht weggelassen werden kann), -n ist der Name des Bandes (Sie können es weglassen), und der Parameter -r erfordert, dass der Inhalt der .DS_Store-Dateien nicht überschritten wird 10 Megabyte im Indexabschnitt (d. H. Für Verzeichnisse vorgesehen) des Bandes anstelle des Datenabschnitts.

Das mysteriöse Leben im Bandlaufwerk ist vorbei. Wir warten ein paar Minuten, wir bekommen die Antwort:

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) gibt -20501 zurück.
LTFS30865I READ_ATTR gibt ein ungültiges Feld in CDB (-20501) 0 zurück.
LTFS30836I Attribut (-20501) kann nicht gelesen werden.
LTFS11336I Das Attribut existiert nicht. Ignorieren Sie den erwarteten Fehler.
LTFS17235I Index von NO_BARCODE in a schreiben (Grund: Format, 0 Dateien) 9068025555.
LTFS17236I Index von NO_BARCODE (a, **********) geschrieben.
Die UFS-ID des LTFS15013I lautet: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

LTFS15019I Die Volumenkapazität beträgt 1425 GB.
LTFS30854I Der logische Blockschutz ist deaktiviert.
LTFS15024I Medium erfolgreich formatiert.


Legen Sie das formatierte Band ein:

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


Wir haben noch ein paar Minuten Antriebsbetrieb, Diagnose:

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.


Und hier ist sie, unser Band auf dem Desktop namens Test (ltfs)! Das namenlose Band erhält den Namen OSXFUSE Volume 0 (ltfs).

Jetzt kannst du mit ihr arbeiten.

Bild

Eigentlich sollten Sie bedenken, dass es ratsam ist, die Anzeige des Inhalts der Bandverzeichnisse in den Fenstern des Finders nicht zu missbrauchen, da dies für LTFS ein unglaublich teurer Vorgang ist. Es ist jedoch besser, mit Terminalbefehlen zu arbeiten oder das Sicherungsverzeichnis wie gezeigt in großen Mengen auf das Band zu übertragen im Fenster oben.

Übrigens gibt es ein speziell geschriebenes IBM Dienstprogramm ltfs_copy und seine Klone, die für ein effizienteres Kopieren zwischen Band und Festplatte entwickelt wurden. Bisher konnte der Autor sie jedoch bei der Oberflächensuche nicht öffentlich finden.

Sie können das Band mit dem folgenden Befehl aushängen:

umount /Volumes/LTFS


oder werfen Sie es einfach in den Korb.

Eigentlich gibt es in der Natur eine Art Grafik-Shells für macOS, um diese Aktionen zu erleichtern. Haben wir nach solchen Perversionen Angst, ein paar Zeilen in das Terminal einzugeben?

Als Nebeneffekt erhalten wir die Möglichkeit, externe eSATA-Laufwerke über ein SAS / 4 * eSATA-Kabel anzuschließen.

Bild

All Articles