Apple Mac og smarte enheder. LTO, SAS, Fibre Channel, eSATA

Emnet for denne artikel er tilslutning af eksterne enheder til en Mac via SAS, Fibre Channel (FC), eSATA-grænseflader. Lad os straks sige, at for at løse problemet med at få adgang til sådanne enheder er der en sund persons måde: byg en billig pc, tilslut et HBA SAS- eller FC-controllerkort (for eksempel en simpel LSI-adapter), tilslut dine enheder til denne controller , installer enhver Linux på pc'en og arbejd fra Mac via netværket. Men dette er banalt og uinteressant. Vi vil gå hardcore-ruten og forbinde vores enheder direkte til Mac.

Hvad vi skal bruge til dette:
– en anstændig sum penge til at købe nyt udstyr eller held og lykke på auktioner på eBay (hvor du med en lille indsats kan købe det nødvendige udstyr fra tidligere generationer 10 gange billigere end listeprisen);
- Denne artikel.

For at arbejde med magnetbånd (nu næsten universelt repræsenteret i LTO-formatet), skal du have et LTO-bånddrev (streamer) eller båndbibliotek. Dette er en temmelig dyr enhed til det første køb (fra hundredtusindvis af rubler), men en rimelig mængde penge værd, når du køber brugt. Da LTO-generationerne skifter cirka hvert andet år, og kompatibiliteten er begrænset til to generationer, er det sekundære marked ret mættet med brugbare enheder, der er fire år eller mere gamle, dvs. generationen før sidste og derefter. Hvis du køber en ny enhed til kommercielle formål, så forstår du selv, hvorfor du har brug for den. Hvis du vil købe til dit hjem og din familie, kan du overveje denne mulighed som en måde at arkivere information på (da medierne selv er meget billige pr. 1 gigabyte).

Fra LTO-5-generationen (og delvist LTO-4) er enheder til at arbejde med magnetbånd forbundet i hardware til computeren via et SAS- eller FC-interface (normalt er der to versioner af hver enhed)

På den anden side giver Apple os venligst en USB-C-grænseflade i vores Mac (der fungerer ved hjælp af USB-, Thunderbolt 3- eller DisplayPort-protokollerne), nogle gange en Ethernet-grænseflade, såvel som proprietære Thunderbolt 3 - Thunderbolt 2 og Thunderbolt - FireWire 800 adaptere.

dødvande? Ikke rigtig. Heldigvis kan Thunderbolt fungere i PCIe-tilstand og tillade at PCIe-kort tilsluttes på samme måde, som hvis de var installeret direkte inde i computerkabinettet. På grund af dette er enhver udvidelse af Mac-hardwarekonfigurationen mulig, forudsat at der er en passende adapter og drivere.

Konceptuelt er den enkleste måde at løse problemet på en ekstern boks til PCIe-adaptere med et Thunderbolt-interface (PCIe-kortudvidelsessystem), hvori du kan installere en SAS- eller FC Host-busadapter (HBA). For eksempel produceres sådanne kasser af virksomheden Sonnet og nogle andre. Der er en nuance her: Ikke alle controllere er egnede til os, men kun en der har en driver til macOS. Der er kun få sådanne tavler, og de billigste og mest populære (for eksempel den samme LSI) er ikke inkluderet i deres antal. Heldigvis tog Sonnet sig den ulejlighed at kompilere kompatibilitetstabel PCIe-kort med forskellige OS via Thunderbolt-interface.

En anden løsning er at købe en færdiglavet Thunderbolt - SAS eller Thunderbolt - FC interfacekonverter, som i virkeligheden er en færdiglavet samling af en boks og en controller. Den mest berømte virksomhed i dette område ATTO, men der er også produkter fra andre virksomheder.

Bemærk at ikke alle SAS- og FC-controllere er certificeret til at overholde LTO-standarden, da dette i sig selv koster penge. Nogle producenter skriver direkte, at deres controllere ikke er designet til at fungere med båndstationer.

