Apple Mac og fancy enheter. LTO, SAS, Fiber Channel, eSATA

Temaet for denne artikkelen er å koble eksterne enheter til en Mac via SAS, Fibre Channel (FC), eSATA-grensesnitt. La oss umiddelbart si at for å løse problemet med å få tilgang til slike enheter, er det en måte for en sunn person: bygg en billig PC, koble til et HBA SAS- eller FC-kontrollkort (for eksempel en enkel LSI-adapter), koble enhetene dine til denne kontrolleren, installer hvilken som helst Linux på PC-en og arbeid fra Mac via nettverket. Men dette er banalt og uinteressant. Vi vil gå hardcore-ruten og koble til enhetene våre direkte til Mac.

Hva vi trenger til dette:
– en anstendig sum penger for å kjøpe nytt utstyr, eller lykke til i auksjoner på eBay (hvor du med litt innsats kan kjøpe nødvendig utstyr fra tidligere generasjoner 10 ganger billigere enn listeprisen);
- Denne artikkelen.

For å jobbe med magnetbånd (nå nesten universelt representert i LTO-formatet), må du ha en LTO-båndstasjon (streamer) eller båndbibliotek. Dette er en ganske dyr enhet for det første kjøpet (fra hundretusenvis av rubler), men verdt en rimelig penge når du kjøper brukt. Siden LTO-generasjoner endres omtrent hvert annet år, og kompatibiliteten er begrenset til to generasjoner, er sekundærmarkedet ganske mettet med brukbare enheter som er fire år eller mer gamle, dvs. generasjonen før sist og utover. Hvis du kjøper en ny enhet for kommersielle formål, så forstår du selv hvorfor du trenger den. Hvis du ønsker å kjøpe til hjemmet og familien din, kan du vurdere dette alternativet som en måte å arkivere informasjon på (siden selve mediene er veldig billige per 1 gigabyte).

Fra LTO-5-generasjonen (og delvis LTO-4), er enheter for arbeid med magnetbånd koblet i maskinvare til datamaskinen via et SAS- eller FC-grensesnitt (vanligvis er det to versjoner av hver enhet)

På den annen side gir Apple oss et USB-C-grensesnitt i Mac-en vår (som bruker USB-, Thunderbolt 3- eller DisplayPort-protokollene), noen ganger et Ethernet-grensesnitt, samt proprietære Thunderbolt 3 - Thunderbolt 2 og Thunderbolt - FireWire 800 adaptere.

Fastlåst situasjon? Ikke egentlig. Heldigvis kan Thunderbolt fungere i PCIe-modus og tillate at PCIe-kort kobles til på samme måte som om de var installert direkte inne i datamaskindekselet. På grunn av dette er enhver utvidelse av Mac-maskinvarekonfigurasjonen mulig, forutsatt at det er en passende adapter og drivere.

Konseptuelt er den enkleste måten å løse problemet på en ekstern boks for PCIe-adaptere med et Thunderbolt-grensesnitt (PCIe-kortutvidelsessystem), der du kan installere en SAS- eller FC Host-bussadapter (HBA). For eksempel produseres slike bokser av selskapet Sonett og noen andre. Det er en nyanse her: ikke alle kontroller passer for oss, men bare en som har en driver for macOS. Det er bare noen få slike brett, og de billigste og mest populære (for eksempel samme LSI) er ikke inkludert i antallet. Heldigvis tok Sonnet seg bryet med å kompilere kompatibilitetstabell PCIe-kort med forskjellige operativsystemer via Thunderbolt-grensesnitt.

En annen løsning er å kjøpe en ferdig Thunderbolt - SAS eller Thunderbolt - FC grensesnittkonverter, som faktisk er en ferdig sammenstilling av en boks og en kontroller. Det mest kjente selskapet i dette området ATTO, men det finnes også produkter fra andre selskaper.

Merk at ikke alle SAS- og FC-kontrollere er sertifisert for å overholde LTO-standarden, siden dette i seg selv koster penger. Noen produsenter skriver direkte at kontrollerene deres ikke er laget for å fungere med båndstasjoner.

For å fullføre bildet, merker vi at mLogic produserer устройство, som er en IBM LTO-8-stasjon i et eksternt kabinett, som det umiddelbart integreres en SAS til Thunderbolt 3-konverter i. Dette er imidlertid en enda mer eksotisk ting enn alt beskrevet ovenfor, spesielt i forhold til vår regions standard. Jeg tviler på at denne enheten til og med kan importeres lovlig til Russland (LTO-stasjoner inneholder kryptografiske funksjoner, og produsenter som IBM og HP mottar FSB-importtillatelse for hver modell av denne grunn).

Deretter vil vi vurdere, som et eksempel, et spesifikt sett med utstyr, eieren av forfatteren ble som et resultat av flere vellykkede oppkjøp, men det generelle prinsippet bør opprettholdes for alle alternativer.

Så vi har følgende utstyr for å jobbe med tape:
– Apple Mac mini 2018-datamaskin med macOS 10.15 Catalina, med USB-C-porter med Thunderbolt 3-støtte;
– Apple Thunderbolt 3 / Thunderbolt 2-adapter;
– Apple Thunderbolt 2-kabel;
– ATTO ThunderLink SH 1068 grensesnittkonverter (2*Thunderbolt / 2*SAS-2);
– SAS-kabel SFF-8088 – SFF-8088;
– båndstasjon LTO-5 IBM TS2350;
– LTO-5 kassetter, rensekassett.

Nå, som de sier, med alle disse tingene skal vi prøve å ta av.

Vi laster ned den nyeste versjonen av ThunderLink SH 1068-driveren fra ATTO-nettstedet (tilsynelatende, for enkelhets skyld er den kombinert med SH 2068-driveren og ligger i seksjon 2068, som bare er skrevet inne i arkivet med driveren) og ATTO konfigurasjonsverktøy.

Apple Mac og fancy enheter. LTO, SAS, Fiber Channel, eSATA

Driveren trenger selvfølgelig installasjon. Før slike handlinger anbefaler forfatteren å alltid ta et øyeblikksbilde av APFS-filsystemet til oppstartsdisken med kommandoen

tmutil localsnapshot

eller en sikkerhetskopi av oppstartsdisken, hvis den har HFS+. Du vet aldri. Da vil det være enkelt å rulle tilbake fra øyeblikksbildet.

Deretter vil det uerfarne, men due diligence-sinnet utvilsomt være tilbøyelig til å lese ATTO-driverinstallasjonsinstruksjonene nøye og følge dem. Som et resultat - tadam! – Vi får et operativsystem som henger på lastestadiet. Her kan vi trenge et øyeblikksbilde som vi kan gjenopprette ved å ringe Time machine fra gjenopprettingspartisjonen, eller fra samme gjenopprettingspartisjon kan vi manuelt slette den syke kexten fra kjerneutvidelseskatalogen (forfatteren anbefaler generelt ikke å gjøre dette).

Hvorfor skjer dette? Fordi Apple tok seg av oss. I nyere versjoner av macOS kan du ikke enkelt injisere fremmedkode i oppstartsprosessen. De gode Apple-programmererne har blokkert denne destruktive oppførselen. Mer presist blokkerte de det halvveis, når forventningen til sjåføren er implementert, men sjåføren selv er det ikke, så alt bare fryser.

Hva bør et sofistikert sinn gjøre før du installerer en driver? Først, gi kommandoen:

csrutil status

Hvis vi som svar på det mottar:

Systemintegritetsbeskyttelsesstatus: aktivert.

så betyr dette at de flinke Apple-programmererne bryr seg om oss, så ingenting vil ordne seg for oss før vi deaktiverer deres fantastiske beskyttelse. For å gjøre dette, start på nytt til gjenopprettingspartisjonen (⌘R), ring terminalen og utfør kommandoen:

csrutil disable

Etter dette starter vi på nytt i arbeidssystemet, og først da installerer vi driveren, og samtidig ATTO-konfigurasjonsverktøyet (i prinsippet er konfigurasjonsverktøyet bare nødvendig for diagnostikk og er ikke nødvendig under normal drift). Underveis, når vi blir spurt, bekrefter vi ATTO-autorisasjonen i systeminnstillingene. Etter installasjonen kan du starte på nytt i gjenopprettingspartisjonen og gi kommandoen

csrutil enable

Apple tar vare på oss igjen.

