Apple Mac和精美的设备。LTO,SAS,光纤通道,eSATA

本文的主题是通过SAS,光纤通道(FC),eSATA接口将外部设备连接到Mac。立即做出保留,以解决访问此类设备的问题,这是一个健康的方法:组装便宜的PC,在其中粘贴HBA SAS或FC控制器卡(例如,最简单的LSI适配器),将设备连接到此控制器,在PC上安装任何Linux并工作通过网络从Mac下载。但这是平庸而无趣的。我们将采用硬核方式,将我们的设备直接连接到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适配器,在其中可以安装控制器(主机总线适配器,HBA)SAS或FC。例如,这样的盒子是由十四行诗和其他几种生产的。有一个细微差别:并非每个控制器都适合我们,而只有适用于macOS的驱动程序。这样的板只有很少的,最便宜和最受欢迎的板(例如,相同的LSI)不包括在它们的数量中。幸运的是,Sonnet难以通过Thunderbolt界面为各种操作系统编制PCIe卡兼容性表。

另一个解决方案是为Thunderbolt-SAS或Thunderbolt-FC接口转换器购买现成的转换器,从本质上讲,它是从包装盒和控制器组装而成的。ATTO在这一领域最有名,但也可以找到其他公司的产品。

请注意,并非所有SAS和FC控制器都经过认证符合LTO标准,因为仅此一项就需要金钱。一些制造商直接写道,不提供其使用磁带机的控制器的操作。

为了使图片更完整,我们注意到mLogic公司生产了一种设备,它是外部安装的IBM LTO-8驱动器,可立即将SAS到Thunderbolt 3转换器集成到其中,但是,与上述所有方面相比,它甚至更具有异国情调,尤其是根据我们所在地区的标准。我怀疑该设备是否可以合法进口到俄罗斯(LTO驱动器包含加密工具,因此,IBM和HP等制造商会因每种型号而获得FSB进口许可)。

此外,例如,我们将考虑一套特定的设备,由于几次成功的收购,作者成为设备的所有者,但对于所有选择,都应保持一般性原则。

因此,我们有以下用于磁带的设备:
-具有macOS 10.15 Catalina的Apple Mac mini 2018计算机,其具有USB-C端口并支持Thunderbolt 3;
-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配置实用程序。

图片

当然,需要安装驱动程序。在执行此类操作之前,作者建议始终使用以下命令对启动磁盘的APFS文件系统进行快照:

tmutil localsnapshot


或引导盘的备份副本(如果有)。你永远都不知道 这样就很容易从快照中回滚。

此外,虽然经验不足,但表现出应有的勤奋,毫无疑问,他们会倾向于仔细阅读有关安装驱动程序的ATTO指令并执行它。结果就是塔达姆!-我们在引导阶段挂起了操作系统。在这里,我们可以使用快照,您可以通过从恢复分区中调用Time Machine从中恢复快照,也可以从同一恢复分区中的内核扩展目录中手动删除有问题的kext(作者通常不建议这样做)。

为什么会发生?因为苹果照顾我们。在最新版本的macOS中,将多余的代码嵌入到引导过程中并不容易。优秀的苹果程序员已经阻止了这种破坏性行为。更准确地说,当引入驾驶员等待时,他们将其阻塞了一半,但驾驶员本身却没有,因此一切都挂起了。

在安装驱动程序之前,精明的头脑应该做什么?首先,输入命令:

csrutil status


如果对此做出回应,我们将得到:

系统完整性保护状态:已启用。


这意味着优秀的Apple程序员会照顾我们,因此在我们关闭他们的出色保护之前,我们将一事无成。为此,我们重新启动进入恢复分区(⌘R),调用终端并输入以下命令:

csrutil disable


之后,我们重新启动进入操作系统,然后安装驱动程序,同时安装ATTO配置实用程序(原则上,仅用于诊断需要配置实用程序,而在正常操作期间则不需要)。在询问过程中,我们会在系统设置中确认ATTO授权。安装后,您可以再次重新引导到恢复分区并输入命令

csrutil enable


苹果再次照顾我们。

现在,我们有了外部SAS设备(或FC(如果使用FC转换器)的驱动程序支持接口)。但是如何在逻辑层面上使用磁带?

经验不足但博学的人都知道,任何与Unix兼容的系统都支持内核级的磁带驱动器和主要的系统实用程序,这些工具主要包括mt(磁带管理)和tar(支持使用磁带存档的存档器)。 。但是,精明的头脑会指明什么?除macOS以外的任何与Unix兼容的系统。苹果公司从其代码中删除了对磁带设备的支持,从而使我们感到担忧。

但是,通过将标准的开源开源实用程序移植到macOS上,真的不可能返回此代码吗?好消息是,Tolis已经在其Tolis磁带工具产品中做到了这一点(我没有提供链接)。坏消息是,该公司估计使用其工作结果的费用为399美元。对这一事实的估计可能有所不同,但是作者个人并不准备为某人支付400美元的代码,大部分代码是由完全不同的人编写并自1970年代以来公开使用的,因此,此问题针对的是作者认为已关闭。 (顺便说一句,在github上处于模糊状态的同一个主题有一个免费的IOSCSITape项目)。

幸运的是,世界上有一家IBM公司,其商业需求的规模完全不同,因此并没有出现在每件事上。特别是,她开发了开源LTFS磁带文件系统,该系统也已分发给macOS。

不同之处在于不同的磁带设备制造商发布了支持其设备的自己的LTFS版本。由于作者使用IBM磁带机,因此LTFS也由IBM安装。第三方驱动器可能需要它们自己的LTFS端口。 github和自制软件上有一个通用的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分钟)后,默认情况下指定磁带的安装并重置记录缓冲区。

图片

最后,一切准备就绪,可以连接。我们连接链: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((标签/ Apple / clang-421.11.66))。
307 LTFS17087I内核版本:Darwin内核版本19.4.0:PST 2020年3月4日星期三22:28:40;根目录:xnu-6153.101.6〜15 / RELEASE_X86_64。
307 LTFS17085I插件:正在加载“ iokit”磁带后端。
磁带设备列表:。
设备名称= 0,供应商ID = IBM,产品ID = ULT3580-TD5,序列号= **********,产品名称= [ULT3580-TD5]。


我们插入墨盒,等待下载并格式化:

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


在这里,-d参数指定驱动器的数量(如果只有一个,则始终为零,但您不能省略此命令),-n是磁带的名称(可以省略),并且-r参数要求.DS_Store文件的内容不超过容量磁带的索引(即用于目录)部分中的10 MB,而不是数据部分中的10 MB。

磁带机中的神秘生活已经一去不复返了。我们等待了几分钟,我们得到了答案:

LTFS15000I Starting mkltfs, LTFS version 2.4.2.0 (10418), log level 2.
LTFS15041I Launched by «mkltfs -d 0 -nTest -r size=10M/name=.DS_Store».
LTFS15042I This binary is built for Mac OS X.
LTFS15043I GCC version is 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
LTFS17087I Kernel version: Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I Formatting device '0'.
LTFS15004I LTFS volume blocksize: 524288.
LTFS15005I Index partition placement policy: size=10M/name=.DS_Store.

LTFS11337I Update index-dirty flag (1) — NO_BARCODE (0x0x1021081e0).
LTFS17085I Plugin: Loading «iokit» tape backend.
LTFS30810I Opening a device through iokit driver (0).
LTFS30814I Vendor ID is IBM.
LTFS30815I Product ID is 'ULT3580-TD5 '.
LTFS30816I Firmware revision is H976.
LTFS30817I Drive serial is **********.
LTFS17160I Maximum device block size is 1048576.
LTFS11330I Loading cartridge.
LTFS30854I Logical block protection is disabled.
LTFS11332I Load successful.
LTFS17157I Changing the drive setting to write-anywhere mode.
LTFS15049I Checking the medium (mount).
LTFS30854I Logical block protection is disabled.
LTFS15010I Creating data partition b on SCSI partition 1.
LTFS15011I Creating index partition a on SCSI partition 0.
LTFS17165I Resetting the medium's capacity proportion.
LTFS11097I Partitioning the medium.
LTFS11100I Writing label to partition b.
LTFS11278I Writing index to partition b.
LTFS30808I READ_ATTR (0x8c) returns -20501.
LTFS30865I READ_ATTR returns Invalid Field in CDB (-20501) 0.
LTFS30836I Cannot read attribute (-20501).
LTFS11336I The attribute does not exist. Ignore the expected error.
LTFS17235I Writing index of NO_BARCODE to b (Reason: Format, 0 files) **********.
LTFS17236I Wrote index of NO_BARCODE (b, **********).
LTFS11337I Update index-dirty flag (0) — NO_BARCODE (0x0x1021081e0).
LTFS11100I Writing label to partition a.
LTFS11278I Writing index to partition a.
LTFS30808I READ_ATTR(0x8c)返回-20501。
LTFS30865I READ_ATTR返回CDB(-20501)0中的无效字段
。LTFS30836I无法读取属性(-20501)。
LTFS11336I该属性不存在。忽略预期的错误。
LTFS17235I将NO_BARCODE的索引写到9068025555(原因:格式,0个文件)
。LTFS17236I写了NO_BARCODE的索引(a,********)。
LTFS15013I卷UUID是: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 starting, LTFS version 2.4.2.0 (10418), log level 2.
307 LTFS14058I LTFS Format Specification version 2.4.0.
307 LTFS14104I Launched by «ltfs /Volumes/LTFS/».
307 LTFS14105I This binary is built for Mac OS X.
307 LTFS14106I GCC version is 4.2.1 Compatible Apple Clang 4.1 ((tags/Apple/clang-421.11.66)).
307 LTFS17087I Kernel version: 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 Sync type is «time», Sync time is 60 sec.
307 LTFS17085I Plugin: Loading «iokit» tape backend.
307 LTFS17085I Plugin: Loading «unified» iosched backend.
307 LTFS14095I Set the tape device write-anywhere mode to avoid cartridge ejection.
307 LTFS30810I Opening a device through iokit driver (0).
307 LTFS30814I Vendor ID is IBM.
307 LTFS30815I Product ID is 'ULT3580-TD5 '.
307 LTFS30816I Firmware revision is H976.
307 LTFS30817I Drive serial is **********.
307 LTFS17160I Maximum device block size is 1048576.
307 LTFS11330I Loading cartridge.
307 LTFS30854I Logical block protection is disabled.
307 LTFS11332I Load successful.
307 LTFS17157I Changing the drive setting to write-anywhere mode.
307 LTFS11005I Mounting the volume.
307 LTFS30854I Logical block protection is disabled.
307 LTFS17227I Tape attribute: Vendor = IBM.
307 LTFS17227I Tape attribute: Application Name = LTFS.
307 LTFS17227I Tape attribute: Application Version = 2.4.2.0.
307 LTFS17227I Tape attribute: Medium Label =.
307 LTFS17228I Tape attribute: Text Localization ID = 0x81.
307 LTFS17227I Tape attribute: Barcode =.
307 LTFS17227I Tape attribute: Application Format Version = 2.4.0.
307 LTFS17228I Tape attribute: Volume Lock Status = 0x00.
307 LTFS17227I Tape attribute: Media Pool name =.
307 LTFS14111I Initial setup completed successfully.
307 LTFS14112I Invoke 'mount' command to check the result of final setup.
307 LTFS14113I Specified mount point is listed if succeeded.


她在这里,是我们在桌面上的磁带,称为Test(ltfs)!无名磁带将获得名称OSXFUSE Volume 0(ltfs)。

现在您可以和她一起工作了。

图片

实际上,您应该记住,建议不要滥用在finder窗口中查看磁带目录的内容,因为这对于LTFS来说是一项非常昂贵的操作,但是最好使用终端命令,或者只是将备份目录批量转储到磁带上,如图所示。在上面的窗口中。

顺便说一句,有一个专门编写的IBM实用程序ltfs_copy及其克隆,旨在更有效地在磁带和磁盘之间进行复制,但是到目前为止,作者在表面搜索期间仍无法在公共领域中找到它们。

您可以使用以下命令卸载磁带:

umount /Volumes/LTFS


或直接将其扔进篮子。

实际上,本质上,macOS可以使用某种图形外壳来促进这些操作,但是在发生这种变态之后,我们是否害怕在终端中键入几行?

副作用是,我们有机会通过SAS / 4 * eSATA电缆连接外部eSATA驱动器。

图片

All Articles