For at fuldende billedet bemærker vi, at mLogic producerer устройство, som er et IBM LTO-8-drev i et eksternt kabinet, som der straks integreres en SAS til Thunderbolt 3-konverter i. Dette er dog en endnu mere eksotisk ting end alt beskrevet ovenfor, især efter vores regions standarder. Jeg tvivler på, at denne enhed overhovedet kan importeres lovligt til Rusland (LTO-drev indeholder kryptografiske funktioner, og producenter som IBM og HP modtager FSB-importtilladelse for hver model af denne grund).

Dernæst vil vi som et eksempel overveje et specifikt sæt udstyr, hvis ejer blev forfatteren som et resultat af flere vellykkede erhvervelser, men det generelle princip skal opretholdes for alle muligheder.

Så vi har følgende udstyr til at arbejde med tape:
– Apple Mac mini 2018-computer med macOS 10.15 Catalina, med USB-C-porte med Thunderbolt 3-understøttelse;
– Apple Thunderbolt 3 / Thunderbolt 2-adapter;
– Apple Thunderbolt 2-kabel;
– ATTO ThunderLink SH 1068 interfacekonverter (2*Thunderbolt / 2*SAS-2);
– SAS-kabel SFF-8088 – SFF-8088;
– båndstation LTO-5 IBM TS2350;
– LTO-5 patroner, rensepatron.

Nu, som de siger, med alt det her vil vi prøve at tage afsted.

Vi downloader den seneste version af ThunderLink SH 1068-driveren fra ATTO-webstedet (tilsyneladende er den for nemheds skyld kombineret med SH 2068-driveren og er placeret i sektion 2068, som kun er skrevet inde i arkivet med driveren) og ATTO konfigurationsværktøj.

Apple Mac og smarte enheder. LTO, SAS, Fibre Channel, eSATA

Driveren skal selvfølgelig installeres. Før sådanne handlinger råder forfatteren til altid at tage et øjebliksbillede af APFS-filsystemet på bootdisken med kommandoen

tmutil localsnapshot

eller en sikkerhedskopi af bootdisken, hvis den har HFS+. Man ved aldrig. Så vil det være nemt at rulle tilbage fra øjebliksbilledet.

Dernæst vil det uerfarne, men due diligence sind utvivlsomt være tilbøjeligt til omhyggeligt at læse ATTO-driverens installationsinstruktioner og følge dem. Som et resultat - tadam! – vi får et styresystem, der hænger ved indlæsningsfasen. Her kan vi have brug for et øjebliksbillede, hvorfra vi kan gendanne ved at kalde Time machine fra gendannelsespartitionen, eller fra den samme gendannelsespartition kan vi manuelt slette den syge kext fra kerneudvidelsesbiblioteket (forfatteren anbefaler generelt ikke at gøre dette).

Hvorfor sker dette? Fordi Apple tog sig af os. I nyere versioner af macOS kan du ikke nemt injicere fremmed kode i opstartsprocessen. De gode Apple-programmører har blokeret denne destruktive adfærd. Mere præcist blokerede de den halvvejs, når forventningen til chaufføren er implementeret, men chaufføren selv er det ikke, så alt fryser bare.

Hvad skal et sofistikeret sind gøre, før du installerer en driver? Giv først kommandoen:

csrutil status

Hvis vi som svar på det modtager:

Systemintegritetsbeskyttelsesstatus: aktiveret.

så betyder det, at de gode Apple-programmører bekymrer sig om os, så intet vil fungere for os, før vi deaktiverer deres vidunderlige beskyttelse. For at gøre dette skal du genstarte til gendannelsespartitionen (⌘R), ringe til terminalen og udsende kommandoen:

csrutil disable

Herefter genstarter vi i arbejdssystemet og installerer først derefter driveren og samtidig ATTO-konfigurationsværktøjet (i princippet er konfigurationsværktøjet kun nødvendigt til diagnostik og er ikke påkrævet under normal drift). Undervejs, når vi bliver spurgt, bekræfter vi ATTO-autorisationen i systemindstillingerne. Efter installationen kan du genstarte i gendannelsespartitionen og give kommandoen

csrutil enable

Apple tager sig af os igen.

Nu har vi en driver-understøttet grænseflade til eksterne SAS-enheder (eller FC, hvis der blev brugt en FC-konverter). Men hvordan arbejder man med tape på det logiske niveau?

Som det uerfarne, men lærde sind ved, understøtter ethvert Unix-kompatibelt system båndstationer på niveau med kernen og grundlæggende systemværktøjer, som primært inkluderer mt (båndhåndtering) og tar (arkiver, der understøtter arbejde med arkiver på bånd). Men hvad kan et sofistikeret sind sige om dette? Ethvert Unix-kompatibelt system, undtagen macOS. Apple tog sig af os ved at fjerne understøttelse af båndenheder fra sin kode.

Men er det virkelig umuligt at returnere denne kode ved at portere standard open source Unix-værktøjer til macOS? Den gode nyhed er, at Tolis (som jeg ikke linker til) allerede har gjort dette i deres produkt Tolis Tape Tools. Den dårlige nyhed er, at det nævnte firma koster 399 $ for at bruge resultaterne af sit arbejde. Skøn over dette faktum kan variere, men forfatteren personligt er ikke klar til at betale nogen 400 dollars for en kode, der for det meste er skrevet af helt andre mennesker og har været i åben brug siden 1970'erne, og derfor stiller forfatteren dette spørgsmål til sig selv anser for lukket. (For øvrigt er der et gratis projekt forladt i en vag tilstand på Github IOSCSITape om samme emne).

Heldigvis er der IBM-selskabet i verden, hvis kommercielle appetit er på en helt anden skala, og derfor ikke manifesterer sig i hver lille ting. Det udviklede især open source LTFS-båndfilsystemet, som også distribueres til macOS.

Forbeholdet her er, at forskellige båndenhedsproducenter frigiver deres egne versioner af LTFS for at understøtte deres enheder. Da forfatteren bruger et IBM-båndstation, installerede han LTFS fra IBM. Tredjepartsdrev kan kræve deres egne LTFS-porte. Og der er en universel implementering af openLTFS på Github og Homebrew.

Det er vigtigt for os, at LTFS bruger mediepartitioneringsfunktionen, og derfor kan arbejde med enheder og patroner fra LTO-5 generationen.

Så i vores tilfælde downloader vi IBM Spectrum Archive Single Drive Edition til macOS fra IBM-webstedet, som inkluderer LTFS-implementeringen. Uden eventyr installerer vi produktet ved hjælp af dets eget installationsprogram. Undervejs installerer han også FUSE-pakken, og i systemindstillingerne skal han bekræfte autorisation af en smart programmør ved navn Anatol Pomozov, som i dette tilfælde hele IBM afhænger af. Respekt og respekt for denne mand.

Det tilrådes straks at skrive linjen i filen /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local:

mulighed single-drive sync_type=tid@1

som angiver, at båndet er monteret som standard, og optagebufferen nulstilles efter 1 minuts inaktivitet (standard er 5 minutter).

Apple Mac og smarte enheder. LTO, SAS, Fibre Channel, eSATA

Endelig er alt klar til at forbinde. Vi forbinder kæden: Mac – T3/T2-adapter – Thunderbolt-kabel – ATTO-konverter – SAS-kabel – båndstation (valg af flere porte på Mac, konverter og drev er ikke vigtigt). Tænd for strømmen til konverteren. Tænd for strømmen til bånddrevet. Vi venter på, at drevet fuldfører initialiseringen i henhold til dets indikation.

Vi giver kommandoen:

ltfs -o device_list

Hurra! Vi får (på sædvanlig IBM diagnostisk måde):

307 LTFS14000I LTFS starter, LTFS version 2.4.2.0 (10418), log niveau 2.
307 LTFS14058I LTFS-formatspecifikation version 2.4.0.
307 LTFS14104I Lanceret af "ltfs -o device_list".
307 LTFS14105I Denne binære fil er bygget til Mac OS X.
307 LTFS14106I GCC-version er 4.2.1-kompatibel 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 LTFS17085I Plugin: Indlæser "iokit" tape backend.
Liste over båndenheder:.
Enhedsnavn = 0, leverandør-id = IBM, produkt-id = ULT3580-TD5, serienummer = **********, produktnavn = [ULT3580-TD5].

