Apple Mac și dispozitive de lux. LTO, SAS, Fibre Channel, eSATA

Subiectul acestui articol este conectarea dispozitivelor externe la un Mac prin interfețe SAS, Fibre Channel (FC), eSATA. Să spunem imediat că, pentru a rezolva problema accesării unor astfel de dispozitive, există o modalitate pentru o persoană sănătoasă: construiește un PC ieftin, conectează o placă de control HBA SAS sau FC (de exemplu, un simplu adaptor LSI), conectează-ți dispozitivele la acest controler, instalați orice Linux pe PC și lucrați de pe Mac prin intermediul rețelei. Dar acest lucru este banal și neinteresant. Vom merge pe calea hardcore și vom conecta dispozitivele noastre direct la Mac.

Ce avem nevoie pentru asta:
– o sumă decentă de bani pentru a cumpăra echipamente noi, sau noroc la licitații pe eBay (unde, cu puțin efort, puteți cumpăra echipamentul necesar generațiilor anterioare de 10 ori mai ieftin decât prețul de listă);
- Acest articol.

Pentru a lucra cu bandă magnetică (reprezentată acum aproape universal în formatul LTO), trebuie să aveți o unitate de bandă LTO (streamer) sau o bibliotecă de benzi. Acesta este un dispozitiv destul de costisitor pentru achiziția inițială (de la sute de mii de ruble), dar care merită o sumă rezonabilă de bani la cumpărarea folosită. Deoarece generațiile LTO se schimbă aproximativ o dată la doi ani, iar compatibilitatea este limitată la două generații, piața secundară este destul de saturată de dispozitive funcționale vechi de patru ani sau mai mult, de exemplu. generația dinaintea ultimului și dincolo. Dacă cumpărați un dispozitiv nou în scopuri comerciale, atunci înțelegeți singur de ce aveți nevoie de el. Dacă doriți să cumpărați pentru casa și familia dvs., puteți lua în considerare această opțiune ca o modalitate de a arhiva informații (deoarece mediile în sine sunt foarte ieftine pe 1 gigaoctet).

Începând de la generația LTO-5 (și parțial LTO-4), dispozitivele pentru lucrul cu bandă magnetică sunt conectate hardware la computer printr-o interfață SAS sau FC (de obicei există două versiuni ale fiecărui dispozitiv)

Pe de altă parte, Apple ne oferă cu amabilitate o interfață USB-C în Mac-ul nostru (funcționând folosind protocoalele USB, Thunderbolt 3 sau DisplayPort), uneori o interfață Ethernet, precum și Thunderbolt 3 - Thunderbolt 2 și Thunderbolt - FireWire 800. adaptoare.

impas? Nu chiar. Din fericire, Thunderbolt poate funcționa în modul PCIe și permite conectarea cardurilor PCIe în același mod ca și cum ar fi instalate direct în carcasa computerului. Datorită acestui fapt, este posibilă orice extindere a configurației hardware pentru Mac, cu condiția să existe un adaptor și drivere adecvate.

Din punct de vedere conceptual, cea mai simplă modalitate de a rezolva problema este o cutie externă pentru adaptoare PCIe cu o interfață Thunderbolt (sistem de expansiune a cardului PCIe), în care puteți instala un adaptor de bus SAS sau FC Host (HBA). De exemplu, astfel de cutii sunt produse de companie Sonet si altii unii. Există o nuanță aici: nu fiecare controler este potrivit pentru noi, ci doar unul care are un driver pentru macOS. Există doar câteva astfel de plăci, iar cele mai ieftine și populare (de exemplu, același LSI) nu sunt incluse în numărul lor. Din fericire, Sonnet și-a dat osteneala să compileze tabel de compatibilitate Carduri PCIe cu diferite sisteme de operare prin interfața Thunderbolt.

O altă soluție este achiziționarea unui convertor de interfață Thunderbolt - SAS sau Thunderbolt - FC gata făcut, care, de fapt, este un ansamblu gata făcut de o cutie și un controler. Cea mai cunoscută companie din acest domeniu ATTO, dar există și produse de la alte companii.

Rețineți că nu toate controlerele SAS și FC sunt certificate pentru a respecta standardul LTO, deoarece acest lucru în sine costă bani. Unii producători scriu direct că controlerele lor nu sunt proiectate să funcționeze cu unități de bandă.

