MENU

【歪门邪道】LTO磁带归档指北

November 29, 2023 • 瞎折腾

免责声明:我也是最近才入门LTO磁带这些东西。本文的撰写是为了方便其他入门者,但鉴于我水平有限,文中难免有错误的地方。请读者不要盲目轻信,务必先从其他渠道查证。

前摇

磁带机这个东西在我心里是觊觎已久,但奈何新品磁带机太贵(LTO8磁带机售价在5万以上),同时我作为一个笔记本用户,没有PCI-E插槽,因此也就无从使用SAS卡来驱动磁带机。虽然我的笔记本有雷电3,同时我也考虑过用雷电3转PCI-E,然后再插SAS卡,最后接到磁带机上,但我的桌子本身就很乱,这样一来乱上加乱,而且这些零件大部分都是裸露的电路板,我想想了一下那个场景,差不多就是我刚问完电脑吃了几碗粉。于是就此作罢。

后来有一天我在刷咸鱼的时候,突然看到一个卖整套方案的。卖家把雷电转PCIE卡、HBA卡和磁带机封装在一个3D打印的壳子里,我非常心动。我买了一个LTO6的磁带机,花费3000块钱。当然,如果是自己动手DIY买零件的话用不了这么多,2500足以。但首先我不会设计3D打印的模型,其次不想花时间调试(承受买来的硬件之间不兼容的后果),所以花钱图省事。

所谓好事多磨,第一次收到磁带机就已经是下单后的一周以后了。结果收到之后装好驱动,电脑蓝屏、磁带机无法写入LTFS,很是奇怪。寄回给卖家,最后发现是HBA卡不兼容。我买的磁带机是FC口的,原本的卡是ATTO FC-81EN,后来换成了QLogic 2532就好了。其实我更偏向于SAS卡一些,但能用就行呗,磁带机用的是半高的HP LTO-6 Ultrium 6250,由于后来HP拆分,企业部分变成HPE了。关于磁带机的选择,目前来看主流厂商就两个,一个是IBM,一个是HPE。HPE的软件支持比较好,早些时候IBM的LTFS在Windows 10和11上由于一次系统更新而废掉,据说至今还没修复,但HPE的LTFS则完美工作。我看了代码,HPE的LTFS是从IBM那里分支出来、单独维护的。同时我看网上评价HPE的磁带机对于环境的容忍度比较高,同时比较结实耐用,而IBM的毛病多,今天有灰尘啦,明天热啦,后天潮了如何如何的,同时据说还有固件层面的计划报废,不是很推荐购买。但HPE的一个诟病就是固件更新需要花钱买。也就是说如果你的磁带机买来的时候不是最新的固件,那你几乎没有办法下载到最新的固件——尽管LTFS和管理磁带机的软件是免费下载的。

但这也并不是无解,我在reddit上看到有人说他的工作环境有HPE的支持账号,可以帮大家下载磁带机固件。这种方法并不长久,但似乎也只能这样了。好人一生平安。

这里也顺手分享一下我囤的固件。截至目前(2023年11月),这个是6250这款机器的最新固件。对于SAS口的机器,应当使用版本为35PW的固件;对于FC口的机器,应当使用25MW的固件。如果使用HPE的L&TT工具,那它会自动识别,无需你担心刷错固件而导致磁带机变砖。

https://drive.google.com/drive/folders/1yY6G7NksmupbxHKUfbzKtYUa7dG1doMw?usp=sharing

总之,再次收到磁带机后,测试通过,读写LTFS也没问题,于是就万事大吉了。

磁带

有了磁带机,还有一个问题:没磁带啊。对于LTO-6磁带机,它可以读写LTO5和6的磁带,只能读LTO4的磁带。其中LTO5的磁带单盘容量为1.5TB,而LTO6磁带是2.25TB。对于新一点的LTO8磁带,其单盘容量能达到10TB以上,但很遗憾,我没钱。所以我只能先使用LTO-6磁带了。但这种磁带似乎也不好买:淘宝上有全新的磁带,190一盘;咸鱼上有二手的,大约60一盘。虽然磁带比较长寿,但二手磁带也不知道经过什么样的摧残,还是全新磁带更安心一些。于是我买了两张二手的HP磁带,一张全新的HPE磁带,一张全新的IBM磁带,和一张昆腾的清洗带。是的,磁带机的磁头脏了是要用清洗带的。

全新磁带拿来就能用,二手磁带有一张死活无法格式化LTFS,最后我打开HP LTT,对这盘磁带进行了Full erase,耗时四小时多一点,然后就可以顺利格式化LTFS了。

关于磁带,由于我财力有限,所以我的策略是新旧混着用。所有数据存三份,一份在二手磁带上,一份在全新的HPE磁带上,还有一份在IBM的磁带上。其中HPE制造的磁带用的是MP,即金属粉末(Metal Particle);IBM则使用BaFe,也就是钡铁氧体(Barium Ferrite)。从名字就能看出,后者比前者更加优越,例如更高的存储密度和更长的存储寿命。而令人惊奇的是,IBM的磁带和HPE的磁带卖得一边贵,而IBM还送两张标签贴纸(不是条码贴纸,条码要另外买,6块一张),而HPE用廉价的材料,可是还不附赠贴纸,岂有此理。

总之,我觉得无论如何,假设我每半年拿出来检查一次,无论是二手还是全新磁带,无论是MP材料还是BaFe材料,总能在我发现事情不对之前撑住吧?

备份还是归档

格式化好LTFS之后,我开始思考一个更加重要的问题:这玩意儿怎么用?

磁带由于它只能线性访问的特性,因此不能和硬盘那样使用。同时LTFS虽然把他映射成为了一个文件系统,但本质上还是一个磁带,只能append,删除只是元数据。因此磁带的主要用途基本都是离线的备份或者归档。

所谓备份,是说磁带上的数据是一个备胎:如果足够幸运的话,可以到死都不用拿出这个备份。所谓归档,则是把数据从一个地方搬到磁带上,从而节省出源位置的空间——这也是我购买磁带机的主要目的。

关于软件,备份的话主打一个自动化,可以定时备份和检查。而归档则是偏向手动的过程,但也需要软件辅助,例如索引。

关于归档方面,Reddit上呼声最高的是Linux的tar命令,这玩意儿最开始被发明出来就是为了tape archive,但它只是一种存储格式,把众多令LTFS面露难色的小文件打包成一个大文件。但为了管理实际写入到LTFS的文件,我还需要一个归档管理软件。它的主要作用就是记录哪张磁带上写入了哪些文件,这样我便可以在软件中查询某一个文件所在的磁带,然后读出来,而不是挨个读每张磁带——这样对磁带机不好,对磁带也不好。

但找来找去,我没找到几个特别好用的软件。我主要一个叫做YoYotta的软件,他是基于LTFS做归档管理的,但它只有Mac版本,同时还是按年订阅的。我思来想去,随后决定自己写一个,这个软件将在稍后的文章中更新。

一致性检查

除了一份数据存三份,更加重要的一点是辨别出这三份中谁是好的,谁是坏的。这个重任自然就落到了密码学哈希的头上。我偏爱SHA3-256,因此我是用这种哈希来进行校验。首先是写在LTFS上的tar文件,我可以使用哈希来确保这些文件和写入的是一样的。如果哈希变动了,说明文件损坏了。

假如三份文件都损坏了,那就要看看tar文件本身能解压出什么,鉴于三份拷贝不太可能同时在一个地方损坏,因此数据总是能有互补的地方。对于TAR文件来说,最重要的就是全局头,它记录了每个文件数据头的位置。如果这个头损坏了,我们就只能靠猜来决定文件的起止位置了;其次是每个文件的头,它记录了每个文件的元数据,比如大小、时间、权限等;最后是每个文件的数据。由于tar本身不具有校验和,所以对于文件数据的存储是否正确我们也无从得知。但是借助第三方工具,例如Linux下面计算校验和的工具,或者类似TeraCopy这种工具,我们可以对一个文件夹下的文件计算哈希,并将哈希保存下来。将解压出来的文件与这个保存的哈希作比较便能得知其是否正确了。当然,如果哈希文件本身损坏那就没得聊了。

