Apple Mac och snygga enheter. LTO, SAS, Fibre Channel, eSATA

Ämnet för den här artikeln är att ansluta externa enheter till en Mac via SAS, Fibre Channel (FC), eSATA-gränssnitt. Låt oss omedelbart säga att för att lösa problemet med att komma åt sådana enheter finns det ett sätt för en frisk person: bygg en billig dator, koppla in ett HBA SAS- eller FC-kontrollkort (till exempel en enkel LSI-adapter), anslut dina enheter till denna styrenhet, installera valfri Linux på PC:n och arbeta från Mac via nätverket. Men det här är banalt och ointressant. Vi kommer att gå den hårda vägen och ansluta våra enheter direkt till Mac.

Vad vi behöver för detta:
– en anständig summa pengar för att köpa ny utrustning, eller lycka till på auktioner på eBay (där du med lite ansträngning kan köpa den nödvändiga utrustningen från tidigare generationer 10 gånger billigare än listpriset);
- Denna artikel.

För att arbeta med magnetband (nu nästan universellt representerat i LTO-formatet) måste du ha en LTO-bandenhet (streamer) eller ett bandbibliotek. Detta är en ganska dyr enhet för det första köpet (från hundratusentals rubel), men värt en rimlig summa pengar när du köper begagnad. Eftersom LTO-generationerna ändras ungefär vartannat år, och kompatibiliteten är begränsad till två generationer, är den sekundära marknaden ganska mättad med fungerande enheter som är fyra år eller äldre, dvs. generationen före sist och därefter. Om du köper en ny enhet för kommersiella ändamål, då förstår du själv varför du behöver den. Om du vill köpa till ditt hem och familj kan du överväga detta alternativ som ett sätt att arkivera information (eftersom media i sig är väldigt billiga per 1 gigabyte).

Från och med LTO-5-generationen (och delvis LTO-4) ansluts enheter för att arbeta med magnetband i hårdvara till datorn via ett SAS- eller FC-gränssnitt (vanligtvis finns det två versioner av varje enhet)

Å andra sidan förser Apple oss vänligt med ett USB-C-gränssnitt i vår Mac (som arbetar med USB-, Thunderbolt 3- eller DisplayPort-protokollen), ibland ett Ethernet-gränssnitt, såväl som proprietära Thunderbolt 3 - Thunderbolt 2 och Thunderbolt - FireWire 800 adaptrar.

Dödläge? Inte riktigt. Lyckligtvis kan Thunderbolt fungera i PCIe-läge och tillåta PCIe-kort att anslutas på samma sätt som om de var installerade direkt inuti datorhöljet. På grund av detta är all utökning av Mac-hårdvarukonfigurationen möjlig, förutsatt att det finns en lämplig adapter och drivrutiner.

Begreppsmässigt är det enklaste sättet att lösa problemet en extern box för PCIe-adaptrar med ett Thunderbolt-gränssnitt (PCIe-kortexpansionssystem), i vilken du kan installera en SAS- eller FC-värdbussadapter (HBA). Till exempel tillverkas sådana lådor av företaget sonett och några andra. Det finns en nyans här: inte alla kontroller är lämpliga för oss, utan bara en som har en drivrutin för macOS. Det finns bara ett fåtal sådana brädor, och de billigaste och mest populära (till exempel samma LSI) ingår inte i deras antal. Lyckligtvis tog Sonnet sig besväret att kompilera kompatibilitetstabell PCIe-kort med olika operativsystem via Thunderbolt-gränssnitt.

En annan lösning är att köpa en färdig Thunderbolt - SAS eller Thunderbolt - FC-gränssnittsomvandlare, som i själva verket är en färdig sammansättning av en låda och en kontroller. Det mest kända företaget i detta område ATTO, men det finns även produkter från andra företag.

Observera att inte alla SAS- och FC-kontroller är certifierade att följa LTO-standarden, eftersom detta i sig kostar pengar. Vissa tillverkare skriver direkt att deras kontroller inte är designade för att fungera med bandenheter.

