Apple Mac és különös eszközök. LTO, SAS, Fibre Channel, eSATA

A cikk témája a külső eszközök csatlakoztatása Mac-hez SAS, Fibre Channel (FC) és eSATA interfészeken keresztül. Azonnal tisztázzuk, hogy a feladat megoldására létezik egy egyszerűbb út: összeszerelni egy olcsó PC-t, bedugni egy HBA SAS vagy FC vezérlőkártyát (például egy egyszerű LSI adaptert), csatlakoztatni e vezérlőhöz a saját eszközeit, telepíteni a PC-re bármilyen Linuxot, és hálózaton keresztül dolgozni a Mac-ből. De ez banális és unalmas. A hardcore irányt választjuk, és csatlakoztatjuk a saját eszközeinket. közvetlenül a Mac-hez.

Mire lesz szükségünk:
– megfelelő mennyiségű pénzre az új berendezések megvásárlásához, vagy szerencsére az eBay aukciókon (ahol egy kis erőfeszítéssel a szükséges, korábbi generációs berendezéseket akár 10-szer olcsóbban is meg lehet vásárolni, mint a listaár);
– ez a cikk.

Ahhoz, hogy mágneses szalagról dolgozzunk (jelenleg szinte mindenhol elérhető az LTO formátum), szükség van egy szalagos tárolóra (streamer) vagy egy LTO szabványú szalagos könyvtárra. Ez egy meglehetősen drága eszköz az első vásárláskor (több százezer forinttól kezdődően), de másodkézből ésszerű áron megkapható. Mivel az LTO generációk körülbelül kétévente változnak, és a kompatibilitás két generációra korlátozódik, a másodlagos piacban bőségesen található működőképes eszköz a négyéves és annál idősebbek között, azaz a korábbi és az azt megelőző generációk között. Ha új eszközt vásárol kereskedelmi célokra, akkor magától értetődik, miért van szüksége rá. Ha otthoni és családi célokra szeretne vásárolni, akkor ezt az archiválás módjaként is megfontolhatja (mivel maguk a médiák nagyon olcsók 1 gigabyte-ra vetítve).

Az LTO-5 generációtól kezdve (és részben LTO-4-től) a mágneses szalagról dolgozó eszközök hardveresen csatlakoznak a számítógéphez SAS vagy FC interfészen keresztül (általában minden eszköznek két kivitele létezik).

Másrészről, az Apple kedvesen biztosít a Mac-en USB-C interfészt (amely USB, Thunderbolt 3 vagy DisplayPort protokollokon működik), néha Ethernet interfészt, valamint saját Thunderbolt 3 – Thunderbolt 2 és Thunderbolt – FireWire 800 adaptereket.

Nincs kiút? Nem egészen. Szerencsére a Thunderbolt busz PCIe módban működhet, és lehetőséget biztosít PCIe kártyák csatlakoztatására, úgy, mintha azok közvetlenül a számítógép házába lennének beépítve. Ezzel bármilyen hardverkonfiguráció kibővítése lehetséges a Mac esetében, ha rendelkezésre áll a megfelelő adapter és illesztőprogramok.

A feladat legegyszerűbb megoldása egy Thunderbolt interfésszel rendelkező PCIe adapterek számára készült külső doboz (PCIe kártya bővítő rendszer), amelybe telepíthető egy SAS vagy FC vezérlő (Host bus adapter, HBA). Például ilyen dobozokat gyárt a Sonnet és néhány más cég. Van egy kis árnyalat: nem minden vezérlő fog megfelelni nekünk, csak azok, amelyekhez macOS illesztőprogram áll rendelkezésre. Az ilyen kártyákból meglehetősen kevés van, a legolcsóbb és legnépszerűbb (például az LSI) ezt a csoportot nem tartalmazza. Szerencsére a Sonnet cég fáradtságot vett arra, hogy összeállítson egy kompatibilitási táblázatot a PCIe kártyák és a különböző operációs rendszerek Thunderbolt interfészen keresztüli összekapcsolásához.

Egy másik megoldás a Thunderbolt – SAS vagy Thunderbolt – FC interfészkonverter megvásárlása, amely lényegében már egy kész összeállítás a dobozból és a vezérlőből. A legismertebb a területen az ATTO, de más cégek termékei is előfordulnak.

Érdemes megjegyezni, hogy nem minden SAS és FC vezérlőt tanúsítottak az LTO szabványnak való megfelelés céljából, mivel ennek önállóan költsége van. Néhány gyártó kifejezetten írja, hogy a vezérlőik nem tervezettek szalagos tárolók használatára.

A teljesség kedvéért megjegyezzük, hogy a mLogic cég gyárt egy eszközt, amely egy IBM LTO-8 tároló, egy külső házban, amelybe azonnal integrálva van a SAS Thunderbolt 3 konverter. Ez azonban még egzotikusabb dolog, mint amit eddig leírtunk, különösen a mi környezetünkben. Kérdéses, hogy ezt az eszközt egyáltalán legálisan be lehet-e hozni Oroszországba (az LTO tárolók kriptográfiai eszközöket tartalmaznak, így a gyártók, mint az IBM és a HP, minden modellhez FSB engedélyt kapnak az importáláshoz).

Ezután például megvizsgálunk egy konkrét berendezéskészletet, amelynek tulajdonosa a szerző lett néhány sikeres vásárlás eredményeként, de az általános elv minden változatra vonatkozik.

Tehát van az alábbi berendezésünk a szalag használatához:
– Apple Mac mini 2018 számítógép macOS 10.15 Catalina rendszerrel, USB-C Thunderbolt 3 támogatással;
– Apple Thunderbolt 3 / Thunderbolt 2 adapter;
– Apple Thunderbolt 2 kábel;
– ATTO ThunderLink SH 1068 interfész átalakító (2*Thunderbolt / 2*SAS-2);
– SAS SFF-8088 – SFF-8088 kábel;
– IBM TS2350 LTO-5 szalagos tároló;
– LTO-5 kazetták, tisztító kazetta.

Most, ahogy mondani szokták, ezzel a sok hókuszpókusszal megpróbálunk felszállni.

Töltsük le az ATTO weboldaláról a legfrissebb ThunderLink SH 1068 illesztőprogram verziót (nyilván a kényelmünkre egyesítve van a SH 2068 illesztőprogrammal és a 2068 szekcióban található, amit csak a driverekkel kapcsolatos archive-on belül említenek) és az ATTO konfiguráló segédprogramot.

Apple Mac és különös eszközök. LTO, SAS, Fibre Channel, eSATA

Az illesztőprogram természetesen telepítésre szorul. Ezek előtt a lépések előtt a szerző mindig azt javasolja, hogy készítsünk fájlrendszer APFS pillanatfelvételt a rendszerindító lemezről a következő parancsal:

tmutil localsnapshot

vagy készítsünk biztonsági másolatot a rendszerindító lemezről, ha az HFS+. Ki tudja, mi történhet. Ezután könnyen visszatérhetünk a pillanatfelvételhez.

Ezután a tapasztalatlan, de kellő óvatossággal rendelkező elme kétségtelenül hajlani fog arra, hogy figyelmesen elolvassa az ATTO illesztőprogram telepítési útmutatóját és végrehajtja azt. Ennek eredményeként – tadá! – egy olyan operációs rendszert kapunk, amely a rendszerindítási fázisban akadozik. Itt jól jöhet a pillanatfelvétel, amiből vissza tudunk állni a Time machine segítségével a helyreállító szekcióból, vagy ugyanezen helyreállító szekcióból manuálisan törölhetjük a kext fájlt a kernel bővítmények könyvtárából (a szerző egyébként nem javasolja ezt a megoldást).

Miért történik ez? Mert az Apple mindent megoldott számunkra. Az újabb macOS verziókban nem lehet csak úgy kívülről kódot beilleszteni a boot folyamatba. Az Apple kedves programozói letiltották az ilyen destruktív viselkedést. Pontosabban, félig letiltották, amikor az illesztőprogram várja a beillesztést, de az illesztőprogram nem, így minden egyszerűen megakad.

Mit kell tennie a tapasztalt elmének az illesztőprogram telepítése előtt? Először is, ki kell adnia a parancsot:

csrutil status

Ha erre válaszként megkapjuk:

System Integrity Protection status: enabled.

akkor ez azt jelenti, hogy az Apple kedves programozói vigyáznak ránk, így nem érhetünk el semmit, amíg ki nem kapcsoljuk ezt a csodálatos védelmet. Ehhez újra kell indítanunk a helyreállító szekcióba (⌘R), megnyitni a terminált és kiadni a parancsot:

csrutil disable

Ezután indítsuk újra a rendszerünket, és csak ezután telepítsük a meghajtót, valamint az ATTO konfiguráló segédprogramot (alapvetően, a konfiguráló segédprogram csak diagnosztikához szükséges, és normál működéshez nem kötelező). Ha kérik, a rendszerbeállításokban erősítsük meg az ATTO cég hitelesítését. A telepítés után újraindulhatunk a helyreállítási részbe, és adhatsz parancsot.

csrutil enable

Az Apple újra gondoskodik rólunk.

Most már van egy támogatott meghajtó interfészünk külső SAS eszközökhöz (vagy FC, ha FC átalakítót használtunk volna). De hogyan működhet a szalag logikai szinten?

Ahogyan az a tapasztalatlan, de művelt elmének tudnia kell, bármely Unix-kompatibilis rendszer támogatja a szalagmeghajtókat kernelen és alapvető rendszersegédprogramokon keresztül, amelyek közé elsősorban az mt (szalaghajtás vezérlése) és a tar (archiváló, amely támogatja a szalagarchívumok kezelését) tartozik. De mit mondana erre a tapasztalt elme? Bármely Unix-kompatibilis rendszer, kivéve a macOS-t. Az Apple gondoskodott rólunk, és eltávolította a szalagos eszközök támogatását a kódjából.

De vajon nem lehetne visszaállítani ezt a kódot, a szabványos open source Unix segédprogramokat portolva macOS-ra? A jó hír az, hogy ezt már megtette a Tolis cég (amelynek linkjét nem adom meg) a Tolis Tape Tools nevű termékében. A rossz hír pedig az, hogy az említett cég a munkájának eredményeit 399 amerikai dollárra áraza. E tény értékelése változó lehet, de személy szerint a szerző nem kész arra, hogy 400 dollárt fizessen valakinek azért a kódért, amelyet túlnyomórészt teljesen más emberek írtak, és 1970 óta szabadon használható, ezért ezt a kérdést a szerző lezártnak tekinti. (Egyébként a GitHubon van egy elhanyagolt, zűrzavart állapotú szabad projekt IOSCSITape erről a témáról).

Szerencsére létezik egy IBM nevű vállalat, amelynek kereskedelmi étvágya teljesen más léptékű, és ezért nem jelenik meg apróságokban. Különösen, ők fejlesztették ki az LTFS szalagfájlrendszert, amely nyílt forráskódú, és amelyet macOS-re is terjesztenek.

Itt egy olyan szempont létezik, amely szerint a különböző szalagos eszközök gyártói saját LTFS verzióikat készítik, amelyek támogatják saját eszközeiket. Mivel a szerző IBM szalagos adattárolót használ, az LTFS is az IBM-től került telepítésre. Más cégek adattárolóihoz lehet, hogy a saját LTFS portjaikra lesz szükség. Létezik egy univerzális openLTFS megvalósítás a GitHub-on és a Homebrew-ben.

Számunkra fontos, hogy az LTFS használja a médiapartekciós funkciót, és ezért képes működni az LTO-5 generációtól kezdődő eszközökkel és kazettákkal.

Tehát a mi esetünkben letöltjük az IBM weboldaláról az IBM Spectrum Archive Single Drive Edition terméket macOS-re, amely épp az LTFS megvalósítását tartalmazza. Minden bonyodalom nélkül telepítjük a terméket a saját telepítőjével. A folyamat során telepíti a FUSE csomagot is, és a rendszerbeállításoknál meg kell erősíteni egy okos programozó, Anatol Pomozov által végzett engedélyezést, amely ebben az esetben egy egész IBM sorsa múlik. Tisztelet és elismerés ennek az embernek.

Célszerű azonnal a \/Library\/Frameworks\/LTFS.framework\/Versions\/Current\/etc\/ltfs.conf.local fájlba beírni a következő sort:

option single-drive sync_type=time@1

amely alapértelmezés szerint 1 perc inaktivitás után törli a írási pufferét (az alapértelmezett 5 perc).

Apple Mac és különös eszközök. LTO, SAS, Fibre Channel, eSATA

Végül minden készen áll a csatlakoztatásra. Csatlakoztatjuk a láncot: Mac – T3\/T2 adapter – Thunderbolt kábel – ATTO átalakító – SAS kábel – szalagos adattároló (a Mac-en, az átalakítón és az adattárolón lévő portok kiválasztása nem lényeges). Bekapcsoljuk az átalakító tápellátását. Bekapcsoljuk a szalagos adattároló tápellátását. Várunk az adattároló inicializálásának befejezésére az indikátorai szerint.

Kiadjuk a parancsot:

ltfs -o device_list

Hurrá! Megkapjuk (az IBM szokásos diagnosztikai stílusában):

307 LTFS14000I LTFS indítása, LTFS verzió 2.4.2.0 (10418), naplózási szint 2.
307 LTFS14058I LTFS Formátum Specifikáció verzió 2.4.0.
307 LTFS14104I Indítva: «ltfs -o device_list».
307 LTFS14105I Ez a bináris a Mac OS X-hez készült.
307 LTFS14106I GCC verzió: 4.2.1 Kompatibilis Apple Clang 4.1 ((tags\/Apple\/clang-421.11.66)).
307 LTFS17087I Kernel verzió: 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: „iokit” szalagos háttér betöltése.
Szalag eszköz lista:
Eszköz neve = 0, Gyártói azonosító = IBM, Termékazonosító = ULT3580-TD5, Sorozatszám = **********, Termék neve =[ULT3580-TD5].

Betesszük a kazettát, várunk a betöltésre, és formázzuk:

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

Itt a -d paraméter a tároló számát adja meg (mindig nulla, ha egyedüli, de ezt a parancsban nem lehet kihagyni), a -n a szalag nevét jelöli (ezt nem kötelező megadni), míg az -r paraméter azt követeli meg, hogy a .DS_Store fájlok 10 megabájt méretet meg nem haladó tartalmát a szalag index (vagyis a könyvtárakhoz szánt) részébe helyezzük a adat rész helyett.

Titokzatos élet indul a szalagos tárolóban. Várjunk pár percet, választ kapunk:

LTFS15000I A mkltfs indítása, LTFS verzió 2.4.2.0 (10418), napló szint 2.
LTFS15041I Indította a «mkltfs -d 0 -nTest -r size=10M/name=.DS_Store» parancs.
LTFS15042I Ez a bináris a Mac OS X-hez készült.
LTFS15043I A GCC verzió 4.2.1 Kompatibilis Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
LTFS17087I Kernel verzió: Darwin Kernel Version 19.4.0: Szerda Március 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Az '0' tároló formázása.
LTFS15004I LTFS kötet blokk mérete: 524288.
LTFS15005I Indexpartíció elhelyezési irányelve: size=10M/name=.DS_Store.

LTFS11337I Az index-szemét zászló frissítése (1) — NO_BARCODE (0x0x1021081e0).
LTFS17085I Plugin: A «iokit» szalag háttér töltése.
LTFS30810I Eszköz megnyitása az iokit meghajtóval (0).
LTFS30814I A gyártó ID-ja: IBM.
LTFS30815I A termék ID-ja: ‘ULT3580-TD5 ‘.
LTFS30816I A firmware verzió: H976.
LTFS30817I A meghajtó sorozatszáma: **********.
LTFS17160I Maximális eszköz blokk méret: 1048576.
LTFS11330I Patron betöltése.
LTFS30854I A logikai blokk védelem le van tiltva.
LTFS11332I A betöltés sikeres.
LTFS17157I A meghajtó beállításának megváltoztatása írási módra.
LTFS15049I A közeg ellenőrzése (csatlakozás).
LTFS30854I A logikai blokk védelem le van tiltva.
LTFS15010I Adatpartíció b létrehozása az SCSI 1-es partíción.
LTFS15011I Indexpartíció a létrehozása az SCSI 0-ás partíción.
LTFS17165I A közeg kapacitási arányának visszaállítása.
LTFS11097I A közeg particionálása.
LTFS11100I Címke írása a b partícióra.
LTFS11278I Index írása a b partícióba.
LTFS30808I READ_ATTR (0x8c) -20501-et ad vissza.
LTFS30865I A READ_ATTR érvénytelen mezőt ad vissza a CDB-ben (-20501) 0.
LTFS30836I Nem lehet olvasni a tulajdonságot (-20501).
LTFS11336I A tulajdonság nem létezik. Figyelmen kívül kell hagyni a várt hibát.
LTFS17235I A NO_BARCODE index írása b-be (Ok: Formátum, 0 fájl) **********.
LTFS17236I A NO_BARCODE index írása (b, **********).
LTFS11337I Az index-szemét zászló frissítése (0) — NO_BARCODE (0x0x1021081e0).
LTFS11100I Címke írása az a partícióra.
LTFS11278I Index írása az a partícióba.
LTFS30808I READ_ATTR (0x8c) -20501-et ad vissza.
LTFS30865I A READ_ATTR érvénytelen mezőt ad vissza a CDB-ben (-20501) 0.
LTFS30836I Nem lehet olvasni a tulajdonságot (-20501).
LTFS11336I A tulajdonság nem létezik. Figyelmen kívül kell hagyni a várt hibát.
LTFS17235I A NO_BARCODE index írása az a-ba (Ok: Formátum, 0 fájl) 9068025555.
LTFS17236I A NO_BARCODE index írása (a, **********).
LTFS15013I A kötet UUID-je: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

LTFS15019I A kötet kapacitása 1425 GB.
LTFS30854I A logikai blokk védelem le van tiltva.
LTFS15024I A közeg sikeresen formázva.

A formázott szalag csatlakoztatása:

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

Még pár perc működést kapunk a tárolóból, diagnosztika:

307 LTFS14000I LTFS indítása, LTFS verzió 2.4.2.0 (10418), naplózási szint 2.
307 LTFS14058I LTFS Formátum Specifikáció verzió 2.4.0.
307 LTFS14104I Indítva a «ltfs /Volumes/LTFS/» parancs által.
307 LTFS14105I Ez a bináris a Mac OS X-hez készült.
307 LTFS14106I GCC verzió: 4.2.1 Kompatibilis Apple Clang 4.1 ((tags\/Apple\/clang-421.11.66)).
307 LTFS17087I Kernel verzió: 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 A szinkronizálás típusa «time», a szinkronizálási idő 60 másodperc.
307 LTFS17085I Plugin: „iokit” szalagos háttér betöltése.
307 LTFS17085I Plugin: A «unified» iosched háttér töltése.
307 LTFS14095I A szalagos eszköz írási módjának beállítása, hogy elkerüljük a patron kiadását.
307 LTFS30810I Eszköz megnyitása az iokit meghajtóval (0).
307 LTFS30814I A gyártó ID-ja: IBM.
307 LTFS30815I A termék ID-ja: ‘ULT3580-TD5 ‘.
307 LTFS30816I A firmware verzió: H976.
307 LTFS30817I A meghajtó sorozatszáma: **********.
307 LTFS17160I Maximális eszköz blokk méret: 1048576.
307 LTFS11330I Patron betöltése.
307 LTFS30854I A logikai blokk védelem le van tiltva.
307 LTFS11332I A betöltés sikeres.
307 LTFS17157I A meghajtó beállításának megváltoztatása írási módra.
307 LTFS11005I A kötet csatolása.
307 LTFS30854I A logikai blokk védelem le van tiltva.
307 LTFS17227I Szalag attribútum: Szállító = IBM.
307 LTFS17227I Szalag attribútum: Alkalmazás neve = LTFS.
307 LTFS17227I Szalag attribútum: Alkalmazás verzió = 2.4.2.0.
307 LTFS17227I Szalag attribútum: Közép címke =.
307 LTFS17228I Szalag attribútum: Szöveg lokalizálási azonosító = 0x81.
307 LTFS17227I Szalag attribútum: Vonalkód =.
307 LTFS17227I Szalag attribútum: Alkalmazás formátum verzió = 2.4.0.
307 LTFS17228I Szalag attribútum: Kötet zárolási állapot = 0x00.
307 LTFS17227I Szalag attribútum: Média pool neve =.
307 LTFS14111I A kezdeti beállítás sikeresen befejeződött.
307 LTFS14112I Hívja meg a 'mount' parancsot az utolsó beállítás eredményének ellenőrzéséhez.
307 LTFS14113I A megadott csatolási pontot fel kell tüntetni, ha sikerült.

Itt van a szalagunk az asztalon, a neve: Test(ltfs)! A névtelen szalag OSXFUSE Volume 0 (ltfs) nevet kapja.

Most már dolgozhatunk vele.

Apple Mac és különös eszközök. LTO, SAS, Fibre Channel, eSATA

Egyébként érdemes észben tartani, hogy ajánlatos nem túlságosan gyakran böngészni a szalag könyvtárainak tartalmát a Finder ablakokban, mivel ez rendkívül költséges művelet az LTFS számára, jobb inkább terminál parancsokkal dolgozni, vagy egyszerűen csoportosan átmásolni a mentett könyvtárat a szalagra, ahogyan azt a fenti ablakban bemutattuk.

Egyébként létezik egy speciálisan az IBM által írt ltfs_copy segédprogram és annak klónjai, amelyeket a szalag és a lemez közötti hatékonyabb másolásra terveztek, de eddig a szerzőnek nem sikerült őket nyilvánosan elérni egy felületes keresés során.

A szalagot a következő parancs használatával lehet lecsatlakoztatni:

umount /Volumes/LTFS

vagy egyszerűen eltávolítani a kukába.

Egyébként léteznek grafikus felületek macOS számára ezen műveletek megkönnyítése érdekében, de nekünk, ilyen eljárások után, nem kellene tartanunk néhány sor a terminálban való beírásától?

Mellékhatásként lehetőséget kapunk SAS/4*eSATA kábelen keresztül eSATA külső meghajtók csatlakoztatására.

Apple Mac és különös eszközök. LTO, SAS, Fibre Channel, eSATA

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster