Šio straipsnio tema – išorinių įrenginių prijungimas prie „Mac“ per SAS, Fibre Channel (FC), eSATA sąsajas. Iš karto pasakykime, kad norint išspręsti tokių įrenginių prieigos problemą, yra sveiko žmogaus būdas: susikurti pigų kompiuterį, prijungti HBA SAS ar FC valdiklio kortelę (pavyzdžiui, paprastą LSI adapterį), prijungti savo įrenginius prie šio valdiklio. , įdiekite bet kurią „Linux“ kompiuteryje ir dirbkite iš „Mac“ per tinklą. Bet tai banalu ir neįdomu. Eisime sunkiu keliu ir sujungsime savo įrenginius tiesiogiai į Mac.
Ko mums reikia tam:
– nemaža pinigų suma naujai įrangai įsigyti, arba sėkmės aukcionuose eBay (kur, šiek tiek pasistengę, reikiamą ankstesnių kartų įrangą galite įsigyti 10 kartų pigiau nei sąrašo kaina);
- Šis straipsnis.
Norėdami dirbti su magnetine juostele (dabar beveik visuotinai atstovaujama LTO formatu), turite turėti LTO juostos įrenginį (streamer) arba juostelių biblioteką. Tai gana brangus įrenginys pradiniam pirkimui (nuo šimtų tūkstančių rublių), tačiau vertas protingos pinigų sumos perkant naudotą. Kadangi LTO kartos keičiasi maždaug kas dvejus metus, o suderinamumas apsiriboja dviem kartomis, antrinė rinka yra gana prisotinta veikiančių ketverių metų ir senesnių įrenginių, t.y. karta priešpaskutinę ir po jos. Jei perkate naują įrenginį komerciniais tikslais, tuomet jūs pats suprantate, kam jums jo reikia. Jei norite pirkti savo namams ir šeimai, galite apsvarstyti šią galimybę kaip informacijos archyvavimo būdą (nes pačios laikmenos yra labai pigios už 1 gigabaitą).
Pradedant nuo LTO-5 kartos (ir iš dalies LTO-4), įrenginiai, skirti dirbti su magnetine juostele, aparatinėje įrangoje prijungiami prie kompiuterio per SAS arba FC sąsają (paprastai yra dvi kiekvieno įrenginio versijos).
Kita vertus, Apple maloniai suteikia mums USB-C sąsają mūsų Mac kompiuteryje (veikiančią naudojant USB, Thunderbolt 3 arba DisplayPort protokolus), kartais Ethernet sąsają, taip pat patentuotą Thunderbolt 3 - Thunderbolt 2 ir Thunderbolt - FireWire 800. adapteriai.
Aklavietė? Ne visai. Laimei, „Thunderbolt“ gali veikti PCIe režimu ir leisti PCIe korteles prijungti taip pat, lyg jos būtų įdėtos tiesiai į kompiuterio korpusą. Dėl šios priežasties bet koks „Mac“ aparatinės įrangos konfigūracijos išplėtimas yra įmanomas, jei yra tinkamas adapteris ir tvarkyklės.
Konceptualiai paprasčiausias būdas išspręsti problemą yra išorinė PCIe adapterių dėžutė su Thunderbolt sąsaja (PCIe kortelių išplėtimo sistema), į kurią galima įdiegti SAS arba FC Host magistralės adapterį (HBA). Pavyzdžiui, tokias dėžes gamina įmonė ir kai kurie kiti. Čia yra įspėjimas: ne kiekvienas valdiklis mums veiks, tik tie, kurie turi tvarkyklę, skirtą macOSTokių plokščių yra labai mažai, o pigiausių ir populiariausių (pavyzdžiui, tos pačios LSI) tarp jų nėra. Laimei, „Sonnet“ pasistengė jas surinkti. PCIe kortelės su įvairiomis OS per Thunderbolt sąsają.
Kitas sprendimas yra įsigyti paruoštą Thunderbolt - SAS arba Thunderbolt - FC sąsajos keitiklį, kuris iš tikrųjų yra paruoštas dėžutės ir valdiklio mazgas. Garsiausia šios srities įmonė , bet yra ir kitų įmonių gaminių.
Atminkite, kad ne visi SAS ir FC valdikliai yra sertifikuoti, kad atitiktų LTO standartą, nes tai savaime kainuoja. Kai kurie gamintojai tiesiogiai rašo, kad jų valdikliai nėra skirti dirbti su juostiniais įrenginiais.
Norėdami užbaigti vaizdą, pažymime, kad „mLogic“ gamina , kuris yra IBM LTO-8 diskas išoriniame korpuse, į kurį iškart integruojamas konverteris SAS į Thunderbolt 3. Tačiau tai dar egzotiškesnis dalykas nei viskas, kas aprašyta aukščiau, ypač pagal mūsų regiono standartus. Abejoju, kad šį įrenginį galima net legaliai importuoti į Rusiją (LTO diskuose yra kriptografinių funkcijų, o tokie gamintojai kaip IBM ir HP dėl šios priežasties kiekvienam modeliui gauna FSB importo leidimą).
Toliau, kaip pavyzdį, apsvarstysime konkretų įrangos rinkinį, kurio savininku autorius tapo po kelių sėkmingų įsigijimų, tačiau bendras principas turėtų būti išlaikytas visoms galimybėms.
Taigi darbui su juostele turime tokią įrangą:
– „Apple Mac mini 2018“ kompiuteris su macOS 10.15 „Catalina“, turintis USB-C prievadus su „Thunderbolt 3“ palaikymu;
– Apple Thunderbolt 3 / Thunderbolt 2 adapteris;
– Apple Thunderbolt 2 laidas;
– ATTO ThunderLink SH 1068 sąsajos keitiklis (2*Thunderbolt / 2*SAS-2);
– SAS kabelis SFF-8088 – SFF-8088;
– juostinis įrenginys LTO-5 IBM TS2350;
– LTO-5 šoviniai, valymo kasetė.
Dabar, kaip sakoma, su visais šiais dalykais bandysime pakilti.
Iš ATTO svetainės atsisiunčiame naujausią ThunderLink SH 1068 tvarkyklės versiją (matyt, mūsų patogumui ji yra sujungta su SH 2068 tvarkykle ir yra 2068 skyriuje, kuris parašytas tik archyve su tvarkykle) ir ATTO konfigūravimo įrankis.

Žinoma, tvarkyklę reikia įdiegti. Prieš atliekant tokius veiksmus, autorius pataria visada padaryti įkrovos disko APFS failų sistemos momentinį vaizdą su komanda
tmutil localsnapshotarba atsarginę įkrovos disko kopiją, jei jame yra HFS+. Niekada nežinai. Tada bus lengva grįžti iš momentinės nuotraukos.
Be to, nepatyręs, bet kruopštus protas neabejotinai bus linkęs atidžiai perskaityti ATTO tvarkyklės diegimo instrukcijas ir jų laikytis. Dėl to - tadam! – gauname operacinę sistemą, kuri pakimba pakrovimo stadijoje. Čia mums gali prireikti momentinės nuotraukos, iš kurios galėtume atkurti iškviesdami Time Machine iš atkūrimo skaidinio arba iš to paties atkūrimo skaidinio galime rankiniu būdu ištrinti sergantį kext iš branduolio plėtinių katalogo (autorius paprastai nerekomenduoja to daryti).
Kodėl taip vyksta? Nes „Apple“ mumis pasirūpino. Naujausiose versijose macOS Negalite tiesiog įkelti svetimo kodo į paleidimo procesą. „Apple“ programuotojai užblokavo šį destruktyvų elgesį. Tiksliau, jie jį užblokavo pusiaukelėje: kai įterpiamas „tvarkyklės laukimas“, bet pati tvarkyklė ne, viskas tiesiog užstringa.
Ką turėtų daryti įmantrus protas prieš įdiegdamas tvarkyklę? Pirmiausia duokite komandą:
csrutil statusJei atsakydami į jį gausime:
Sistemos vientisumo apsaugos būsena: įjungta.
tada tai reiškia, kad geri Apple programuotojai mumis rūpinasi, todėl mums niekas nepasiseks, kol neišjungsime jų nuostabios apsaugos. Norėdami tai padaryti, iš naujo paleiskite į atkūrimo skaidinį (⌘R), paskambinkite terminalui ir išduokite komandą:
csrutil disablePo to iš naujo paleidžiame į veikiančią sistemą ir tik tada įdiegiame tvarkyklę ir tuo pačiu ATTO konfigūravimo įrankį (iš esmės konfigūravimo įrankis reikalingas tik diagnostikai ir nėra reikalingas normaliai veikiant). Pakeliui, paprašius, sistemos nustatymuose patvirtiname ATTO įgaliojimą. Įdiegę galite iš naujo paleisti į atkūrimo skaidinį ir duoti komandą
csrutil enable„Apple“ vėl mumis rūpinasi.
Dabar turime tvarkyklės palaikomą sąsają su išoriniais SAS įrenginiais (arba FC, jei buvo naudojamas FC keitiklis). Bet kaip dirbti su juosta loginiu lygiu?
Kaip žino nepatyręs, bet eruditas protas, bet kuri su Unix suderinama sistema palaiko juostinius įrenginius branduolio lygiu ir pagrindines sistemos priemones, kurios visų pirma apima mt (juostos valdymas) ir tar (archyvas, palaikantis darbą su juostiniais archyvais). Tačiau ką apie tai gali pasakyti rafinuotas protas? Bet kuri su Unix suderinama sistema, Be to macOS. „Apple“ pasirūpino mumis, pašalindama juostinių įrenginių palaikymą iš savo kodo.
Bet ar tikrai neįmanoma sugrąžinti šio kodo perkeliant standartines atvirojo kodo „Unix“ programas į macOSGeros naujienos yra tai, kad „Tolis“ (į kurią nesiesiu nuorodos) tai jau padarė savo „Tolis Tape Tools“ produkte. Blogos naujienos yra tai, kad bendrovė už savo darbo naudojimą ima 399 USD mokestį. Ši kaina gali skirtis, tačiau autorius asmeniškai nėra pasirengęs mokėti kam nors 400 USD už kodą, kurį daugiausia parašė kiti žmonės ir kuris buvo atvirai naudojamas nuo 1970-ųjų, todėl autorius laiko šią problemą išspręsta. (Beje, „GitHub“ yra apleistas, miglotai veikiantis atvirojo kodo projektas.) ta pačia tema).
Laimei, yra IBM – korporacija, kurios komerciniai siekiai yra visiškai kitokio masto ir todėl nepasireiškia nereikšmingais dalykais. Konkrečiai, ji sukūrė atvirojo kodo LTFS juostų failų sistemą, kuri, be kita ko, platinama macOS.
Įspėjimas yra tas, kad skirtingi juostinių įrenginių gamintojai išleidžia savo LTFS versijas, kad palaikytų savo įrenginius. Kadangi autorius naudoja IBM juostinį įrenginį, jis įdiegė LTFS iš IBM. Trečiųjų šalių diskams gali prireikti savo LTFS prievadų. Ir yra universalus openLTFS diegimas „Github“ ir „Homebrew“.
Mums svarbu, kad LTFS naudotų medijos skaidymo funkciją, todėl galėtų dirbti su įrenginiais ir kasetėmis nuo LTO-5 kartos.
Taigi, mūsų atveju, iš IBM svetainės atsisiunčiame „IBM Spectrum Archive Single Drive Edition“ produktą. macOS, kuris apima LTFS diegimą. Produktą įdiegiame be jokių komplikacijų, naudodami jo paties diegimo programą. Kartu jis taip pat įdiegia FUSE paketą, nors sistemos nustatymuose turėsite patvirtinti sumanaus programuotojo Anatolio Pomozovo autorizaciją, nuo kurio, šiuo atveju, priklauso visa IBM sistema. Pagarba ir susižavėjimas šiuo žmogumi.
Patartina iš karto įrašyti eilutę faile /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local:
parinktis vieno disko sync_type=time@1
kuri nurodo, kad juosta yra prijungta pagal numatytuosius nustatymus, o įrašymo buferis atstatomas po 1 minutės neveiklumo (numatytasis nustatymas yra 5 minutės).

Galiausiai viskas paruošta prisijungti. Sujungiame grandinę: Mac – T3/T2 adapteris – Thunderbolt laidas – ATTO keitiklis – SAS laidas – juostinis įrenginys (kelių prievadų pasirinkimas Mac, konverteris ir diskas nėra svarbus). Įjunkite keitiklio maitinimą. Įjunkite juostos įrenginio maitinimą. Laukiame, kol diskas baigs inicijavimą pagal jo indikaciją.
Mes duodame komandą:
ltfs -o device_listSveika! Gauname (įprastu IBM diagnostikos būdu):
307 LTFS14000I LTFS paleidžiama, LTFS versija 2.4.2.0 (10418), 2 žurnalo lygis.
307 LTFS14058I LTFS formato specifikacijos versija 2.4.0.
307 LTFS14104I Paleido "ltfs -o device_list".
307 LTFS14105I Šis dvejetainis failas sukurtas Mac OS X.
307 LTFS14106I GCC versija yra 4.2.1 Suderinama su Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Branduolio versija: Darwin branduolio versija 19.4.0: trečiadienis kovo 4 d., 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS17085I papildinys: įkeliamas „iokit“ juostos užpakalinė dalis.
Juostos įrenginių sąrašas:.
Įrenginio pavadinimas = 0, tiekėjo ID = IBM, produkto ID = ULT3580-TD5, serijos numeris = *********, gaminio pavadinimas = [ULT3580-TD5].
Įdėkite kasetę, palaukite, kol ji bus įkelta ir suformatuota:
mkltfs -d 0 -nTest -r "size=10M/name=.DS_Store"Čia parametras -d nurodo disko numerį (visada nulis, jei jis yra vienintelis, bet negali būti praleistas šioje komandoje), -n yra juostos pavadinimas (galite jį praleisti), o parametras -r reikalauja sudėti turinį .DS_Store failų, kurių dydis neviršija 10 megabaitų, juostos rodyklės (t. y. skirtos katalogams) skiltyje, o ne duomenų skyriuje.
Juostos diske prasidėjo paslaptingas gyvenimas. Palaukiame porą minučių ir gauname tokį atsakymą:
LTFS15000I Paleidžiamas mkltfs, LTFS versija 2.4.2.0 (10418), 2 žurnalo lygis.
LTFS15041I Paleido „mkltfs -d 0 -nTest -r size=10M/name=.DS_Store“.
LTFS15042I Šis dvejetainis failas sukurtas Mac OS X.
LTFS15043I GCC versija yra 4.2.1 Suderinama su Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
LTFS17087I branduolio versija: Darwin branduolio versija 19.4.0: trečiadienis kovo 4 d. 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Formatavimo įrenginys „0“.
LTFS15004I LTFS tūrio bloko dydis: 524288.
LTFS15005I Indekso skaidinio išdėstymo politika: dydis=10M/pavadinimas=.DS_Store.LTFS11337I Atnaujinimo indekso nešvarumo vėliavėlė (1) – NO_BARCODE (0x0x1021081e0).
LTFS17085I papildinys: įkeliamas „iokit“ juostos užpakalinė dalis.
LTFS30810I Įrenginio atidarymas per iokit tvarkyklę (0).
LTFS30814I tiekėjo ID yra IBM.
LTFS30815I Produkto ID yra „ULT3580-TD5“.
LTFS30816I Firmware versija yra H976.
LTFS30817I Drive serija yra **********.
LTFS17160I Maksimalus įrenginio bloko dydis yra 1048576.
LTFS11330I Uždedama kasetė.
LTFS30854I Loginė bloko apsauga išjungta.
LTFS11332I Įkelti sėkmingai.
LTFS17157I Disko nustatymo keitimas į rašymo bet kur režimą.
LTFS15049I laikmenos (montavimo) tikrinimas.
LTFS30854I Loginė bloko apsauga išjungta.
LTFS15010I Duomenų skaidinio b kūrimas SCSI skaidinyje 1.
LTFS15011I Kuriamas indekso skaidinys a SCSI skaidinyje 0.
LTFS17165I Iš naujo nustatoma laikmenos talpos proporcija.
LTFS11097I Terpės skaidymas.
LTFS11100I Etiketės įrašymas į skaidinį b.
LTFS11278I Indekso rašymas į skaidinį b.
LTFS30808I READ_ATTR (0x8c) grąžina -20501.
LTFS30865I READ_ATTR grąžina netinkamą lauką CDB (-20501) 0.
LTFS30836I Neįmanoma nuskaityti atributo (-20501).
LTFS11336I Atributas neegzistuoja. Nepaisykite laukiamos klaidos.
LTFS17235I Rašymo indeksas NO_BARCODE į b (priežastis: formatas, 0 failų) *********.
LTFS17236I Parašė indeksą NO_BARCODE (b, **********).
LTFS11337I Atnaujinimo indekso nešvarumo vėliavėlė (0) – NO_BARCODE (0x0x1021081e0).
LTFS11100I Etiketės įrašymas į skaidinį a.
LTFS11278I Indekso įrašymas į skaidinį a.
LTFS30808I READ_ATTR (0x8c) grąžina -20501.
LTFS30865I READ_ATTR grąžina netinkamą lauką CDB (-20501) 0.
LTFS30836I Neįmanoma nuskaityti atributo (-20501).
LTFS11336I Atributas neegzistuoja. Nepaisykite laukiamos klaidos.
LTFS17235I Įrašomas NO_BARKODO indeksas į a (priežastis: formatas, 0 failų) 9068025555.
LTFS17236I Parašė indeksą NO_BARCODE (a, **********).
LTFS15013I Volume UUID is: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.LTFS15019I tūrio talpa yra 1425 GB.
LTFS30854I Loginė bloko apsauga išjungta.
LTFS15024I laikmena sėkmingai suformatuota.
Įdėkite formatuotą juostą:
sudo mkdir /Volumes/LTFS
sudo chmod 777 /Volumes/LTFS/
sudo ltfs /Volumes/LTFSGauname dar porą minučių važiavimo ir diagnostikos:
307 LTFS14000I LTFS paleidžiama, LTFS versija 2.4.2.0 (10418), 2 žurnalo lygis.
307 LTFS14058I LTFS formato specifikacijos versija 2.4.0.
307 LTFS14104I Paleido „ltfs /Volumes/LTFS/“.
307 LTFS14105I Šis dvejetainis failas sukurtas Mac OS X.
307 LTFS14106I GCC versija yra 4.2.1 Suderinama su Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Branduolio versija: Darwin branduolio versija 19.4.0: trečiadienis kovo 4 d., 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS14063I Sinchronizavimo tipas yra „laikas“, sinchronizavimo laikas yra 60 sek.
307 LTFS17085I papildinys: įkeliamas „iokit“ juostos užpakalinė dalis.
307 LTFS17085I papildinys: įkeliamas „vieningas“ iosched užpakalinis modulis.
307 LTFS14095I Nustatykite juostos įrenginio rašymo bet kur režimą, kad išvengtumėte kasetės išstūmimo.
307 LTFS30810I Įrenginio atidarymas per iokit tvarkyklę (0).
307 LTFS30814I Tiekėjo ID yra IBM.
307 LTFS30815I Produkto ID yra „ULT3580-TD5“.
307 LTFS30816I Firmware versija yra H976.
307 LTFS30817I Pavaros serija yra **********.
307 LTFS17160I Maksimalus įrenginio bloko dydis yra 1048576.
307 LTFS11330I Uždedama kasetė.
307 LTFS30854I Loginė bloko apsauga išjungta.
307 LTFS11332I Įkelti sėkmingai.
307 LTFS17157I Disko nustatymo keitimas į rašymo bet kur režimą.
307 LTFS11005I Tūrio montavimas.
307 LTFS30854I Loginė bloko apsauga išjungta.
307 LTFS17227I Juostos atributas: Tiekėjas = IBM.
307 LTFS17227I Juostos atributas: Programos pavadinimas = LTFS.
307 LTFS17227I Juostos atributas: programos versija = 2.4.2.0.
307 LTFS17227I Juostos atributas: Medium Label =.
307 LTFS17228I Juostos atributas: teksto lokalizavimo ID = 0x81.
307 LTFS17227I Juostos atributas: Brūkšninis kodas =.
307 LTFS17227I Juostos atributas: Programos formatas Versija = 2.4.0.
307 LTFS17228I Juostos atributas: garsumo užrakto būsena = 0x00.
307 LTFS17227I Juostos atributas: Media Pool pavadinimas =.
307 LTFS14111I Pradinė sąranka sėkmingai baigta.
307 LTFS14112I Iškvieskite komandą „mount“, kad patikrintumėte galutinės sąrankos rezultatą.
307 LTFS14113I Nurodytas prijungimo taškas pateikiamas, jei pavyko.
Ir štai, mūsų juostelė darbalaukyje, pavadinta Test(ltfs)! Neįvardyta juosta bus pavadinta OSXFUSE Volume 0 (ltfs).
Dabar galite su juo dirbti.

Apskritai, reikia nepamiršti, kad patartina nepersistengti peržiūrint juostų katalogų turinį ieškiklio languose, nes tai neįtikėtinai brangi LTFS operacija, tačiau geriau dirbti su terminalo komandomis arba tiesiog iš naujo nustatyti. masinį atsarginį katalogą į juostelę, kaip parodyta aukščiau esančiame lange.
Beje, yra specialiai parašytas IBM įrankis ltfs_copy ir jo klonai, skirti efektyvesniam kopijavimui tarp juostos ir disko, tačiau iki šiol autoriui paviršutiniškai paieškojus nepavyko jų rasti viešoje erdvėje.
Juostą galite atjungti naudodami komandą:
umount /Volumes/LTFSarba tiesiog išmesti į šiukšlių dėžę.
Iš tiesų gamtoje yra keletas grafinių apvalkalų, skirtų macOS kad šie veiksmai būtų lengvesni, bet ar po tokių iškrypimų turėtume bijoti įvesti kelias eilutes terminale?
Kaip šalutinį poveikį gauname galimybę prijungti išorinius eSATA diskus per SAS/4*eSATA kabelį.

Šaltinis: www.habr.com
