Apple Mac 和精美裝置。 LTO、SAS、光纖通道、eSATA

本文的主題是透過 SAS、光纖通道 (FC)、eSATA 介面將外部裝置連接到 Mac。 我們立即說,要解決訪問此類設備的問題,對於一個健康的人來說,有一個方法:構建一台便宜的PC,插入HBA SAS或FC控制卡(例如,簡單的LSI適配器),將您的裝置連接到使用此控制器,可以在 PC 上安裝任何 Linux,並透過網路在 Mac 上運作。 但這是平庸且無趣的。 我們將走硬核路線並連接我們的設備 直接 到麥克。

為此我們需要什麼:
– 足夠的錢來購買新裝備,或者在 eBay 拍賣中祝你好運(只需付出一點努力,你就可以以比標價便宜 10 倍的價格買到前幾代所需的裝備);
- 本文。

要使用磁帶(現在幾乎普遍以 LTO 格式表示),您必須有 LTO 磁帶驅動器(串流媒體)或磁帶庫。 對於初次購買來說,這是一個相當昂貴的設備(數十萬盧布起),但在購買二手設備時物有所值。 由於 LTO 代大約每兩年更換一次,且相容性僅限於兩代,因此二級市場已經相當飽和,可用四年或更長時間的設備,即上一代及以後的一代。 如果您出於商業目的購買新設備,那麼您自己就會明白為什麼需要它。 如果您想為您的家庭和家人購買,您可以考慮此選項作為存檔資訊的一種方式(因為媒體本身每 1 GB 非常便宜)。

從 LTO-5 代(以及部分 LTO-4)開始,使用磁帶的裝置透過 SAS 或 FC 介面在硬體中連接到電腦(通常每個裝置有兩個版本)

另一方面,Apple 在 Mac 中為我們提供了 USB-C 接口(使用 USB、Thunderbolt 3 或 DisplayPort 協議工作),有時還提供以太網接口,以及專有的 Thunderbolt 3 - Thunderbolt 2 和 Thunderbolt - FireWire 800適配器。

僵局? 並不真地。 幸運的是,Thunderbolt 可以在 PCIe 模式下運行,並允許 PCIe 卡以與直接安裝在電腦機箱內相同的方式連接。 因此,只要有適當的適配器和驅動程序,Mac 硬體配置的任何擴展都是可能的。

從概念上講,解決該問題的最簡單方法是使用具有 Thunderbolt 介面的 PCIe 適配器外接盒(PCIe 卡擴充系統),您可以在其中安裝 SAS 或 FC 主機匯流排適配器 (HBA)。 例如,這樣的盒子是由該公司生產的 十四行詩 和其他一些。 這裡有一個細微差別:並不是每個控制器都適合我們,而是只有一個具有 macOS 驅動程式的控制器。 這樣的板只有少數,而且最便宜和最受歡迎的板(例如,相同的LSI)不包括在其數量中。 幸好Sonnet不厭其煩地編譯了 相容性表 透過 Thunderbolt 介面支援各種作業系統的 PCIe 卡。

另一個解決方案是購買現成的Thunderbolt-SAS或Thunderbolt-FC介面轉換器,它實際上是一個盒子和控制器的現成組件。 該地區最著名的公司 ATTO,但也有其他公司的產品。

請注意,並非所有 SAS 和 FC 控制器都經過認證符合 LTO 標準,因為這本身就需要花錢。 一些製造商直接寫道,他們的控制器不適用於磁帶機。

為了完成這張圖,我們注意到 mLogic 產生 設備,這是一個裝在外部機箱中的 IBM LTO-8 驅動器,其中立即整合了 SAS 到 Thunderbolt 3 轉換器。然而,這比上述所有內容更加奇特,尤其是按照我們地區的標準。 我懷疑這款設備是否可以合法進口到俄羅斯(LTO 驅動器包含加密功能,IBM 和 HP 等製造商因此獲得了每種型號的 FSB 進口許可)。

接下來,我們將以一套特定的設備為例,作者透過多次成功收購而成為該設備的所有者,但所有選項都應保留一般原則。

因此,我們有以下用於處理膠帶的設備:
– Apple Mac mini 2018 電腦,配備 macOS 10.15 Catalina,具有支援 Thunderbolt 3 的 USB-C 連接埠;
– Apple Thunderbolt 3 / Thunderbolt 2 轉接器;
- Apple Thunderbolt 2 電纜;
– ATTO ThunderLink SH 1068 介面轉換器 (2*Thunderbolt / 2*SAS-2);
– SAS 纜線 SFF-8088 – SFF-8088;
– 磁帶機 LTO-5 IBM TS2350;
– LTO-5 磁帶、清潔磁帶。

現在,正如他們所說,有了所有這些東西,我們將嘗試起飛。

我們從 ATTO 網站下載最新版本的 ThunderLink SH 1068 驅動程式(顯然,為了方便起見,它與 SH 2068 驅動程式結合在一起,位於 2068 部分,該部分僅寫入驅動程式的存檔內)和ATTO 配置實用程式。

Apple Mac 和精美裝置。 LTO、SAS、光纖通道、eSATA

當然,驅動程式需要安裝。 在執行此類操作之前,作者建議始終使用以下命令拍攝啟動磁碟的 APFS 檔案系統的快照

tmutil localsnapshot

或啟動磁碟的備份副本(如果具有 HFS+)。 你永遠不會知道。 然後從快照回滾就很容易了。

接下來,沒有經驗但盡職盡責的頭腦無疑會傾向於仔細閱讀 ATTO 驅動程式安裝說明並遵循它們。 結果——塔達姆! – 我們得到一個在載入階段掛起的作業系統。 這裡我們可能需要一個快照,我們可以透過從恢復分區呼叫Time machine來恢復,或者從同一個恢復分區我們可以手動從內核擴展目錄中刪除有病的kext(作者通常不建議這樣做)。

為什麼會發生這種情況? 因為蘋果照顧了我們。 在最新版本的 macOS 中,您無法輕鬆地將外部程式碼注入到啟動過程中。 優秀的蘋果程式設計師已經阻止了這種破壞性的行為。 更準確地說,他們把它擋在了一半,當司機的期望得到實現時,但司機本身卻沒有實現,所以一切都凍結了。

在安裝驅動程式之前,一個精明的頭腦應該做什麼? 首先,給予命令:

csrutil status

如果我們收到以下回應:

系統完整性保護狀態:已啟用。

那麼這意味著優秀的蘋果程式設計師關心我們,所以除非我們禁用他們出色的保護,否則任何事情都不會為我們帶來好處。 為此,請重新啟動至復原分區 (⌘R),呼叫終端並發出命令:

csrutil disable

之後,我們重新啟動進入工作系統,然後安裝驅動程序,同時安裝 ATTO 配置實用程式(原則上,配置實用程式僅用於診斷,正常操作期間不需要)。 一路上,當詢問時,我們在系統設定中確認 ATTO 授權。 安裝後,您可以再次重新啟動到恢復分割區並給出命令

csrutil enable

蘋果又照顧我們了。

現在我們有一個驅動程式支援的介面來連接外部 SAS 設備(或 FC,如果使用 FC 轉換器)。 但如何在邏輯層面上使用磁帶呢?

缺乏經驗但博學的人都知道,任何 Unix 相容系統都在核心和基本系統實用程式層級支援磁帶驅動器,其中主要包括 mt(磁帶管理)和 tar(支援在磁帶上處理存檔的存檔器)。 然而,一個成熟的頭腦能對此說些什麼呢? 任何 Unix 相容系統, macOS 除外。 蘋果為了照顧我們,從程式碼中刪除了對磁帶設備的支援。

但是,透過將標準開源 Unix 實用程式移植到 macOS 真的不可能返回此程式碼嗎? 好消息是 Tolis(我沒有連結)已經在他們的產品 Tolis Tape Tools 中做到了這一點。 壞消息是,上述公司使用其工作成果的費用為 399 美元。 對這一事實的估計可能會有所不同,但作者個人並沒有準備好向某人支付400 美元來購買大部分由完全不同的人編寫並且自1970 世紀XNUMX 年代以來一直在公開使用的代碼,因此作者為自己提出了這個問題考慮關閉。 (順便說一句,Github上有一個處於模糊狀態的免費項目 IOSCSI磁帶 關於同一主題)。

幸運的是,世界上還有IBM公司,其商業慾望的規模完全不同,因此不會反映在每件小事上。 特別是,它開發了開源 LTFS 磁帶檔案系統,該系統也適用於 macOS。

這裡要注意的是,不同的磁帶設備製造商會發布自己的 LTFS 版本來支援他們的設備。 由於作者使用IBM磁帶機,因此安裝了IBM的LTFS。 第三方驅動器可能需要自己的 LTFS 連接埠。 Github 和 Homebrew 上有 openLTFS 的通用實作。

對我們來說重要的是,LTFS 使用媒體分區功能,因此可以與從 LTO-5 代開始的設備和盒式磁帶一起使用。

因此,在我們的範例中,我們從 IBM 網站下載適用於 macOS 的 IBM Spectrum Archive Single Drive Edition,其中包含 LTFS 實作。 沒有任何冒險,我們使用它自己的安裝程式來安裝該產品。 在此過程中,他還安裝了 FUSE 軟體包,並且在系統設定中,他必須確認一位名叫 Anatol Pomozov 的聰明程式設計師的授權,在這種情況下,整個 IBM 都依賴他。 對這個人表示敬意和尊重。

建議立即在檔案 /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local 中寫入該行:

選項單驅動器sync_type=time@1

它指定預設安裝磁帶,並在 1 分鐘不活動(預設為 5 分鐘)後重設記錄緩衝區。

Apple Mac 和精美裝置。 LTO、SAS、光纖通道、eSATA

最後,一切準備就緒,可以連接了。 我們連接鏈:Mac – T3/T2適配器 – Thunderbolt電纜 – ATTO轉換器 – SAS電纜 – 磁帶驅動器(Mac上的幾個連接埠、轉換器和驅動器的選擇並不重要)。 打開轉換器的電源。 打開磁帶機的電源。 我們等待驅動器根據其指示完成初始化。

我們給出命令:

ltfs -o device_list

萬歲! 我們得到(以通常的 IBM 診斷方式):

307 LTFS14000I LTFS 正在啟動,LTFS 版本 2.4.2.0 (10418),日誌等級 2。
307 LTFS14058I LTFS 格式規格版本 2.4.0。
307 LTFS14104I 由「ltfs -o device_list」啟動。
307 LTFS14105I 此二進位檔案是為 Mac OS X 建置的。
307 LTFS14106I GCC 版本為 4.2.1 相容於 Apple Clang 4.1 ((tags/Apple/clang-421.11.66))。
307 LTFS17087I 核心版本:Darwin 核心版本 19.4.0:4 年 22 月 28 日星期三 40:2020:6153.101.6 PST 15; 根:xnu-86~64/RELEASE_XXNUMX_XNUMX。
307 LTFS17085I 插件:正在載入「iokit」磁帶後端。
磁帶設備清單:。
設備名稱 = 0,供應商 ID = IBM,產品 ID = ULT3580-TD5,序號 = **********,產品名稱 = [ULT3580-TD5]。

插入磁帶,等待其載入並格式化:

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

這裡的-d參數指定驅動器號(如果是唯一的則始終為零,但在此命令中不能省略),-n是磁帶名稱(可以省略),-r參數要求放置內容大小不超過10 MB 的. DS_Store 檔案位於磁帶的索引(即用於目錄)部分而不是資料部分。

神秘的生命從磁帶機開始。 我們等待幾分鐘並收到以下回應:

LTFS15000I 正在啟動 mkltfs,LTFS 版本 2.4.2.0 (10418),日誌等級 2。
LTFS15041I 由「mkltfs -d 0 -nTest -r size=10M/name=.DS_Store」啟動。
LTFS15042I 此二進位檔案是為 Mac OS X 建置的。
LTFS15043I GCC 版本為 4.2.1 相容於 Apple Clang 4.1 ((tags/Apple/clang-421.11.66))。
LTFS17087I 核心版本:Darwin 核心版本 19.4.0:4 年 22 月 28 日星期三 40:2020:6153.101.6 PST 15; 根:xnu-86~64/RELEASE_XXNUMX_XNUMX。
LTFS15003I 正在格式化裝置「0」。
LTFS15004I LTFS 磁碟區大小:524288。
LTFS15005I 索引分割區放置策略:大小=10M/名稱=.DS_Store。

LTFS11337I 更新索引髒標誌 (1) - NO_BARCODE (0x0x1021081e0)。
LTFS17085I 外掛:正在載入「iokit」磁帶後端。
LTFS30810I 正在透過 iokit 驅動程式開啟裝置 (0)。
LTFS30814I 供應商 ID 是 IBM。
LTFS30815I 產品 ID 為「ULT3580-TD5」。
LTFS30816I 韌體版本為 H976。
LTFS30817I 磁碟機序號為 **********。
LTFS17160I 最大設備塊大小為 1048576。
LTFS11330I 正在裝入磁帶。
LTFS30854I 邏輯區塊保護已停用。
LTFS11332I 裝入成功。
LTFS17157I 正在將磁碟機設定變更為隨處寫入模式。
LTFS15049I 正在檢查介質(裝入)。
LTFS30854I 邏輯區塊保護已停用。
LTFS15010I 正在 SCSI 分割區 1 上建立資料分割區 b。
LTFS15011I 正在 SCSI 分割區 0 上建立索引分割區 a。
LTFS17165I 正在重置媒體的容量比例。
LTFS11097I 正在對媒體進行分割。
LTFS11100I 正在將標籤寫入分割區 b。
LTFS11278I 正在將索引寫入分割區 b。
LTFS30808I READ_ATTR (0x8c) 返回 -20501。
LTFS30865I READ_ATTR 傳回 CDB 中的無效欄位 (-20501) 0。
LTFS30836I 無法讀取屬性 (-20501)。
LTFS11336I 該屬性不存在。 忽略預期的錯誤。
LTFS17235I 正在將 NO_BARCODE 的索引寫入 b(原因:格式,0 個檔案)************。
LTFS17236I 已寫入 NO_BARCODE 的索引 (b, **********)。
LTFS11337I 更新索引髒標誌 (0) - NO_BARCODE (0x0x1021081e0)。
LTFS11100I 正在將標籤寫入分割區 a。
LTFS11278I 正在將索引寫入分割區 a。
LTFS30808I READ_ATTR (0x8c) 返回 -20501。
LTFS30865I READ_ATTR 傳回 CDB 中的無效欄位 (-20501) 0。
LTFS30836I 無法讀取屬性 (-20501)。
LTFS11336I 該屬性不存在。 忽略預期的錯誤。
LTFS17235I 正在將 NO_BARCODE 的索引寫入(原因:格式,0 個檔案)9068025555。
LTFS17236I 已寫入 NO_BARCODE 的索引 (a, **********)。
LTFS15013I Volume UUID is: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.

LTFS15019I 磁碟區容量為 1425 GB。
LTFS30854I 邏輯區塊保護已停用。
LTFS15024I 媒體格式化成功。

安裝格式化的磁帶:

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

我們再花幾分鐘進行驅動器操作和診斷:

307 LTFS14000I LTFS 正在啟動,LTFS 版本 2.4.2.0 (10418),日誌等級 2。
307 LTFS14058I LTFS 格式規格版本 2.4.0。
307 LTFS14104I 由「ltfs /Volumes/LTFS/」啟動。
307 LTFS14105I 此二進位檔案是為 Mac OS X 建置的。
307 LTFS14106I GCC 版本為 4.2.1 相容於 Apple Clang 4.1 ((tags/Apple/clang-421.11.66))。
307 LTFS17087I 核心版本:Darwin 核心版本 19.4.0:4 年 22 月 28 日星期三 40:2020:6153.101.6 PST 15; 根:xnu-86~64/RELEASE_XXNUMX_XNUMX。
307 LTFS14063I 同步類型為“時間”,同步時間為 60 秒。
307 LTFS17085I 插件:正在載入「iokit」磁帶後端。
307 LTFS17085I 插件:正在載入「統一」iosched 後端。
307 LTFS14095I 設定磁帶設備隨處寫入模式以避免磁帶彈出。
307 LTFS30810I 透過 iokit 驅動程式開啟裝置 (0)。
307 LTFS30814I 供應商 ID 是 IBM。
307 LTFS30815I 產品 ID 為「ULT3580-TD5」。
307 LTFS30816I 韌體版本為 H976。
307 LTFS30817I 磁碟機序號為 **********。
307 LTFS17160I 最大設備塊大小為 1048576。
307 LTFS11330I 正在載入磁帶。
307 LTFS30854I 邏輯區塊保護已停用。
307 LTFS11332I 載入成功。
307 LTFS17157I 將磁碟機設定變更為隨處寫入模式。
307 LTFS11005I 正在裝入磁碟區。
307 LTFS30854I 邏輯區塊保護已停用。
307 LTFS17227I 磁帶屬性:供應商 = IBM。
307 LTFS17227I 磁帶屬性:應用程式名稱 = LTFS。
307 LTFS17227I 磁帶屬性:應用程式版本 = 2.4.2.0。
307 LTFS17227I 磁帶屬性:媒體標籤 =。
307 LTFS17228I 磁帶屬性:文字本地化 ID = 0x81。
307 LTFS17227I 磁帶屬性:條碼 =。
307 LTFS17227I 磁帶屬性:應用程式格式版本 = 2.4.0。
307 LTFS17228I 磁帶屬性:磁碟區鎖定狀態 = 0x00。
307 LTFS17227I 磁帶屬性:媒體池名稱 =。
307 LTFS14111I 初始設定已成功完成。
307 LTFS14112I 呼叫“mount”指令來檢查最終設定的結果。
307 LTFS14113I 若成功,則會列出指定的裝入點。

這就是桌面上的功能區,名為 Test(ltfs)! 未命名的磁帶將命名為 OSXFUSE Volume 0 (ltfs)。

現在您可以使用它了。

Apple Mac 和精美裝置。 LTO、SAS、光纖通道、eSATA

一般來說,您需要記住,建議不要過度使用在查找器視窗中查看磁帶目錄的內容,因為這對於 LTFS 來說是一個非常昂貴的操作,但最好使用終端命令,或者簡單地重置將備份目錄批次複製到磁帶上,如上視窗所示。

順便說一句,有一個專門編寫的 IBM 實用程式 ltfs_copy 及其克隆,旨在提高磁帶和磁碟之間的複製效率,但到目前為止,作者還無法透過膚淺的搜尋在公共領域找到它們。

您可以使用以下命令卸載磁帶:

umount /Volumes/LTFS

或直接把它丟進垃圾桶。

事實上,本質上,macOS 上有某種圖形 shell 可以方便這些操作,但是在這樣的變態之後,我們是否應該害怕在終端機中輸入幾行呢?

副作用是,我們有機會透過 SAS/4*eSATA 連接線連接外部 eSATA 硬碟。

Apple Mac 和精美裝置。 LTO、SAS、光纖通道、eSATA

來源: www.habr.com

添加評論