För att komplettera bilden noterar vi att mLogic producerar устройство, som är en IBM LTO-8-enhet i ett externt hölje, som omedelbart integreras en SAS till Thunderbolt 3-omvandlare i. Detta är dock en ännu mer exotisk sak än allt som beskrivits ovan, särskilt med hänsyn till vår regions standard. Jag tvivlar på att den här enheten ens kan importeras lagligt till Ryssland (LTO-enheter innehåller kryptografiska funktioner, och tillverkare som IBM och HP får FSB-importtillstånd för varje modell av denna anledning).

Därefter kommer vi att överväga, som ett exempel, en specifik uppsättning utrustning, ägaren till vilken författaren blev som ett resultat av flera framgångsrika förvärv, men den allmänna principen bör bibehållas för alla alternativ.

Så vi har följande utrustning för att arbeta med tejp:
– Apple Mac mini 2018-dator med macOS 10.15 Catalina, med USB-C-portar med Thunderbolt 3-stöd;
– Apple Thunderbolt 3 / Thunderbolt 2-adapter;
– Apple Thunderbolt 2-kabel;
– ATTO ThunderLink SH 1068 gränssnittsomvandlare (2*Thunderbolt / 2*SAS-2);
– SAS-kabel SFF-8088 – SFF-8088;
– bandenhet LTO-5 IBM TS2350;
– LTO-5 patroner, rengöringskassett.

Nu, som de säger, med allt det här ska vi försöka ta fart.

Vi laddar ner den senaste versionen av ThunderLink SH 1068-drivrutinen från ATTO-webbplatsen (uppenbarligen, för vår bekvämlighet är den kombinerad med SH 2068-drivrutinen och finns i sektion 2068, som endast är skriven i arkivet med drivrutinen) och ATTO-konfigurationsverktyg.

Apple Mac och snygga enheter. LTO, SAS, Fibre Channel, eSATA

Drivrutinen behöver naturligtvis installeras. Före sådana åtgärder rekommenderar författaren att alltid ta en ögonblicksbild av APFS-filsystemet på startskivan med kommandot

tmutil localsnapshot

eller en säkerhetskopia av startskivan, om den har HFS+. Du vet aldrig. Då blir det lätt att rulla tillbaka från ögonblicksbilden.

Därefter kommer det oerfarna men due diligence-sinnet utan tvekan att vara benäget att noggrant läsa installationsanvisningarna för ATTO-drivrutinen och följa dem. Som ett resultat - tadam! – vi får ett operativsystem som hänger sig vid laddningsstadiet. Här kan vi behöva en ögonblicksbild från vilken vi kan återställa genom att anropa Time machine från återställningspartitionen, eller från samma återställningspartition kan vi manuellt radera den sjuka kexten från kärntilläggskatalogen (författaren rekommenderar i allmänhet inte att göra detta).

Varför händer det här? För att Apple tog hand om oss. I de senaste versionerna av macOS kan du inte enkelt injicera främmande kod i startprocessen. De goda Apple-programmerarna har blockerat detta destruktiva beteende. Mer exakt, de blockerade det halvvägs, när förväntningen på föraren implementeras, men föraren själv är det inte, så allt fryser bara.

Vad ska ett sofistikerat sinne göra innan du installerar en drivrutin? Ge först kommandot:

csrutil status

Om vi ​​som svar på det får:

Systemintegritetsskyddsstatus: aktiverad.

då betyder det att de duktiga Apple-programmerarna bryr sig om oss, så ingenting kommer att fungera för oss förrän vi inaktiverar deras underbara skydd. För att göra detta, starta om till återställningspartitionen (⌘R), ring terminalen och utfärda kommandot:

csrutil disable

Efter detta startar vi om i arbetssystemet och installerar först sedan drivrutinen och samtidigt ATTO-konfigurationsverktyget (i princip behövs konfigurationsverktyget endast för diagnostik och krävs inte under normal drift). Längs vägen, när vi tillfrågas, bekräftar vi ATTO-auktoriseringen i systeminställningarna. Efter installationen kan du starta om igen till återställningspartitionen och ge kommandot

csrutil enable

Apple tar hand om oss igen.

