Apple Mac och de mÀrkliga enheterna. LTO, SAS, Fibre Channel, eSATA

Temat för denna artikel Àr att ansluta externa enheter till Mac via SAS-, Fibre Channel (FC)- och eSATA-grÀnssnitt. Vi vill genast klargöra att det finns en enklare vÀg för att fÄ tillgÄng till dessa enheter: bygga en billig PC, installera ett HBA SAS eller FC kontrollerkort (till exempel en enkel LSI-adapter), ansluta dina enheter till den hÀr kontrollerkortet, installera valfritt Linux pÄ PC:n och arbeta med Mac genom nÀtverket. Men det Àr banalt och ointressant. Vi kommer att ta den hÄrdare vÀgen och ansluta vÄra enheter direkt till Mac.

Vad vi behöver för detta:
– en rejĂ€l summa pengar för inköp av ny hĂ„rdvara, eller tur pĂ„ auktioner pĂ„ eBay (dĂ€r, med lite anstrĂ€ngning, kan man köpa nödvĂ€ndig hĂ„rdvara frĂ„n tidigare generationer för tio gĂ„nger mindre Ă€n enligt det officiella priset);
– denna artikel.

För att arbeta med magnetband (för nÀrvarande nÀstan allmÀnt tillgÀngligt i LTO-format) behöver du en bandmaskin (streamer) eller ett bandbibliotek av LTO-standard. Detta Àr en ganska dyr enhet vid första köpet (frÄn hundratusentals rubel), men rimligt prissatt vid köp av begagnat. Eftersom LTO-generationerna byts ut ungefÀr vartannat Är, och kompatibiliteten Àr begrÀnsad till tvÄ generationer, sÄ Àr sekundÀrmarknaden ganska mÀttad med fungerande enheter som Àr fyra Är eller Àldre, det vill sÀga frÄn föregÄende generation och Àldre. Om du köper en ny enhet för kommersiella ÀndamÄl förstÄr du sjÀlv varför du behöver den. Om du vill köpa för hemmet och familjen kan du övervÀga detta alternativ som ett sÀtt att arkivera information (eftersom sjÀlva media Àr vÀldigt billiga per 1 gigabyte).

FrÄn och med LTO-5 (och delvis LTO-4) ansluts enheterna för arbete med magnetband hÄrdvarumÀssigt till datorn via SAS- eller FC-grÀnssnitt (vanligtvis finns det tvÄ versioner av varje enhet).

Å andra sidan erbjuder Apple oss pĂ„ vĂ„r Mac ett USB-C-grĂ€nssnitt (som fungerar med USB, Thunderbolt 3 eller DisplayPort-protokoll), ibland ett Ethernet-grĂ€nssnitt och Ă€ven egna adaptrar Thunderbolt 3 – Thunderbolt 2 och Thunderbolt – FireWire 800.

KrÀvande lÀge? Inte helt. Lyckligtvis kan Thunderbolt-bussen fungera i PCIe-lÀge och möjliggöra anslutning av PCIe-kort pÄ samma sÀtt som om de var installerade direkt inuti datorn. Detta möjliggör alla typer av hÄrdvaruuppgraderingar av Macen, förutsatt att rÀtt adapter och drivrutiner finns.

Det enklaste konceptuella sÀttet att lösa problemet Àr en extern lÄda för PCIe-adaptrar med Thunderbolt-grÀnssnitt (PCIe card expansion system), dÀr en SAS- eller FC-kontroller (Host bus adapter, HBA) kan installeras. Till exempel tillverkar företaget Sonnet och nÄgra andra. Det finns en viktig detalj: inte varje kontroller fungerar för oss, utan bara de som har drivrutiner för macOS. Det finns faktiskt inte mÄnga sÄdana kort, och de billigaste och mest populÀra (som de frÄn LSI) ingÄr inte bland dem. Lyckligtvis har företaget Sonnet anstrÀngt sig för att skapa en kompatibilitetstabell för PCIe-kort med olika operativsystem via Thunderbolt-grÀnssnittet.

Ett annat sÀtt att lösa problemet Àr att köpa en fÀrdig Thunderbolt-till-SAS eller Thunderbolt-till-FC-konverterare, vilket i huvudsak Àr en fÀrdig sammansÀttning av lÄda och kontroller. Det mest kÀnda företaget inom detta omrÄde Àr ATTO, men det finns ocksÄ produkter frÄn andra företag.

Det Àr vÀrt att notera att inte alla SAS- och FC-kontroller Àr certifierade för att uppfylla LTO-standarden, eftersom detta i sig kostar pengar. Vissa tillverkare skriver direkt att deras kontroller inte Àr avsedda att fungera med bandlagringsmedier.