不过话又说回来,在存储方面没有万无一失的办法。解决方案的可靠性总是取决于你的财力和花费的时间中的最大值——如果你很有钱,你可以购买最新的设备、最好的耗材,把一份数据存好多份,然后散布到全世界进行存储(像AWS那样);如果你很有时间,你可以每天或每周检查一次你的存档,看它是否损坏。而我没什么钱,也不可能把时间全部耗费在检查存档上,因此我可以接受这种后果:我在磁带上存储的都是那些我希望保留的数据,留着我会很开心(例如我初中时的照片),但丢了我也不会死。对于重要的数据,我会在我的nas和云服务上保存好几份。

碎碎念

磁带存储之所以没有普及,是因为它主要解决面向数据中心的需求。就我而言,我购买的LTO磁带机用的是LTO6技术,这一代是在2012年12月发布的,至今已经有超过10年的历史了。全新的磁带机非常贵,并且几乎不对个人单独出售,而整套存储解决方案(带库+软件)更加昂贵,即便是Homlab爱好者也鲜有大笔投资的。目前ebay和咸鱼上的设备主要都是机房淘汰下来的,从目前的形势来看,LTO7尚且还没有淘汰,估计还要再等3年才会有大量淘汰货下来,而要等到价格更加亲民,可能还要奔着5年等。并且从LTO 8开始,向下兼容变得更短:能够读写LTO 8,但只能读LTO 7,读不了LTO 6。而对于磁带这样的长期存储,兼容性是首要考虑的内容,硬盘之所以能够流行,就是因为你现在打开淘宝或者京东,还能买到可以读取IDE的USB设备。IDE接口在2003年被SATA取代,但20年后你仍然可以使用现代USB技术读取它。对于LTO磁带来说,它只是一种介质,你需要一种机器来读它。如果你只是把磁带放置20年不管,那20年之后还有没有设备能物理地读取他将是最大的挑战,其次是你所使用的格式还能否在20年之后的电脑上正确解码。

然后是压缩和加密。LTO的压缩是硬件处理的,它对于操作系统和数据来说完全透明,但考虑到我存储的主要还是压缩包和多媒体文件,他们本身不太容易被压缩,所以我倾向于关闭压缩,给磁带机省点事儿。至于加密,虽然加密是一种很好的保护隐私的手段,但鉴于我几月不登录的账号就会忘记密码,我选择不加密。试想十年之后,比起磁带读不出来,忘记一盘完好磁带的密码好像更可悲一些——数据就在那里,每一个比特都没有坏,只是你忘记了密码,自此你与它毫无关联。

最后关于LTFS本身,它就是把磁带变成了文件系统。磁带从本质上来说不具备随机读写的特性,所以所有的写入全都是追加。LTFS本身会利用第一个分区来记录文件索引,因此当你移动或删除文件时,修改的只是文件的元数据,文件本身在磁带上没有移动。因此删除数据并不会释放空间,也不会让数据从磁带上物理地消失。而磁带也没有磁盘整理这一说,因为它只有一个磁头,读就不能写,写就不能读,并且在不同位置读写需要数秒的倒带,这和硬盘的磁头在几毫秒内切换磁道完全不同。不过LTFS除了用于备份和归档,它还可以用于传递数据(假如你有朋友,并且你的朋友也有兼容的磁带机时),即便是LTO-5,一盘结实不怕摔的1.5TB磁带可比邮寄一个脆弱的2TB移动硬盘要安心。

至于归档软件,我查到了几个Windows上的软件。比如P5 Archive,这玩意儿售价2300欧元,还得找零售商。PreRoll Post可以在网页上购买,但首年售价500美元,次年起续费140美元。太贵了,玩不起,还是我自己写吧。

-全文完-


知识共享许可协议
【歪门邪道】LTO磁带归档指北天空 Blond 采用 知识共享 署名 - 非商业性使用 - 相同方式共享 4.0 国际 许可协议进行许可。
本许可协议授权之外的使用权限可以从 https://skyblond.info/about.html 处获得。

Archives QR Code
QR Code for this page
Tipping QR Code