Indsæt kassetten, vent til den er indlæst og formater:

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

Her angiver parameteren -d drevnummeret (altid nul, hvis det er det eneste, men kan ikke udelades i denne kommando), -n er båndnavnet (du kan udelade det), og parameteren -r kræver, at indholdet placeres af .DS_Store-filer, der ikke overstiger størrelsen 10 megabyte, i indekssektionen (dvs. beregnet til mapper) på båndet i stedet for datasektionen.

Mystisk liv begyndte i bånddrevet. Vi venter et par minutter og modtager følgende svar:

LTFS15000I Starter mkltfs, LTFS version 2.4.2.0 (10418), log niveau 2.
LTFS15041I Lanceret af "mkltfs -d 0 -nTest -r size=10M/name=.DS_Store".
LTFS15042I Denne binære fil er bygget til Mac OS X.
LTFS15043I GCC-versionen er 4.2.1-kompatibel Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
LTFS17087I Kernelversion: Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Formateringsenhed '0'.
LTFS15004I LTFS volumen blokstørrelse: 524288.
LTFS15005I Indekspartitionsplaceringspolitik: størrelse=10M/navn=.DS_Store.

LTFS11337I Opdater index-dirty flag (1) - NO_BARCODE (0x0x1021081e0).
LTFS17085I Plugin: Indlæser "iokit" tape backend.
LTFS30810I Åbning af en enhed via iokit-driver (0).
LTFS30814I Leverandør-id er IBM.
LTFS30815I Produkt-id er 'ULT3580-TD5'.
LTFS30816I Firmware revision er H976.
LTFS30817I drevserie er **********.
LTFS17160I Maksimal enhedsblokstørrelse er 1048576.
LTFS11330I Lader patron.
LTFS30854I Logisk blokbeskyttelse er deaktiveret.
LTFS11332I Indlæsning lykkedes.
LTFS17157I Ændring af drevindstillingen til skrive-hvert sted-tilstand.
LTFS15049I Kontrol af mediet (montering).
LTFS30854I Logisk blokbeskyttelse er deaktiveret.
LTFS15010I Oprettelse af datapartition b på SCSI-partition 1.
LTFS15011I Oprettelse af indekspartition a på SCSI-partition 0.
LTFS17165I Nulstilling af mediets kapacitetsforhold.
LTFS11097I Partitionering af mediet.
LTFS11100I Skrive etiket til partition b.
LTFS11278I Skrivning af indeks til partition b.
LTFS30808I READ_ATTR (0x8c) returnerer -20501.
LTFS30865I READ_ATTR returnerer ugyldigt felt i CDB (-20501) 0.
LTFS30836I Kan ikke læse attribut (-20501).
LTFS11336I Attributten findes ikke. Ignorer den forventede fejl.
LTFS17235I Skriveindeks for NO_BARCODE til b (Årsag: Format, 0 filer) **********.
LTFS17236I Skrev indeks af NO_BARCODE (b, **********).
LTFS11337I Opdater index-dirty flag (0) - NO_BARCODE (0x0x1021081e0).
LTFS11100I Skrive etiket til partition a.
LTFS11278I Skrivning af indeks til partition a.
LTFS30808I READ_ATTR (0x8c) returnerer -20501.
LTFS30865I READ_ATTR returnerer ugyldigt felt i CDB (-20501) 0.
LTFS30836I Kan ikke læse attribut (-20501).
LTFS11336I Attributten findes ikke. Ignorer den forventede fejl.
LTFS17235I Skriver indekset for NO_BARCODE til en (Årsag: Format, 0 filer) 9068025555.
LTFS17236I Skrev indeks af NO_BARCODE (a, **********).
LTFS15013I Volume UUID is: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

LTFS15019I Volumenkapaciteten er 1425 GB.
LTFS30854I Logisk blokbeskyttelse er deaktiveret.
LTFS15024I Medium formateret korrekt.

Monter det formaterede bånd:

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

Vi får et par minutter mere med drevdrift og diagnostik:

307 LTFS14000I LTFS starter, LTFS version 2.4.2.0 (10418), log niveau 2.
307 LTFS14058I LTFS-formatspecifikation version 2.4.0.
307 LTFS14104I Lanceret af "ltfs /Volumes/LTFS/".
307 LTFS14105I Denne binære fil er bygget til Mac OS X.
307 LTFS14106I GCC-version er 4.2.1-kompatibel 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 Synkroniseringstypen er "tid", synktiden er 60 sek.
307 LTFS17085I Plugin: Indlæser "iokit" tape backend.
307 LTFS17085I Plugin: Indlæser "forenet" iosched backend.
307 LTFS14095I Indstil båndenheden til at skrive hvor som helst for at undgå udkastning af kassetten.
307 LTFS30810I Åbning af en enhed via iokit-driver (0).
307 LTFS30814I Leverandør-id er IBM.
307 LTFS30815I Produkt-id er 'ULT3580-TD5'.
307 LTFS30816I Firmwarerevision er H976.
307 LTFS30817I Drive-serien er **********.
307 LTFS17160I Maksimal enhedsblokstørrelse er 1048576.
307 LTFS11330I Indlæsningspatron.
307 LTFS30854I Logisk blokbeskyttelse er deaktiveret.
307 LTFS11332I Indlæsning lykkedes.
307 LTFS17157I Ændring af drevindstillingen til skrive-hvert sted-tilstand.
307 LTFS11005I Montering af volumen.
307 LTFS30854I Logisk blokbeskyttelse er deaktiveret.
307 LTFS17227I Tape-attribut: Leverandør = IBM.
307 LTFS17227I Tape attribut: Application Name = LTFS.
307 LTFS17227I Tape-attribut: Applikationsversion = 2.4.2.0.
307 LTFS17227I Tape attribut: Medium Label =.
307 LTFS17228I Tape-attribut: Tekstlokaliserings-id = 0x81.
307 LTFS17227I Tape attribut: Stregkode =.
307 LTFS17227I Tape-attribut: Application Format Version = 2.4.0.
307 LTFS17228I Båndegenskab: Volume Lock Status = 0x00.
307 LTFS17227I Tape attribut: Media Pool navn =.
307 LTFS14111I Indledende opsætning gennemført.
307 LTFS14112I Kald 'mount'-kommandoen for at kontrollere resultatet af den endelige opsætning.
307 LTFS14113I Specificeret monteringspunkt er angivet, hvis det lykkedes.

Og her er det, vores bånd på skrivebordet, kaldet Test(ltfs)! Det unavngivne bånd vil få navnet OSXFUSE Volume 0 (ltfs).

Nu kan du arbejde med det.

Apple Mac og smarte enheder. LTO, SAS, Fibre Channel, eSATA

Generelt skal du huske på, at det er tilrådeligt ikke at overbruge visning af indholdet af båndmapper i findervinduerne, da dette er en utrolig dyr operation for LTFS, men det er bedre at arbejde med terminalkommandoer eller blot nulstille backup-mappen i bulk til båndet, som vist i vinduet ovenfor.

Der er i øvrigt et specialskrevet IBM-værktøj ltfs_copy og dets kloner, designet til mere effektiv kopiering mellem bånd og disk, men indtil videre har forfatteren ikke været i stand til at finde dem i det offentlige domæne med en overfladisk søgning.

Du kan afmontere båndet med kommandoen:

umount /Volumes/LTFS

eller bare smide det i skraldespanden.

Faktisk er der i naturen en form for grafiske skaller til macOS for at lette disse handlinger, men efter sådanne perversioner, skal vi være bange for at skrive et par linjer i terminalen?

Som en sideeffekt får vi mulighed for at tilslutte eksterne eSATA-drev via et SAS/4*eSATA-kabel.

Apple Mac og smarte enheder. LTO, SAS, Fibre Channel, eSATA

Kilde: www.habr.com

Tilføj en kommentar