För att ge en fullstÀndig bild noterar vi att företaget mLogic tillverkar enhet, som utgör en IBM LTO-8-lagringsenhet i ett externt hölje dÀr en SAS-till-Thunderbolt 3-konverterare Àr integrerad. Detta Àr dock nÄgot Ànnu mer exekt Àn allt ovanstÄende, sÀrskilt i vÄra trakter. Jag tvivlar pÄ att denna enhet ens kan importeras lagligt till Ryssland (LTO-lagringsmedier innehÄller kryptografiska verktyg, och tillverkare som IBM och HP mÄste dÀrför fÄ ett tillstÄnd frÄn FSB för import av varje modell).

Vi kommer nu att titta pÄ ett specifikt utrustningspaket som författaren blev Àgare till efter flera lyckade köp, men den allmÀnna principen bör gÀlla för alla alternativ.

SÄ, för att arbeta med bÀnder har vi följande utrustning:
– dator Apple Mac mini 2018 med macOS 10.15 Catalina, som har USB-C-portar med stöd för Thunderbolt 3;
– adapter Apple Thunderbolt 3 / Thunderbolt 2;
– kabel Apple Thunderbolt 2;
– grĂ€nsvĂ€rdeskonverterare ATTO ThunderLink SH 1068 (2*Thunderbolt / 2*SAS-2);
– SAS-kabel SFF-8088 – SFF-8088;
– bandlagringsenhet LTO-5 IBM TS2350;
– LTO-5-kassetter, rengöringskassett.

Nu, som man sÀger, med allt detta krÄngel kommer vi att försöka ta oss ivÀg.

Ladda ner den senaste versionen av drivrutinen ThunderLink SH 1068 frÄn ATTO:s webbplats (tydligen Àr den sammanslagen med drivrutinen för SH 2068 och finns i avsnittet 2068, vilket endast nÀmns i arkivet med drivrutinen) och den konfigurationstjÀnst ATTO.

Apple Mac och de mÀrkliga enheterna. LTO, SAS, Fibre Channel, eSATA

Drivrutinen behöver naturligtvis installeras. Innan sÄdana ÄtgÀrder rekommenderar författaren att alltid göra en ögonblicksbild av APFS-filsystemet pÄ startdisken med kommandot

tmutil localsnapshot

eller en sÀkerhetskopia av startdisken om den Àr HFS+. Man vet ju aldrig. Sedan Àr det lÀtt att ÄtergÄ frÄn ögonblicksbilden.

DĂ€refter kommer en ovetande, men varsam och intelligent person sĂ€kert att lĂ€sa ATTO:s installationsanvisningar för drivrutinen noggrant och följa dem. Resultatet – tadam! – Ă€r en operativsystem som hĂ€nger vid startsteget. HĂ€r kan vi ha nytta av ögonblicksbilden, frĂ„n vilken vi kan Ă„terstĂ€lla oss genom att kalla pĂ„ Time Machine frĂ„n Ă„terstĂ€llningspartitionen, eller sĂ„ kan vi manuellt ta bort den problematiska kexten frĂ„n kĂ€rnans utvidgningskatalog (författaren rekommenderar vanligtvis inte att göra sĂ„).

Varför hÀnder detta? För att företaget Apple har tagit hand om oss. I de senaste versionerna av macOS kan man inte sÄ enkelt införa frÀmmande kod i startprocessen. SnÀlla programmerare hos Apple har blockerat sÄdant destruktivt beteende. Mer specifikt har de blockerat det till hÀlften, nÀr vÀntan pÄ drivrutinen sÀtts in, men sjÀlva drivrutinen inte, vilket gör att allt bara hÀnger.

Vad bör en erfaren person göra innan installationen av drivrutinen? Först ge kommandot:

csrutil status

Om vi fÄr svaret:

System Integrity Protection status: enabled.

sĂ„ betyder det att snĂ€lla programmerare hos Apple tar hand om oss, sĂ„ inget kommer att fungera förrĂ€n vi inaktiverar deras fantastiska skydd. För att göra det, starta om i Ă„terstĂ€llningspartitionen (⌘R), öppna terminalen och ge kommandot:

csrutil disable

Efter detta startar vi om i det arbetande systemet, och dÄ installerar vi drivrutinen, och samtidigt ATTO-konfigurationsverktyget (i praktiken behövs konfigurationsverktyget bara för diagnos och krÀvs inte vid normal drift). Under tiden, nÀr det efterfrÄgas, bekrÀftar vi i systeminstÀllningarna ATTO-företagets auktorisering. Efter installationen kan man Äterigen starta om till ÄterstÀllningspartitionen och ge kommandot