Nå har vi et driverstøttet grensesnitt til eksterne SAS-enheter (eller FC, hvis en FC-konverter ble brukt). Men hvordan jobbe med tape på det logiske nivået?

Som det uerfarne, men lærde sinnet vet, støtter ethvert Unix-kompatibelt system båndstasjoner på nivå med kjernen og grunnleggende systemverktøy, som primært inkluderer mt (båndhåndtering) og tar (arkiver som støtter arbeid med arkiver på bånd). Men hva kan et sofistikert sinn si om dette? Ethvert Unix-kompatibelt system, unntatt macOS. Apple tok seg av oss ved å fjerne støtte for båndenheter fra koden.

Men er det virkelig umulig å returnere denne koden ved å portere standard åpen kildekode Unix-verktøy til macOS? Den gode nyheten er at Tolis (som jeg ikke linker til) allerede har gjort dette i produktet deres Tolis Tape Tools. Den dårlige nyheten er at det nevnte selskapet koster 399 dollar for å bruke resultatene av arbeidet sitt. Anslagene på dette faktum kan variere, men forfatteren personlig er ikke klar til å betale noen 400 dollar for en kode som stort sett ble skrevet av helt andre mennesker og har vært i åpen bruk siden 1970-tallet, og derfor stiller forfatteren dette spørsmålet for seg selv anser stengt. (Forresten, det er et gratis prosjekt forlatt i en vag tilstand på Github IOSCSITape om samme tema).

Heldigvis er det IBM-selskapet i verden, hvis kommersielle appetitt er på en helt annen skala, og derfor ikke manifesterer seg i hver minste ting. Spesielt utviklet den åpen kildekode LTFS-båndfilsystemet, som også distribueres for macOS.

Forbeholdet her er at forskjellige båndenhetsprodusenter gir ut sine egne versjoner av LTFS for å støtte enhetene deres. Siden forfatteren bruker en IBM-båndstasjon, installerte han LTFS fra IBM. Tredjeparts stasjoner kan kreve sine egne LTFS-porter. Og det er en universell implementering av openLTFS på Github og Homebrew.

Det er viktig for oss at LTFS bruker mediepartisjoneringsfunksjonen, og derfor kan fungere med enheter og kassetter fra LTO-5-generasjonen.

Så i vårt tilfelle laster vi ned IBM Spectrum Archive Single Drive Edition for macOS fra IBMs nettsted, som inkluderer LTFS-implementeringen. Uten noen eventyr, installerer vi produktet ved hjelp av sitt eget installasjonsprogram. Underveis installerer han også FUSE-pakken, og i systeminnstillingene må han bekrefte autorisasjonen til en smart programmerer ved navn Anatol Pomozov, som i dette tilfellet hele IBM er avhengig av. Respekt og respekt for denne mannen.

Det anbefales å umiddelbart skrive linjen i filen /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local:

alternativ single-drive sync_type=tid@1

som spesifiserer at båndet er montert som standard og opptaksbufferen tilbakestilles etter 1 minutts inaktivitet (standard er 5 minutter).

Apple Mac og fancy enheter. LTO, SAS, Fiber Channel, eSATA

Endelig er alt klart for tilkobling. Vi kobler sammen kjeden: Mac – T3/T2-adapter – Thunderbolt-kabel – ATTO-omformer – SAS-kabel – båndstasjon (valg av flere porter på Mac, konverter og stasjon er ikke viktig). Slå på strømmen til omformeren. Slå på strømmen til båndstasjonen. Vi venter på at stasjonen skal fullføre initialiseringen i henhold til indikasjonen.

Vi gir kommandoen:

ltfs -o device_list

Hurra! Vi får (på vanlig IBM-diagnosemåte):

307 LTFS14000I LTFS starter, LTFS versjon 2.4.2.0 (10418), loggnivå 2.
307 LTFS14058I LTFS-formatspesifikasjon versjon 2.4.0.
307 LTFS14104I Lansert av "ltfs -o device_list".
307 LTFS14105I Denne binærfilen er bygget for Mac OS X.
307 LTFS14106I GCC-versjon er 4.2.1-kompatibel Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Kjerneversjon: Darwin Kernel Versjon 19.4.0: Ons 4. mars 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS17085I Plugin: Laster "iokit" tape backend.
Båndenhetsliste:.
Enhetsnavn = 0, Leverandør-ID = IBM, Produkt-ID = ULT3580-TD5, Serienummer = **********, Produktnavn = [ULT3580-TD5].

Sett inn kassetten, vent til den er lastet inn og formater:

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

Her spesifiserer -d-parameteren stasjonsnummeret (alltid null hvis det er det eneste, men kan ikke utelates i denne kommandoen), -n er båndnavnet (du kan utelate det), og -r-parameteren krever at innholdet plasseres av .DS_Store-filer som ikke overstiger størrelsen 10 megabyte, i indeksdelen (dvs. beregnet for kataloger) på båndet i stedet for datadelen.

Mystisk liv begynte i båndstasjonen. Vi venter et par minutter og får følgende svar:

LTFS15000I Starter mkltfs, LTFS versjon 2.4.2.0 (10418), loggnivå 2.
LTFS15041I Lansert av "mkltfs -d 0 -nTest -r size=10M/name=.DS_Store".
LTFS15042I Denne binærfilen er bygget for Mac OS X.
LTFS15043I GCC-versjonen er 4.2.1-kompatibel Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
LTFS17087I Kjerneversjon: Darwin Kernel Versjon 19.4.0: Ons 4. mars 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Formateringsenhet '0'.
LTFS15004I LTFS volum blokkstørrelse: 524288.
LTFS15005I Retningslinjer for plassering av indekspartisjon: størrelse=10M/navn=.DS_Store.

LTFS11337I Oppdater indeksskittent flagg (1) - NO_BARCODE (0x0x1021081e0).
LTFS17085I Plugin: Laster "iokit" tape backend.
LTFS30810I Åpne en enhet via iokit-driveren (0).
LTFS30814I Leverandør-ID er IBM.
LTFS30815I Produkt-ID er 'ULT3580-TD5'.
LTFS30816I Firmware revisjon er H976.
LTFS30817I Drive-serien er **********.
LTFS17160I Maksimal enhetsblokkstørrelse er 1048576.
LTFS11330I Lastekassett.
LTFS30854I Logisk blokkbeskyttelse er deaktivert.
LTFS11332I Lasting vellykket.
LTFS17157I Endring av stasjonsinnstillingen til skrive-hvor som helst-modus.
LTFS15049I Kontroll av mediet (feste).
LTFS30854I Logisk blokkbeskyttelse er deaktivert.
LTFS15010I Opprette datapartisjon b på SCSI-partisjon 1.
LTFS15011I Opprette indekspartisjon a på SCSI-partisjon 0.
LTFS17165I Tilbakestilling av mediets kapasitetsandel.
LTFS11097I Partisjonering av mediet.
LTFS11100I Skrive etikett til partisjon b.
LTFS11278I Skrive indeks til partisjon b.
LTFS30808I READ_ATTR (0x8c) returnerer -20501.
LTFS30865I READ_ATTR returnerer ugyldig felt i CDB (-20501) 0.
LTFS30836I Kan ikke lese attributtet (-20501).
LTFS11336I Attributtet eksisterer ikke. Ignorer den forventede feilen.
LTFS17235I Skriveindeks av NO_BARCODE til b (Årsak: Format, 0 filer) **********.
LTFS17236I Skrev indeks av NO_BARCODE (b, **********).
LTFS11337I Oppdater indeksskittent flagg (0) - NO_BARCODE (0x0x1021081e0).
LTFS11100I Skrive etikett til partisjon a.
LTFS11278I Skrive indeks til partisjon a.
LTFS30808I READ_ATTR (0x8c) returnerer -20501.
LTFS30865I READ_ATTR returnerer ugyldig felt i CDB (-20501) 0.
LTFS30836I Kan ikke lese attributtet (-20501).
LTFS11336I Attributtet eksisterer ikke. Ignorer den forventede feilen.
LTFS17235I Skriver indeksen for NO_BARCODE til en (Årsak: Format, 0 filer) 9068025555.
LTFS17236I Skrev indeks av NO_BARCODE (a, **********).
LTFS15013I Volume UUID is: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

LTFS15019I Volumkapasitet er 1425 GB.
LTFS30854I Logisk blokkbeskyttelse er deaktivert.
LTFS15024I Medium formatert vellykket.

Monter den formaterte tapen:

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

Vi får et par minutter til med drift og diagnostikk:

307 LTFS14000I LTFS starter, LTFS versjon 2.4.2.0 (10418), loggnivå 2.
307 LTFS14058I LTFS-formatspesifikasjon versjon 2.4.0.
307 LTFS14104I Lansert av "ltfs /Volumes/LTFS/".
307 LTFS14105I Denne binærfilen er bygget for Mac OS X.
307 LTFS14106I GCC-versjon er 4.2.1-kompatibel Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Kjerneversjon: Darwin Kernel Versjon 19.4.0: Ons 4. mars 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS14063I Synkroniseringstypen er "tid", synkroniseringstiden er 60 sek.
307 LTFS17085I Plugin: Laster "iokit" tape backend.
307 LTFS17085I-plugin: Laster "samlet" iosched backend.
307 LTFS14095I Still inn båndenheten skrive hvor som helst-modus for å unngå utstøting av kassetten.
307 LTFS30810I Åpne en enhet via iokit-driveren (0).
307 LTFS30814I Leverandør-ID er IBM.
307 LTFS30815I Produkt-ID er 'ULT3580-TD5'.
307 LTFS30816I Firmware revisjon er H976.
307 LTFS30817I Drive-serien er **********.
307 LTFS17160I Maksimal enhetsblokkstørrelse er 1048576.
307 LTFS11330I Lastekassett.
307 LTFS30854I Logisk blokkbeskyttelse er deaktivert.
307 LTFS11332I Lasting vellykket.
307 LTFS17157I Endring av stasjonsinnstillingen til skrive-hvor som helst-modus.
307 LTFS11005I Montering av volumet.
307 LTFS30854I Logisk blokkbeskyttelse er deaktivert.
307 LTFS17227I Tape-attributt: Leverandør = IBM.
307 LTFS17227I Tape-attributt: Applikasjonsnavn = LTFS.
307 LTFS17227I Tape-attributt: Applikasjonsversjon = 2.4.2.0.
307 LTFS17227I Tape-attributt: Medium Label =.
307 LTFS17228I Tape-attributt: Tekstlokaliserings-ID = 0x81.
307 LTFS17227I Tape-attributt: Strekkode =.
307 LTFS17227I Tape-attributt: Application Format Version = 2.4.0.
307 LTFS17228I Tape-attributt: Volumlåsstatus = 0x00.
307 LTFS17227I Tape attributt: Media Pool navn =.
307 LTFS14111I Innledende oppsett fullført.
307 LTFS14112I Påkall 'mount'-kommando for å sjekke resultatet av endelig oppsett.
307 LTFS14113I Spesifisert monteringspunkt er oppført hvis det lykkes.

Og her er det, båndet vårt på skrivebordet, kalt Test(ltfs)! Det navnløse båndet vil få navnet OSXFUSE Volume 0 (ltfs).

Nå kan du jobbe med det.

Apple Mac og fancy enheter. LTO, SAS, Fiber Channel, eSATA

Generelt må du huske på at det er tilrådelig å ikke overbruke visning av innholdet i båndkatalogene i finnervinduene, siden dette er en utrolig dyr operasjon for LTFS, men det er bedre å jobbe med terminalkommandoer, eller bare tilbakestille sikkerhetskopikatalogen i bulk til båndet, som vist i vinduet ovenfor.

Det finnes forresten et spesialskrevet IBM-verktøy ltfs_copy og dets kloner, designet for mer effektiv kopiering mellom bånd og disk, men så langt har forfatteren ikke klart å finne dem i det offentlige domene med et overfladisk søk.

Du kan demontere båndet med kommandoen:

umount /Volumes/LTFS

eller bare kaste den i søpla.

Faktisk er det i naturen noen form for grafiske skall for macOS for å lette disse handlingene, men etter slike perversjoner, bør vi være redde for å skrive noen linjer i terminalen?

Som en bieffekt får vi muligheten til å koble til eksterne eSATA-stasjoner via en SAS/4*eSATA-kabel.

Apple Mac og fancy enheter. LTO, SAS, Fiber Channel, eSATA

Kilde: www.habr.com

Legg til en kommentar