Pentru a completa imaginea, observăm că mLogic produce dispozitiv, care este o unitate IBM LTO-8 într-o carcasă externă, în care este integrat imediat un convertor SAS la Thunderbolt 3. Acesta, însă, este un lucru și mai exotic decât tot ceea ce este descris mai sus, mai ales după standardele regiunii noastre. Mă îndoiesc că acest dispozitiv poate fi chiar importat legal în Rusia (unitățile LTO conțin caracteristici criptografice, iar producătorii precum IBM și HP primesc permisiunea de import FSB pentru fiecare model din acest motiv).

În continuare, vom lua în considerare, ca exemplu, un set specific de echipamente, al cărui proprietar a devenit autorul ca urmare a mai multor achiziții de succes, dar principiul general ar trebui menținut pentru toate opțiunile.

Deci avem următoarele echipamente pentru lucrul cu bandă:
– Computer Apple Mac mini 2018 cu macOS 10.15 Catalina, avand porturi USB-C cu suport Thunderbolt 3;
– Adaptor Apple Thunderbolt 3 / Thunderbolt 2;
– cablu Apple Thunderbolt 2;
– Convertor de interfață ATTO ThunderLink SH 1068 (2*Thunderbolt / 2*SAS-2);
– cablu SAS SFF-8088 – SFF-8088;
– unitate de bandă LTO-5 IBM TS2350;
– Cartușe LTO-5, cartuș de curățare.

Acum, după cum se spune, cu toate aceste lucruri vom încerca să decolăm.

Descărcăm de pe site-ul ATTO cea mai recentă versiune a driverului ThunderLink SH 1068 (se pare că, pentru confortul nostru, este combinat cu driverul SH 2068 și se află în secțiunea 2068, care este scrisă numai în arhiva cu driverul) și Utilitar de configurare ATTO.

Apple Mac și dispozitive de lux. LTO, SAS, Fibre Channel, eSATA

Desigur, șoferul are nevoie de instalare. Înainte de astfel de acțiuni, autorul recomandă să faceți întotdeauna un instantaneu al sistemului de fișiere APFS al discului de pornire cu comanda

tmutil localsnapshot

sau o copie de rezervă a discului de pornire, dacă are HFS+. Nu stii niciodata. Apoi, va fi ușor să reveniți din instantaneu.

În continuare, mintea neexperimentată, dar cu diligență, va fi, fără îndoială, înclinată să citească cu atenție instrucțiunile de instalare a driverului ATTO și să le urmeze. Ca rezultat - tadam! – obținem un sistem de operare care se blochează în etapa de încărcare. Aici s-ar putea să avem nevoie de un instantaneu din care să ne recuperăm apelând Time Machine din partiția de recuperare, sau din aceeași partiție de recuperare putem șterge manual kext-ul bolnav din directorul de extensii kernel (autorul, în general, nu recomandă să faceți acest lucru).

De ce se întâmplă asta? Pentru că Apple a avut grijă de noi. În versiunile recente de macOS, nu puteți injecta cu ușurință cod străin în procesul de pornire. Bunii programatori Apple au blocat acest comportament distructiv. Mai exact, l-au blocat la jumătate, când așteptarea șoferului este implementată, dar șoferul în sine nu, așa că totul îngheață.

Ce ar trebui să facă o minte sofisticată înainte de a instala un driver? Mai întâi, dați comanda:

csrutil status

Dacă ca răspuns la aceasta primim:

Stare de protecție a integrității sistemului: activată.

atunci asta înseamnă că bunilor programatori Apple le pasă de noi, așa că nimic nu va funcționa pentru noi până când nu le dezactivăm minunata protecție. Pentru a face acest lucru, reporniți la partiția de recuperare (⌘R), apelați terminalul și lansați comanda:

csrutil disable

După aceasta, repornim în sistemul de lucru și abia apoi instalăm driverul și, în același timp, utilitarul de configurare ATTO (în principiu, utilitarul de configurare este necesar doar pentru diagnosticare și nu este necesar în timpul funcționării normale). Pe parcurs, când sunt întrebați, confirmăm autorizarea ATTO în setările sistemului. După instalare, puteți reporni din nou în partiția de recuperare și puteți da comanda

csrutil enable

Apple are din nou grijă de noi.