Nu har vi ett drivrutinsstödt gränssnitt till externa SAS-enheter (eller FC, om en FC-omvandlare användes). Men hur arbetar man med tejp på den logiska nivån?

Som det oerfarna men kunniga sinnet vet, stöder alla Unix-kompatibla system bandenheter på nivån för kärnan och grundläggande systemverktyg, som i första hand inkluderar mt (bandhantering) och tar (arkivering som stöder arbete med arkiv på band). Men vad kan ett sofistikerat sinne säga om detta? Alla Unix-kompatibla system, förutom macOS. Apple tog hand om oss genom att ta bort stödet för bandenheter från sin kod.

Men är det verkligen omöjligt att returnera den här koden genom att porta standard Unix-verktyg med öppen källkod till macOS? Den goda nyheten är att Tolis (som jag inte länkar till) redan har gjort detta i sin produkt Tolis Tape Tools. Den dåliga nyheten är att det nämnda företaget kostar $399 för att använda resultatet av sitt arbete. Uppskattningar av detta faktum kan variera, men författaren personligen är inte redo att betala någon 400 spänn för en kod som till största delen skrevs av helt andra människor och som har varit i öppen användning sedan 1970-talet, och därför ställer författaren denna fråga för sig själv anser stängt. (Förresten, det finns ett gratis projekt övergivet i ett vagt tillstånd på Github IOSCSITape om samma ämne).

Lyckligtvis finns det IBM-företaget i världen, vars kommersiella aptit är av en helt annan skala och därför inte visar sig i varje liten sak. I synnerhet utvecklade den open source LTFS-bandfilsystemet, som också distribueras för macOS.

Förbehållet här är att olika bandenhetstillverkare släpper sina egna versioner av LTFS för att stödja sina enheter. Eftersom författaren använder en IBM-bandenhet installerade han LTFS från IBM. Tredje parts enheter kan kräva sina egna LTFS-portar. Och det finns en universell implementering av openLTFS på Github och Homebrew.

Det är viktigt för oss att LTFS använder mediapartitioneringsfunktionen och därför kan fungera med enheter och patroner från LTO-5-generationen.

Så i vårt fall laddar vi ner IBM Spectrum Archive Single Drive Edition för macOS från IBMs webbplats, som inkluderar LTFS-implementeringen. Utan några äventyr installerar vi produkten med hjälp av ett eget installationsprogram. Längs vägen installerar han också FUSE-paketet, och i systeminställningarna måste han bekräfta auktoriseringen av en smart programmerare vid namn Anatol Pomozov, som i detta fall hela IBM är beroende av. Respekt och respekt för denna man.

Det är lämpligt att omedelbart skriva raden i filen /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local:

alternativet single-drive sync_type=time@1

som anger att bandet är monterat som standard och inspelningsbufferten återställs efter 1 minuts inaktivitet (standard är 5 minuter).

Apple Mac och snygga enheter. LTO, SAS, Fibre Channel, eSATA

Äntligen är allt klart att ansluta. Vi kopplar ihop kedjan: Mac – T3/T2-adapter – Thunderbolt-kabel – ATTO-omvandlare – SAS-kabel – bandenhet (valet av flera portar på Mac, omvandlare och disk är inte viktigt). Slå på strömmen till omvandlaren. Slå på strömmen till bandenheten. Vi väntar på att enheten ska slutföra initieringen enligt dess indikation.

Vi ger kommandot:

ltfs -o device_list

Hurra! Vi får (på vanligt IBM diagnostiskt sätt):

307 LTFS14000I LTFS startar, LTFS version 2.4.2.0 (10418), loggnivå 2.
307 LTFS14058I LTFS-formatspecifikation version 2.4.0.
307 LTFS14104I Lanserad av "ltfs -o device_list".
307 LTFS14105I Den här binära filen är byggd för Mac OS X.
307 LTFS14106I GCC-versionen är 4.2.1-kompatibel Apple Clang 4.1 ((taggar/Apple/clang-421.11.66)).
307 LTFS17087I Kärnversion: 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: Laddar "iokit"-bandbackend.
Bandenhetslista:.
Enhetsnamn = 0, Leverantörs-ID = IBM, Produkt-ID = ULT3580-TD5, Serienummer = **********, Produktnamn = [ULT3580-TD5].

Sätt i kassetten, vänta tills den laddas och formatera:

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

Här anger parametern -d drivenhetens nummer (alltid noll om det är det enda, men kan inte utelämnas i detta kommando), -n är bandnamnet (du kan utelämna det), och parametern -r kräver att innehållet placeras av .DS_Store-filer som inte överstiger storleken 10 megabyte, i indexsektionen (d.v.s. avsedd för kataloger) på bandet istället för datasektionen.

Mystiskt liv började i bandspelaren. Vi väntar ett par minuter och får följande svar:

LTFS15000I Startar mkltfs, LTFS version 2.4.2.0 (10418), loggnivå 2.
LTFS15041I Lanserades av "mkltfs -d 0 -nTest -r size=10M/name=.DS_Store".
LTFS15042I Den här binära filen är byggd för Mac OS X.
LTFS15043I GCC-versionen är 4.2.1-kompatibel Apple Clang 4.1 ((taggar/Apple/clang-421.11.66)).
LTFS17087I Kärnversion: Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Formateringsenhet '0'.
LTFS15004I LTFS volym blockstorlek: 524288.
LTFS15005I Indexpartitionsplaceringspolicy: storlek=10M/namn=.DS_Store.

LTFS11337I Uppdatera index-smutsig flagga (1) - NO_BARCODE (0x0x1021081e0).
LTFS17085I Plugin: Laddar "iokit"-bandbackend.
LTFS30810I Öppna en enhet via iokit-drivrutinen (0).
LTFS30814I Leverantörs-ID är IBM.
LTFS30815I Produkt-ID är 'ULT3580-TD5'.
LTFS30816I Firmware-revision är H976.
LTFS30817I Drive serie är **********.
LTFS17160I Maximal enhetsblockstorlek är 1048576.
LTFS11330I Laddar patron.
LTFS30854I Logiskt blockskydd är inaktiverat.
LTFS11332I Lastningen lyckades.
LTFS17157I Ändra frekvensomriktarinställningen till skriv-var som helst-läge.
LTFS15049I Kontroll av medium (fäste).
LTFS30854I Logiskt blockskydd är inaktiverat.
LTFS15010I Skapa datapartition b på SCSI-partition 1.
LTFS15011I Skapar indexpartition a på SCSI-partition 0.
LTFS17165I Återställning av mediets kapacitetsandel.
LTFS11097I Partitionering av mediet.
LTFS11100I Skriva etikett till partition b.
LTFS11278I Skriva index till partition b.
LTFS30808I READ_ATTR (0x8c) returnerar -20501.
LTFS30865I READ_ATTR returnerar ogiltigt fält i CDB (-20501) 0.
LTFS30836I Kan inte läsa attribut (-20501).
LTFS11336I Attributet finns inte. Ignorera det förväntade felet.
LTFS17235I Skrivningsindex för NO_BARCODE till b (Orsak: Format, 0 filer) **********.
LTFS17236I Skrev index för NO_BARCODE (b, **********).
LTFS11337I Uppdatera index-smutsig flagga (0) - NO_BARCODE (0x0x1021081e0).
LTFS11100I Skriver etikett till partition a.
LTFS11278I Skriva index till partition a.
LTFS30808I READ_ATTR (0x8c) returnerar -20501.
LTFS30865I READ_ATTR returnerar ogiltigt fält i CDB (-20501) 0.
LTFS30836I Kan inte läsa attribut (-20501).
LTFS11336I Attributet finns inte. Ignorera det förväntade felet.
LTFS17235I Skriver index för NO_BARCODE till en (Orsak: Format, 0 filer) 9068025555.
LTFS17236I Skrev index för NO_BARCODE (a, **********).
LTFS15013I Volume UUID is: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

LTFS15019I Volymkapaciteten är 1425 GB.
LTFS30854I Logiskt blockskydd är inaktiverat.
LTFS15024I Medium formaterad framgångsrikt.

Montera den formaterade tejpen:

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

Vi får ytterligare ett par minuter av drift och diagnostik:

307 LTFS14000I LTFS startar, LTFS version 2.4.2.0 (10418), loggnivå 2.
307 LTFS14058I LTFS-formatspecifikation version 2.4.0.
307 LTFS14104I Lanserad av "ltfs /Volumes/LTFS/".
307 LTFS14105I Den här binära filen är byggd för Mac OS X.
307 LTFS14106I GCC-versionen är 4.2.1-kompatibel Apple Clang 4.1 ((taggar/Apple/clang-421.11.66)).
307 LTFS17087I Kärnversion: 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 Synktypen är "tid", synktiden är 60 sek.
307 LTFS17085I Plugin: Laddar "iokit"-bandbackend.
307 LTFS17085I Plugin: Laddar "unified" iosched backend.
307 LTFS14095I Ställ in bandenhetens skriv-var som helst läge för att undvika att kassetten matas ut.
307 LTFS30810I Öppna en enhet via iokit-drivrutinen (0).
307 LTFS30814I Leverantörs-ID är IBM.
307 LTFS30815I Produkt-ID är 'ULT3580-TD5'.
307 LTFS30816I Firmwarerevision är H976.
307 LTFS30817I Drive-serien är **********.
307 LTFS17160I Maximal enhetsblockstorlek är 1048576.
307 LTFS11330I Laddar patron.
307 LTFS30854I Logiskt blockskydd är inaktiverat.
307 LTFS11332I Lastningen lyckades.
307 LTFS17157I Ändra frekvensomriktarinställningen till skriv-var som helst-läge.
307 LTFS11005I Montering av volymen.
307 LTFS30854I Logiskt blockskydd är inaktiverat.
307 LTFS17227I Bandattribut: Leverantör = IBM.
307 LTFS17227I Bandattribut: Application Name = LTFS.
307 LTFS17227I Bandattribut: Application Version = 2.4.2.0.
307 LTFS17227I Bandattribut: Medium Label =.
307 LTFS17228I Bandattribut: Textlokaliserings-ID = 0x81.
307 LTFS17227I Bandattribut: Streckkod =.
307 LTFS17227I Bandattribut: Application Format Version = 2.4.0.
307 LTFS17228I Bandattribut: Volymlåsstatus = 0x00.
307 LTFS17227I Bandattribut: Media Pool name =.
307 LTFS14111I Initial installation slutförd framgångsrikt.
307 LTFS14112I Anropa 'mount'-kommandot för att kontrollera resultatet av den slutliga installationen.
307 LTFS14113I Angiven monteringspunkt listas om den lyckades.

Och här är det, vårt band på skrivbordet, som heter Test(ltfs)! Det namnlösa bandet kommer att heta OSXFUSE Volume 0 (ltfs).

Nu kan du arbeta med det.

Apple Mac och snygga enheter. LTO, SAS, Fibre Channel, eSATA

I allmänhet måste du komma ihåg att det är tillrådligt att inte överanvända innehållet i bandkatalogerna i sökfönstret, eftersom detta är en otroligt dyr operation för LTFS, men det är bättre att arbeta med terminalkommandon, eller helt enkelt återställa säkerhetskopieringskatalogen i bulk till bandet, som visas i fönstret ovan.

Det finns förresten ett specialskrivet IBM-verktyg ltfs_copy och dess kloner, designat för effektivare kopiering mellan band och disk, men hittills har författaren inte kunnat hitta dem i det offentliga området med en ytlig sökning.

Du kan avmontera bandet med kommandot:

umount /Volumes/LTFS

eller bara kasta den i papperskorgen.

Faktum är att det i naturen finns någon form av grafiska skal för macOS för att underlätta dessa åtgärder, men efter sådana perversioner, ska vi vara rädda för att skriva några rader i terminalen?

Som en bieffekt får vi möjlighet att koppla in externa eSATA-enheter via en SAS/4*eSATA-kabel.

Apple Mac och snygga enheter. LTO, SAS, Fibre Channel, eSATA

Källa: will.com

Lägg en kommentar