csrutil enable

Apple bryr sig Äterigen om oss.

Nu har vi ett drivrutinsstödd grÀnssnitt till externa SAS-enheter (eller FC, om en FC-konverterare anvÀnts). Men hur ska man arbeta med band pÄ logisk nivÄ?

Som den okunniga men lÀrda mÀnniskan vet, stöder alla Unix-kompatibla system bandlagring pÄ kÀrnnivÄ och grundlÀggande systemverktyg, som frÀmst inkluderar mt (bandhantering) och tar (arkiverare med stöd för arbete med arkiv pÄ band). Men vad skulle en lÀrd person tillÀgga om detta? Alla Unix-kompatibla system, förutom macOS. Apple har brytt sig om oss genom att ta bort stödet för bandanordningar frÄn sin kod.

Men kan man inte Ă„terföra denna kod genom att portera standard open source-verktyg frĂ„n Unix till macOS? Den goda nyheten Ă€r att företaget Tolis (som jag inte ger en lĂ€nk till) redan gjort detta i sin produkt Tolis Tape Tools. Den dĂ„liga nyheten Ă€r att företaget bedömer anvĂ€ndningen av sina resultat till 399 USD. Åsikter om denna fakta kan variera, men för min del Ă€r jag inte beredd att betala nĂ„gon 400 dollar för kod som mestadels skrivits av helt andra personer och som varit fritt tillgĂ€nglig sedan 1970-talet, dĂ€rför anser jag denna frĂ„ga vara stĂ€ngd. (För övrigt finns det ett övergivet projekt pĂ„ GitHub IOSCSITape om samma Ă€mne).

Lyckligtvis finns det ett företag som heter IBM, vars kommersiella begÀr har helt andra dimensioner och dÀrför inte syns i varje smÄsak. SÀrskilt har de utvecklat det bandfilssystemet LTFS med öppen kÀllkod, som ocksÄ distribueras för macOS.

Det finns en nyans hÀr, nÀmligen att olika tillverkare av bandlagringsenheter slÀpper sina egna versioner av LTFS, som stödjer sina enheter. Eftersom författaren anvÀnder en IBM bandlagringsenhet, Àr Àven LTFS installerad frÄn IBM. För enheter frÄn andra företag kan det krÀvas deras egna LTFS-portar. Det finns ocksÄ en universell implementation av openLTFS pÄ GitHub och Homebrew.

Det Àr viktigt för oss att LTFS anvÀnder funktionaliteten för partitionering av media och dÀrför kan arbeta med enheter och kassetter frÄn och med generationen LTO-5.

SÄ, i vÄrt fall laddar vi ner produkten IBM Spectrum Archive Single Drive Edition för macOS frÄn IBMs webbplats, som just innehÄller implementationen av LTFS. Utan nÄgra problem installerar vi produkten med sin egen installationsprogramvara. Under installationen installeras Àven paketet FUSE, och i systeminstÀllningarna mÄste vi bekrÀfta behörigheten av en smart programmerare vid namn Anatol Pomozov, vilket Àr avgörande för hela IBM i det hÀr fallet. Respekt och beundran för denna person.

Det Àr klokt att direkt i filen /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local ange raden:

option single-drive sync_type=time@1

som stÀller in montering av band som standard med en buffertÄterstÀllning efter 1 minut av inaktivitet (standard Àr 5 minuter).

Apple Mac och de mÀrkliga enheterna. LTO, SAS, Fibre Channel, eSATA

Äntligen Ă€r allt klart för anslutning. Vi ansluter kedjan: Mac – T3/T2-adapter – Thunderbolt-kabel – ATTO-konverterare – SAS-kabel – bandlagringsenhet (valet mellan flera portar pĂ„ Mac, konverteraren och lagringsenheten spelar ingen roll). Vi slĂ„r pĂ„ strömmen till konverteraren. Vi slĂ„r pĂ„ strömmen till bandlagringsenheten. Vi vĂ€ntar tills lagringsenheten Ă€r fĂ€rdig med sin initialization, enligt dess indikator.

Vi ger kommandot:

ltfs -o device_list

Hurra! Vi fÄr (i vanlig IBM diagnostisk stil):

307 LTFS14000I LTFS startar, LTFS version 2.4.2.0 (10418), loggnivÄ 2.
307 LTFS14058I LTFS format specifikation version 2.4.0.
307 LTFS14104I Lanserad av «ltfs -o device_list».
307 LTFS14105I Denna binÀrfil Àr byggd för Mac OS X.
307 LTFS14106I GCC-versionen Àr 4.2.1 Kompatibel Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I KĂ€rnversion: Darwin KĂ€rnversion 19.4.0: Ons Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS17085I Plugin: Laddar «iokit» band backend.
Bandenhetens lista:
Enhetsnamn = 0, Leverantörs ID = IBM, Produkt ID = ULT3580-TD5, Serienummer = **********, Produktnamn =[ULT3580-TD5].

Vi sÀtter in kassetten, vÀntar pÄ att den laddas och formaterar:

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

HÀr anger parametern -d enhetens nummer (alltid noll om det Àr den enda, men den fÄr inte utelÀmnas i detta kommando), -n Àr namnet pÄ bandet (kan utelÀmnas), och parametern -r krÀver att innehÄllet i .DS_Store-filer, som inte överstiger 10 megabyte i storlek, placeras i det indexerade (dvs. avsett för kataloger) avsnittet av bandet istÀllet för datavsnittet.

Det mystiska livet pÄ bandlagringssystemet har börjat. Vi vÀntar nÄgra minuter och fÄr tillbaka:

LTFS15000I Startar mkltfs, LTFS version 2.4.2.0 (10418), loggnivÄ 2.
LTFS15041I Startad av «mkltfs -d 0 -nTest -r size=10M/name=.DS_Store».
LTFS15042I Denna binÀr Àr byggd för Mac OS X.
LTFS15043I GCC-versionen Àr 4.2.1 Kompatibel Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
LTFS17087I Kernelversion: Darwin Kernel Version 19.4.0: Ons Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Formaterar enhet ‘0’.
LTFS15004I LTFS volym blockstorlek: 524288.
LTFS15005I Indexpartitions placering politik: size=10M/name=.DS_Store.

LTFS11337I Uppdaterar index-dirty flagga (1) — NO_BARCODE (0x0x1021081e0).
LTFS17085I Plugin: Laddar «iokit» bandbackend.
LTFS30810I Öppnar en enhet genom iokit-drivrutin (0).
LTFS30814I Leverantörs-ID Àr IBM.
LTFS30815I Produkt-ID Ă€r ‘ULT3580-TD5 ‘.
LTFS30816I Firmwareversion Àr H976.
LTFS30817I Enhetsserienummer Àr **********.
LTFS17160I Maximal enhet blockstorlek Àr 1048576.
LTFS11330I Laddar kassett.
LTFS30854I Logisk blockskydd Àr inaktiverat.
LTFS11332I Laddning lyckad.
LTFS17157I Ändrar enhetsinstĂ€llningen till skriv-varsomhelst-lĂ€ge.
LTFS15049I Kontrollerar mediumet (montera).
LTFS30854I Logisk blockskydd Àr inaktiverat.
LTFS15010I Skapar datapartition b pÄ SCSI-partition 1.
LTFS15011I Skapar indexpartition a pÄ SCSI-partition 0.
LTFS17165I ÅterstĂ€ller mediumets kapacitetsandel.
LTFS11097I Partitionerar mediumet.
LTFS11100I Skriver etikett till partition b.
LTFS11278I Skriver index till partition b.
LTFS30808I READ_ATTR (0x8c) Äterger -20501.
LTFS30865I READ_ATTR Äterger ogiltigt fÀlt i CDB (-20501) 0.
LTFS30836I Kan inte lÀsa attribut (-20501).
LTFS11336I Attributet existerar inte. Ignorera det förvÀntade felet.
LTFS17235I Skriver index av NO_BARCODE till b (Anledning: Format, 0 filer) **********.
LTFS17236I Skrev index av NO_BARCODE (b, **********).
LTFS11337I Uppdaterar index-dirty flagga (0) — NO_BARCODE (0x0x1021081e0).
LTFS11100I Skriver etikett till partition a.
LTFS11278I Skriver index till partition a.
LTFS30808I READ_ATTR (0x8c) Äterger -20501.
LTFS30865I READ_ATTR Äterger ogiltigt fÀlt i CDB (-20501) 0.
LTFS30836I Kan inte lÀsa attribut (-20501).
LTFS11336I Attributet existerar inte. Ignorera det förvÀntade felet.
LTFS17235I Skriver index av NO_BARCODE till a (Anledning: Format, 0 filer) 9068025555.
LTFS17236I Skrev index av NO_BARCODE (a, **********).
LTFS15013I Volym UUID Àr: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