Acum avem o interfață suportată de driver pentru dispozitive SAS externe (sau FC, dacă a fost folosit un convertor FC). Dar cum să lucrezi cu bandă la nivel logic?

După cum știe mintea neexperimentată, dar erudită, orice sistem compatibil Unix acceptă unități de bandă la nivelul nucleului și utilitarele de bază ale sistemului, care includ în primul rând mt (gestionarea benzilor) și tar (arhivatorul care acceptă lucrul cu arhive pe bandă) . Totuși, ce poate spune o minte sofisticată despre asta? Orice sistem compatibil Unix, cu excepția macOS. Apple a avut grijă de noi eliminând suportul pentru dispozitivele de bandă din codul său.

Dar este cu adevărat imposibil să returnezi acest cod prin portarea utilităților standard open-source Unix pe macOS? Vestea bună este că Tolis (la care nu fac link) a făcut deja acest lucru în produsul lor Tolis Tape Tools. Vestea proastă este că compania menționată costă 399 USD pentru a utiliza rezultatele muncii sale. Estimările acestui fapt pot varia, dar autorul personal nu este pregătit să plătească cuiva 400 de dolari pentru un cod care a fost scris în mare parte de oameni complet diferiți și a fost utilizat în mod deschis din anii 1970 și, prin urmare, autorul își pune această întrebare pentru el însuși. consideră închisă. (Apropo, există un proiect gratuit abandonat într-o stare vagă pe Github IOSCSITape pe aceeași temă).

Din fericire, în lume există corporația IBM, ale cărei apetite comerciale sunt la o scară complet diferită și, prin urmare, nu se manifestă în fiecare lucru mic. În special, a dezvoltat sistemul de fișiere cu bandă LTFS open-source, care este distribuit și pentru macOS.

Avertismentul aici este că diferiți producători de dispozitive de bandă își lansează propriile versiuni de LTFS pentru a-și susține dispozitivele. Deoarece autorul folosește o unitate de bandă IBM, a instalat LTFS de la IBM. Unitățile terță parte pot necesita propriile porturi LTFS. Și există o implementare universală a openLTFS pe Github și Homebrew.

Este important pentru noi ca LTFS să folosească funcția de partiționare media și, prin urmare, poate funcționa cu dispozitive și cartușe începând cu generația LTO-5.

Deci, în cazul nostru, descarcăm IBM Spectrum Archive Single Drive Edition pentru macOS de pe site-ul web IBM, care include implementarea LTFS. Fără aventuri, instalăm produsul folosind propriul său program de instalare. Pe parcurs, instalează și pachetul FUSE, iar în setările sistemului va trebui să confirme autorizarea unui programator inteligent pe nume Anatol Pomozov, de care în acest caz depinde întregul IBM. Respect și respect pentru acest om.

Este recomandabil să scrieți imediat linia în fișierul /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local:

opțiunea single-drive sync_type=time@1

care specifică că banda este montată implicit și tamponul de înregistrare este resetat după 1 minut de inactivitate (implicit este de 5 minute).

Apple Mac și dispozitive de lux. LTO, SAS, Fibre Channel, eSATA

În sfârșit, totul este gata de conectare. Conectăm lanțul: Mac – adaptor T3/T2 – cablu Thunderbolt – convertor ATTO – cablu SAS – unitate de bandă (alegerea mai multor porturi pe Mac, convertor și unitate nu este importantă). Porniți puterea convertorului. Porniți alimentarea unității de bandă. Așteptăm ca unitatea să finalizeze inițializarea conform indicației sale.

Dam comanda:

ltfs -o device_list

Ura! Obținem (în modul obișnuit de diagnosticare IBM):

307 LTFS14000I Pornirea LTFS, versiunea LTFS 2.4.2.0 (10418), nivelul de jurnal 2.
307 LTFS14058I LTFS Format Specification versiunea 2.4.0.
307 LTFS14104I Lansat de „ltfs -o device_list”.
307 LTFS14105I Acest binar este construit pentru Mac OS X.
307 LTFS14106I Versiunea GCC este 4.2.1 compatibil Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Versiunea Kernel: Versiunea Kernel Darwin 19.4.0: Miercuri 4 Mar 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS17085I Plugin: Se încarcă backend-ul bandă „iokit”.
Lista dispozitivelor de bandă:.
Nume dispozitiv = 0, ID furnizor = IBM, ID produs = ULT3580-TD5, Număr de serie = **********, Nume produs = [ULT3580-TD5].

Introduceți caseta, așteptați să se încarce și să formatați:

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

Aici parametrul -d specifică numărul unității (întotdeauna zero dacă este singurul, dar nu poate fi omis în această comandă), -n este numele benzii (puteți omite), iar parametrul -r necesită plasarea conținutului de fișiere .DS_Store care nu depășesc dimensiunea de 10 megaocteți, în secțiunea de index (adică, destinate directoarelor) a benzii în locul secțiunii de date.

Viața misterioasă a început în unitatea de bandă. Așteptăm câteva minute și primim următorul răspuns:

LTFS15000I Pornește mkltfs, versiunea LTFS 2.4.2.0 (10418), nivelul de jurnal 2.
LTFS15041I Lansat de „mkltfs -d 0 -nTest -r size=10M/name=.DS_Store”.
LTFS15042I Acest binar este construit pentru Mac OS X.
Versiunea LTFS15043I GCC este 4.2.1 compatibil Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
LTFS17087I Versiunea Kernel: Versiunea Kernel Darwin 19.4.0: Miercuri 4 Mar 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Dispozitiv de formatare „0”.
LTFS15004I Dimensiune bloc de volum LTFS: 524288.
LTFS15005I Politica de plasare a partiției indexate: dimensiune=10M/nume=.DS_Store.

LTFS11337I Actualizați indicatorul index-dirty (1) - NO_BARCCODE (0x0x1021081e0).
Plugin LTFS17085I: Se încarcă backend-ul bandă „iokit”.
LTFS30810I Deschiderea unui dispozitiv prin driverul iokit (0).
LTFS30814I ID-ul furnizorului este IBM.
ID-ul produsului LTFS30815I este „ULT3580-TD5”.
LTFS30816I Revizia de firmware este H976.
Serialul unității LTFS30817I este **********.
LTFS17160I Dimensiunea maximă a blocului dispozitivului este 1048576.
LTFS11330I Cartuș de încărcare.
LTFS30854I Protecția blocurilor logice este dezactivată.
LTFS11332I Încărcare reușită.
LTFS17157I Modificarea setării unității în modul de scriere oriunde.
LTFS15049I Verificarea mediului (montura).
LTFS30854I Protecția blocurilor logice este dezactivată.
LTFS15010I Crearea partiției de date b pe partiția SCSI 1.
LTFS15011I Crearea partiției index a pe partiția SCSI 0.
LTFS17165I Resetarea proporției de capacitate a mediului.
LTFS11097I Partiționarea mediului.
LTFS11100I Scrierea etichetei pe partiția b.
LTFS11278I Scrierea indexului pe partiția b.
LTFS30808I READ_ATTR (0x8c) returnează -20501.
LTFS30865I READ_ATTR returnează câmp invalid în CDB (-20501) 0.
LTFS30836I Nu se poate citi atributul (-20501).
LTFS11336I Atributul nu există. Ignorați eroarea așteptată.
LTFS17235I Scrierea indexului NO_BARCODE în b (Motiv: Format, 0 fișiere) **********.
LTFS17236I S-a scris indexul NO_BARCCODE (b, **********).
LTFS11337I Actualizați indicatorul index-dirty (0) - NO_BARCCODE (0x0x1021081e0).
LTFS11100I Scrierea etichetei pe partiție a.
LTFS11278I Scrierea indexului pe partiție a.
LTFS30808I READ_ATTR (0x8c) returnează -20501.
LTFS30865I READ_ATTR returnează câmp invalid în CDB (-20501) 0.
LTFS30836I Nu se poate citi atributul (-20501).
LTFS11336I Atributul nu există. Ignorați eroarea așteptată.
LTFS17235I Scrierea indexului NO_BARCODE într-un (Motiv: Format, 0 fișiere) 9068025555.
LTFS17236I Am scris indexul NO_BARCCODE (a, **********).
LTFS15013I Volume UUID is: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

LTFS15019I Capacitatea volumului este de 1425 GB.
LTFS30854I Protecția blocurilor logice este dezactivată.
LTFS15024I Mediu a fost formatat cu succes.

Montați banda formatată:

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

Mai avem câteva minute de funcționare și diagnosticare a unității:

307 LTFS14000I Pornirea LTFS, versiunea LTFS 2.4.2.0 (10418), nivelul de jurnal 2.
307 LTFS14058I LTFS Format Specification versiunea 2.4.0.
307 LTFS14104I Lansat de „ltfs /Volumes/LTFS/”.
307 LTFS14105I Acest binar este construit pentru Mac OS X.
307 LTFS14106I Versiunea GCC este 4.2.1 compatibil Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Versiunea Kernel: Versiunea Kernel Darwin 19.4.0: Miercuri 4 Mar 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS14063I Tipul de sincronizare este „timp”, timpul de sincronizare este de 60 de secunde.
307 LTFS17085I Plugin: Se încarcă backend-ul bandă „iokit”.
307 LTFS17085I Plugin: se încarcă backend-ul iosched „unificat”.
307 LTFS14095I Setați modul de scriere oriunde al dispozitivului de bandă pentru a evita ejectarea cartuşului.
307 LTFS30810I Deschiderea unui dispozitiv prin driverul iokit (0).
307 LTFS30814I ID-ul furnizorului este IBM.
307 LTFS30815I ID-ul produsului este „ULT3580-TD5”.
307 LTFS30816I Revizia de firmware este H976.
307 LTFS30817I Unitatea de serie este **********.
307 LTFS17160I Dimensiunea maximă a blocului dispozitivului este 1048576.
307 LTFS11330I Cartuș de încărcare.
307 LTFS30854I Protecția blocurilor logice este dezactivată.
307 LTFS11332I Încărcare reușită.
307 LTFS17157I Modificarea setării unității în modul scriere oriunde.
307 LTFS11005I Montarea volumului.
307 LTFS30854I Protecția blocurilor logice este dezactivată.
307 LTFS17227I Atribut bandă: Furnizor = IBM.
307 LTFS17227I Atribut bandă: Nume aplicație = LTFS.
307 LTFS17227I Atribut bandă: Versiunea aplicației = 2.4.2.0.
307 LTFS17227I Atribut bandă: Etichetă medie =.
307 LTFS17228I Atribut bandă: ID de localizare text = 0x81.
307 LTFS17227I Atribut bandă: Cod de bare =.
307 LTFS17227I Atribut bandă: Versiune format aplicație = 2.4.0.
307 LTFS17228I Atribut bandă: Stare blocare volum = 0x00.
307 LTFS17227I Atribut bandă: Media Pool name =.
307 LTFS14111I Configurarea inițială a fost finalizată cu succes.
307 LTFS14112I Invocați comanda „mount” pentru a verifica rezultatul configurării finale.
307 LTFS14113I Punctul de montare specificat este listat dacă a reușit.

Și iată-l, panglica noastră de pe desktop, numită Test(ltfs)! Banda fără nume va fi numită OSXFUSE Volum 0 (ltfs).

Acum poți lucra cu el.

Apple Mac și dispozitive de lux. LTO, SAS, Fibre Channel, eSATA

În general, trebuie să rețineți că este recomandabil să nu folosiți în exces vizualizarea conținutului directoarelor de benzi în ferestrele de căutare, deoarece aceasta este o operațiune incredibil de costisitoare pentru LTFS, dar este mai bine să lucrați cu comenzile terminalului sau pur și simplu să resetați directorul de rezervă în bloc pe bandă, așa cum se arată în fereastra de mai sus.

Apropo, există un utilitar IBM special scris ltfs_copy și clonele sale, concepute pentru o copiere mai eficientă între bandă și disc, dar până acum autorul nu a reușit să le găsească în domeniul public cu o căutare superficială.

Puteți demonta banda cu comanda:

umount /Volumes/LTFS

sau pur și simplu aruncați-l la gunoi.

De fapt, în natură există un fel de shell-uri grafice pentru macOS pentru a facilita aceste acțiuni, dar după astfel de perversiuni, ar trebui să ne fie frică să introducem câteva rânduri în terminal?

Ca efect secundar, avem posibilitatea de a conecta unități externe eSATA printr-un cablu SAS/4*eSATA.

Apple Mac și dispozitive de lux. LTO, SAS, Fibre Channel, eSATA

Sursa: www.habr.com

Adauga un comentariu