LTFS15019I Volymkapacitet Àr 1425 GB.
LTFS30854I Logisk blockskydd Àr inaktiverat.
LTFS15024I Mediumet formaterades framgÄngsrikt.

Monterar det formaterade bandet:

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

FÄr ytterligare nÄgra minuter av enhetens arbete, diagnostik:

307 LTFS14000I LTFS startar, LTFS version 2.4.2.0 (10418), loggnivÄ 2.
307 LTFS14058I LTFS format specifikation version 2.4.0.
307 LTFS14104I Startad av «ltfs /Volumes/LTFS/».
307 LTFS14105I Denna binÀrfil Àr byggd för Mac OS X.
307 LTFS14106I GCC-versionen Àr 4.2.1 Kompatibel Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I KĂ€rnversion: Darwin KĂ€rnversion 19.4.0: Ons Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS14063I Sync-typ Àr «tid», Sync-tid Àr 60 sek.
307 LTFS17085I Plugin: Laddar «iokit» band backend.
307 LTFS17085I Plugin: Laddar «unified» iosched backend.
307 LTFS14095I SÀtt bandenhetens skriv-varsomhelst-lÀge för att undvika utdrivning av kassetten.
307 LTFS30810I Öppnar en enhet genom iokit-drivrutin (0).
307 LTFS30814I Leverantörs-ID Àr IBM.
307 LTFS30815I Produkt-ID Ă€r ‘ULT3580-TD5 ‘.
307 LTFS30816I Firmwareversion Àr H976.
307 LTFS30817I Enhetsserienummer Àr **********.
307 LTFS17160I Maximal enhet blockstorlek Àr 1048576.
307 LTFS11330I Laddar kassett.
307 LTFS30854I Logisk blockskydd Àr inaktiverat.
307 LTFS11332I Laddning lyckad.
307 LTFS17157I Ändrar enhetsinstĂ€llningen till skriv-varsomhelst-lĂ€ge.
307 LTFS11005I Montera volymen.
307 LTFS30854I Logisk blockskydd Àr inaktiverat.
307 LTFS17227I Bandattribut: Leverantör = IBM.
307 LTFS17227I Bandattribut: Applikationsnamn = LTFS.
307 LTFS17227I Bandattribut: Applikationsversion = 2.4.2.0.
307 LTFS17227I Bandattribut: Mediumetikett =.
307 LTFS17228I Bandattribut: Textlokaliserings-ID = 0x81.
307 LTFS17227I Bandattribut: Streckkod =.
307 LTFS17227I Bandattribut: Applikationsformatversion = 2.4.0.
307 LTFS17228I Bandattribut: VolymlÄsstatus = 0x00.
307 LTFS17227I Bandattribut: Mediapoolnamn =.
307 LTFS14111I Initial konfiguration slutförd framgÄngsrikt.
307 LTFS14112I Anropa ‘mount’-kommandot för att kontrollera resultatet av den slutliga konfigurationen.
307 LTFS14113I Angivet monteringspunkt anges om det lyckas.

Och hÀr Àr vÄr band pÄ skrivbordet, med namnet Test(ltfs)! Den namnlösa bandet fÄr namnet OSXFUSE Volume 0 (ltfs).

Nu kan du arbeta med den.

Apple Mac och de mÀrkliga enheterna. LTO, SAS, Fibre Channel, eSATA

Det Àr vÀrt att notera att det Àr bÀst att inte överanvÀnda visningen av katalogens innehÄll i Finder, eftersom detta Àr en otroligt resurskrÀvande operation för LTFS. Det Àr bÀttre att arbeta med terminalkommandon, eller helt enkelt överföra det sÀkerhetskopierade katalogen i bulk till bandet, som visat i fönstret ovan.

Det finns för övrigt en specialskriven IBM-verktyg ltfs_copy och dess kloner, designade för mer effektiv kopiering mellan band och disk, men för nÀrvarande har författaren inte kunnat hitta dem tillgÀngliga vid en ytlig sökning.

För att avmontera bandet kan du anvÀnda kommandot:

umount /Volumes/LTFS

eller helt enkelt slÀnga det i papperskorgen.

Det finns grafiska grÀnssnitt för macOS som förenklar dessa ÄtgÀrder, men efter sÄdana krumbukter, varför skulle vi vara rÀdda för att skriva nÄgra rader i terminalen?

Som en biprodukt fÄr vi möjlighet att genom SAS/4*eSATA-kabeln ansluta externa eSATA-diskar.

Apple Mac och de mÀrkliga enheterna. LTO, SAS, Fibre Channel, eSATA

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster