使用和操作磁带机的奇妙体验

最近笔者搞了一台LTO磁带机,用作(大量)数据的备份,顺便熟悉一下相关技术。这个过程中,觉得有很多有趣和值得分享的内容,遂著文记之。

LTO技术概述

在了解何为LTO之前,我们简单的了解一下磁带这种存储技术,包括其工作原理和发展过程。

关于磁带技术

在计算机系统硬件的发展历史中,磁带本身是一个很古老的技术。几乎和电子计算机系统一样古老。恐怕仅次于纸带。在通用的计算机系统架构中,磁带初始时作为输入输出设备使用,后期到现在主要是作为信息存储设备使用。

从技术发展的历史来看,所有的磁带系统的工作原理都是类似的。磁带的本体是一个很长的(LTO磁带可长达数百米),可以卷绕的聚酯材质的薄膜带构成。在薄膜带上,覆涂了一层磁性材料,在微观结构上,这些材料可以分割为无数的小型磁极单元,用来表达和记录信息。磁带通过机械结构卷动磁带,就可以定位到特定的位置(寻址),然后让磁头可以读写对应的区域,从而完成记录和读写的操作(图为磁带数据区块结构)。

本质上而言,所有磁带都是数字化的,它们在技术上的差异,主要就是磁带材料的耐用程度和机械性能,磁带卷绕的速度(影响寻址性能),磁性材料的存储密度和磁带长度(影响存储容量)等等。

除了磁带本体之外,磁带系统还有配套的读取设备,就是磁带机。和硬盘系统不一样,磁带系统基础模式就是将读写设备(磁带机)和存储介质(磁带)分离,存储介质是可以按需装载和替换的,这样虽然增加了操作的复杂度,并且会影响存取性能,但显然更加符合成本效益和磁带系统低成本大容量的设计定位。

当然,随着技术的发展,人们觉得磁带的这种工作方式,效率太低。因为磁带本质上是一个一维设备,对于随机的定位和寻址是非常不友好的。但是使用磁技术来对信息进行记录、存储和读取这种模式,却是可以保留的。所以很快的,在此基础上,发明了磁盘。磁盘和磁带本质上是一种东西,它只不过是把磁带使用圆周的方式重新组织了一下,但这样磁头就可以简单的通过在镜像移动,快速的在磁道上进行移动和定位。这样,在不改变基本原理的情况下,成功的将一个一维设备,转换成为了二维设备。

那么,我们可以再延申一下,那么有没有三维磁存储设备呢。其实我们使用的机械式硬盘都是这种设备。因为现代的机械硬盘,都是有多个盘片和磁头的。它通过堆叠的方式,简单粗暴的扩展了存储容量,可以看成一种三维存储结构。

凭借这个多出来的两个维度,基于硬盘技术的存储设备的性能,特别是在随机存储方面,得到了极大的提升。加上其持久化存储的特性,和内存搭配,在相当长的一段时间内,这是主流计算机系统的基本数据存储技术方案。当然,现在的持久化存储技术,已经快速的在向SSD技术过渡,这就是另外一个故事了。

虽然在性能上,磁带和内存、SSD甚至磁盘都没法相提并论,但其实磁带在特定的场景和需求下,也是有它的优势和特点的。就是用于长期、低成本的备份和存储。在这个场景中,和其他存储技术相比,它的优势在于:

  • 寿命

现代先进磁带技术,本身就是为长期存储的需求而设计的。特别是现在大容量磁盘的价格已经降低到了一个比较可观的程度,所有可能有人提出,是不是可以使用大容量磁盘来作为主要的数据备份机制。当然这么在短期没有太大的问题,但可能需要考虑长期的可靠性和经济性。硬盘毕竟是一种有机电结构和运动部件的设备,在运行状态下,肯定有更高的错误和失效风险。静置硬盘可能更不可取,为运动设计的部件,长期不运动,出现失效的风险可能更大。所以虽然都是大容量数据存储设备,它们在应用场景和需求方面,其实还是有比较大的区别的。磁带更适合作为长期保存的数据备份的实现方式。而大容量磁盘更适合在线冷数据的使用场景。

  • 成本

就新设备的容量和价格而言,好像LTO磁带相比普通的硬盘,并没有太大的优势。还是前面的理由,在长期保存中,磁带应该更有优势。另外,可能是由于作为企业类型的信息系统,磁带这种技术在更广泛的家用和普通商业应用并不广泛,导致它的规模效益不太好。全新的LTO磁带机和磁带的定价,都是很高昂的,普通用户是承受不起的。所幸的是,它的二手产品也是由于类似的原因,价格却很低,这时候是能够突显成本效益的。特别是对于普通用户而言,是一个比较好的选择。

除了拥有成本之外,磁带的一个优势是它的使用和运维成本,它只需要一个相对较好的保存条件就可以了。而硬盘作为一个电子设备,其实并不建议特别长时间的静置。

  • 容量

这个容量是相对于其成本而言的。它可以提高相对成本而言很大的存储容量,并且非常易于扩展。因为如果磁盘要扩展容量,必须要扩展磁盘本身,而磁带要扩展容量,只需要扩展磁带介质就可以了,相对而言容量成本很低。

关于LTO

LTO是Linear Tape Open,开放线性磁带的简称。顾名思义,它是一种开放标准的磁带存储技术和体系。它的出现,代表着磁带存储技术的成熟和体系化。

和所有的信息技术体系类似,在没有标准和规范之前,这些技术都是由各个设备供应商自己研发和主导的。它们开发的磁带和磁带机相互不兼容,或者只能运行在自己的软硬件系统之上。这一点非常不利于产业的发展,在这种情况下,在1997年,IBM、HPE和Seagate达成协议,共同开发一种开放标准的磁带存储技术。次年,即1998年,就推出了第一代LTO产品,并正式发布了LTO技术标准。第一代的LTO-1产品,基础容量为100GB,传输速率20MB/s。其后基本上,每隔2~3年,就会推出一个新的版本,技术不断精进,持续迭代升级,当前最新版本是在2021年发布的LTO-9,基础容量18TB,传输速率360MB/s(图为LTO-8磁带和磁带机)。实际上,他们对LTO的规划,已经做到了LTO-14,大约10到15年之后,磁带的原生容量高达576TB。

经过长时间的发展和升级,LTO的应用也越来越广泛,逐渐淘汰了很多私有的磁带技术,已经成为磁带技术领域的事实标准。

更难能可贵的是,即使在这么长时间的发展过程中,性能、容量包括特性都有了很大的变化,但它的外在物理规格基本上没有发生变化,保持了很好的兼容性。当然,考虑到技术的迭代,如果代际差异太大,也不需要兼容,所以LTO设计一个比较合理的兼容性规范。简单而言,就是当前代际产品,兼容本代和上一代的读写操作,兼容再上一代的读取操作。例如笔者使用的LTO-5磁带机,可以读写LTO-5和LTO-4磁带,并可以读取LTO-3磁带(这时就不能写入了)。这样可以比较好的保持数据备份业务的连续性,对于企业应用而言,也不需要频繁的升级磁带设备和技术。

起码到现在为止,从第一代到第九代,LTO磁带盒的外观都是一样的。其基本物理规格为长105mm宽102mm厚21mm,重200g。当然,肯定在内部,还是有一定差异的,应该主要就是磁带的材料、介质、厚度和长度了,不然如何做到在同一个盒子里面的存储容量增长高达180倍呢。LTO磁带宽度为12.6mm(半英寸),长度和厚度随版本不同略有差异,如LTO-5的厚度为6.4微米,长度为846m(图为LTO磁带内部构造)。LTO-5的读写速率大约为15MB/s,磁带的运动速度约为3m/s。

在设计和使用方面,LTO为企业级长期应用做了很多设计和考虑。比如外壳采用坚固耐用的材料和结构,可以更好的保护磁带。在软件方面,采用多种数据校验和保护技术,保证数据完整可靠持久。在不同的代际上,还增加了一些附加的特性,来提升备份操作的方便性和安全性。比如在LTO-5引入了LTFS文件系统,可以使用类似通用文件系统的方式来存取磁带内容;如WORM(一次写入多次读取)特性,可以防止数据意外修改等等。这些措施,配合一定水准的使用环境控制,使制造商有信心提供10-30年的存档生命期承诺。

所以,笔者觉得,LTO的成功不仅仅是因为它是由行业巨头主导的,还在于它的长期规划和稳定发展。这是由其背后的几个领导厂商在企业产品和领域的基础决定的。这个在企业级信息系统市场领域,非常有启示和借鉴意义。

使用和操作

下面笔者想要来分享一下LTO的使用和操作体验。

环境和配置

先说一下笔者操作磁带机的环境和配置方式。

笔者使用的这台磁带机是HP的LTO-5磁带机,型号是: Ultrium 5-SCSI,操作时的设备地址在 /dev/st0。但这个磁带机并没有直接使用SCSI,或者是经过了转换,使用光纤接口。所以需要配套的光纤通道适配器(FCHBA)来连接。这个光纤卡的型号是QLogic ISP2532 8Gb。以上这些信息,可以使用lsscsi和lspic命令获取。

主机的基本配置,CPU是Intel Core i5-3330S CPU 2.70GHz,1ML2, 6ML3;内存 8G DDR3-1666; 磁盘,系统盘SSD 126G + 数据盘3.5寸 3T;网络是 Realtek RTL8111千兆以太网卡。

操作系统是基于ArchLinux的EndeavourOS系统,可以看成就是ArchLinux, 64位。

笔者还没有时间深入研究,所以所有磁带操作和软件都使用系统内置软件和命令,基本可以满足基础的数据备份和恢复的应用需求。

关于容量

笔者现在的LTO系统的主要使用场景是个人数据备份。数据也主要是一些压缩包、软件、图片、视频、音乐等等,并不是特别重要。所以更多的是考虑成本和方便性,综合考虑之下,选择了当前这个LTO-5的磁带机。配套的磁带就是LOT-4和LOT-5。

相对而言LTO-4磁带的性价比更高。以笔者所使用的LTO-5磁带系统为例,二手的LTO-4磁带的容量为800G,市场价格只有二十块钱;LTO-5的容量1.5T,也不过几十块钱,远比二手大容量硬盘的价格要低,而且可信度要高很多。

需要注意的是,LTO磁带的容量,一般有两个数字,就是原生容量和压缩容量。比如LTO-4标准原生容量是800G,压缩容量是1.6T。这应该是LTO技术内置和使用了信息压缩算法的原因,而且这个压缩操作对于使用而言是透明的,只需要为磁带设置一个压缩选项,在操作中完全和平常一样,非常方便。对于一般的文本和程序文件,都可以达到2左右的压缩比例,所以可以标注为1.6T。

但是,笔者理解,这个应该和日常备份信息的类型有很大关系,比如如果日常操作的本来就是压缩文件,或者如图片、视频这种多媒体文件,本质上也是压缩后的数据,效果就应该比较有限了。在这种情况下,这个压缩容量的意义就不是很大,所以笔者在计算容量时,只考虑原生容量。而且有一些感觉,这个原生容量也是有一些水分的(可能和使用的磁带比较老有一些关系),有一次就出现了容量不足的情况,但在磁盘上待备份的文件,还远没有达到其宣称的大小。所以还要留出一定的余量。

注意事项

笔者使用这个磁带机,由于没有经验,过程并不顺利。这里简单总结一下相关的问题和解决过程,作为一个记录,同时也希望分析给后来人,希望有所帮助。

  • 电源问题

硬件安装过程是顺利的。安装完成之后,可以使用lspci和lsscsi、mt-st status等命令查看相关状态。但当插入磁带时,不时出现错误,同时磁带机面板上的所有灯都处于点亮状态。后来咨询了一下,说是电源的问题。这和我们以前使用外设(硬盘、光驱)的经验有点差异。磁带机是对于动力要求比较高的设备,最好能够保证充足的电力供应。建议整机功率最好在500瓦以上。后来笔者重新配置了一个400瓦电源,果然感觉稳定性好了很多。

  • 发热和噪音

不知道磁带机本身的特性是这样,还是由于笔者使用的设备比较老旧。这台磁带机工作起来的噪音是比较大的。此外,在进行读写操作的过程中,磁带和磁带机的发热量还是挺大的,工作温度比较高。虽然可以理解很多企业信息系统设备都不是太看重功耗、发热和噪音等问题(它们通常都在机房里),但在强调节能环保静音的新时代,这个确实也是一个问题。笔者在桌面和办公室环境的应用体验,绝对不能算好。

  • LTFS

笔者的使用环境比较特别,直接使用Linux系统。而非一般使用的Windows系统。所以无法安装那些常用的磁带管理和备份工具软件。虽然后面尝试了在Linux系统上安装了LTFS模块,但仍然无法按照预想方式正常工作,暂时就只能放弃这个模式,使用传统的tar命令方式。

  • 工作逻辑

作为一个典型的企业级信息设备,它的工作逻辑有点像Unix系统。就是它在工作的时候,可能会很慢,但一般不会出错,而且不会显示当前的状态,需要操作人员比较耐心和淡定。所以,要求工作人员对它的工作特性和基本性能需要有一定程度的了解,才能更好的操作和使用。

  • 磁带保存

虽然LTO磁带是为长期静置存放而设计的,但为了磁带状态良好和降低数据风险,还是应该尽量控制保存的环境条件。当然不用刻意的使用比如恒温箱保险柜之类的设备,但简单的密封防尘,防水防潮,避免过冷过热,避免阳光直射,避免强磁环境,避免受力等应该也是必要的。另外好像有建议说磁带应该竖直存放,不知道是不是有必要,尽量做到吧,起码竖着放可以改善受力和变形。

这里笔者想补充一些,看来竖直存放这个说法是有问题的。因为IBM的带库产品,磁带都是水平放置的,和很符合逻辑,因为所有磁带机都是水平工作的,没有理由在取放磁带时,还需要转90度,来增加麻烦。说竖直存放,更多考虑是受力的问题,水平存放通常会堆叠磁带,数量太大的话,受力太大。

光说不练假把式,下面我们就进入使用LTO磁带机进行文件备份的实操环节。方法论就是经典的哲学三大问题:

我是谁-要备份什么文件;我在那里-当前磁带机和磁带的状态如何;到那里去-如何备份和恢复文件。

sg_read_attr

我们先来讨论一下磁带的问题。当我们拿到一盘新(或者旧)的LTO磁带,并插入磁带机之后,要用它来备份数据之前,要先看一下这个磁带的状态如何,最基本的信息,当然就是它的总容量和可以容量,是否能够容纳要备份的数据。

这时,可以使用sg_read_attr命令,来查询磁带状态。结合设备名称,可以直接执行获取磁带信息如下:

shell 复制代码
sg_read_attr /dev/st0

Attribute values:
  Remaining capacity in partition [MiB]: 1569
  Maximum capacity in partition [MiB]: 800226
  TapeAlert flags: 16384
  Load count: 5
  MAM space remaining [B]: 1014
  Assigning organization: LTO-CVE
  Format density code: 0x46
  Initialization count: 1
  Volume identifier:
  Volume change reference: 0x19f
  Density vendor/serial number at last load: HP      HU1240RHTV
  Density vendor/serial number at load-1: HP      HU1240RHTV
  Density vendor/serial number at load-2: HP      HU1240RHTV
  Density vendor/serial number at load-3: HP
  Total MiB written in medium life: 676854
  Total MiB read in medium life: 289471
  Total MiB written in current/last load: 402590
  Total MiB read in current/last load: 269774
  Logical position of first encrypted block: <unknown> [ff]
  Logical position of first unencrypted block -
      after first encrypted block: <unknown [fe]>
  Medium manufacturer: HP
  Medium serial number: H8XTDWa905
  Medium length [m]: 820
  Medium width [0.1 mm]: 127
  Assigning organization: LTO-CVE
  Medium density code: 0x46
  Medium manufacture date: 20090106
  MAM capacity [B]: 4096
  Medium type: 0x0
  Medium type information: 0x0
  Vendor specific medium attribute 0x1000:
 00     01 a0 59 0c 48 38 58 54  44 57 32 37 54 44 4b 20    ..Y.H8XTDW27TDK
 10     20 20 20 20 00 00 1f 3f  00 08 00 00                    ...?....
  Vendor specific medium attribute 0x1001:
 00     01 a0 59 0c 48 38 58 54  44 57 32 37 48 38 58 54    ..Y.H8XTDW27H8XT
 10     44 57 61 39 30 35 00 08

// 获取磁带剩余容量,标记为0x1
sg_read_attr -f 0x1 /dev/st0

这是一个在LTO-5磁带机上,装载的LTO-4磁带,可以看到很多有趣的内容,相关要点如下:

  • 这个磁带的制造商是HP,磁带序列号是H8XTDWa905
  • 磁带介质(就是真正的那条磁带了)的长度是820m,磁带宽度为12.7mm,就半英寸
  • 当前磁带容量是800G,剩余容量1569M,基本上已经满了
  • 这个磁带的制造商是HP,制造时间是2009年1月6号
  • 这个磁带的生命周期写入数据是676G,读取289G,本次加载的读写分别是402G和269G
  • 一共加载了5次
  • 磁带密度标识代码为 0x46,应该是压缩标记
  • 可以使用-f标志,来过滤特定的属性,比如剩余容量是0x1,直接看剩余容量

Tar 命令

如果确认磁带可用,并且剩余容量足够的话,就可以实际进行文件备份操作了。这是使用的命令是tar。

以前接触linux系统的时候,以为tar命令就是一个简单的文件打包命令,但当实际的使用磁带机的时候,才知道它其实是来源于磁带操作的。tar的原意就是Tape Archive,磁带归档。

它的一般使用选项和生命周期如下:

shell 复制代码
// 创建备份并写入磁带,-c参数,支持文件夹
tar cvf /dev/st0 backup1

// 追加内容到磁带, -r参数
tar rvf /dev/st0 backup2

// 获取磁带文件列表,并写入文件,-r参数
tar tvf /dev/st0 > typecontent.txt

// 删除特定文件
tar vf /dev/st0 --delete 1.zip

// 恢复磁带文件
tar xvf /dev/st0 1.zip

简单解释一下:

  • tar 命令就是用于磁带内容获取,备份和恢复操作的主命令,它一般需要配合一些参数来使用
  • c, create 用于创建归档
  • r, expand? 用于追加归档内容
  • t, type 打印磁带内容
  • x, extract 解出归档内容
  • v, 应该是冗余模式,打印操作状态和信息
  • f, 指定归档设备或者文件,如果改为文件,就是一般的文件打包命令
  • /dev/st0, 磁带设备

所以,在原始的设计概念当中,每个磁带,抽象到系统中,就是一个文件。所以磁带操作的逻辑,和文件操作的逻辑是一样的。这个概念和和U盘的方式显然不一样,它被看成一个完整的文件系统。这样,如果要修改内容,就只有创建和扩展两种方式。理解了这一点,就能更好的理解磁带机工作的状态,和更好的来规划和组织备份工作。

磁带机的这种工作模式,也给日常的使用带来了一些不好的体验,基本上就是一个字:"慢"。这个慢, 其实不体现在它的读写速度上,主要体现在它的工作逻辑和寻址定位的过程之上。

简单的举个例子。笔者使用LTO-5磁带机和LTO-4磁带,备份400G(200多个)的数据,花费了大约90分钟的时间。而在这些文件中,要提取一个2G的文件,可能也需要花费这么多时间,因为这个恢复过程,和这个文件在归档包中的位置,有很大的关系,如果靠后的话,磁带机就需要先定位到合适的位置才能操作。

最后的结论就是,要更好的使用磁带机系统,预先规划和做好操作方案是非常重要的。目的是尽量减少无效的中间操作。比如备份时,可以分阶段增加备份文件;恢复时,可以考虑将整个备份集先恢复到磁盘的临时空间里,然后再进行后续工作。

mt-st命令

前面了解了如何进行文件归档和恢复的主要工作之后,我们再来看看,如何操作磁带机,它又需要使用另外一个命令:mt-st。它主要用于对磁带设备进行操作,其基本使用方式为:

mt-st -f 磁带设备 指令

其中 -f 是指定要操作的磁带设备名称,典型的如 /dev/st0,它们都以/dev文件夹中的文件形式呈现

日常经常使用的指令包括:

  • offline 弹出磁带
  • erase 擦除磁带内容,需要注意这个操作和写入操作差不多,可能需要消耗比较长的时间
  • rewind 回绕磁带,就是定位到磁带开始的位置

使用 mt-st -h 可以看到完整的帮助信息,可以看到其实有非常多的操作指令可用,但大多数日常使用都很少用到,或者需要更复杂的使用方式,或者可能只有在带库的环境下才有机会使用。

shell 复制代码
mt-st -h
usage: mt [-v] [--version] [-h] [ -f device ] command [ count ]
default tape device: /dev/tape
commands: weof, wset, eof, fsf, fsfm, bsf, bsfm, fsr, bsr, fss, bss, rewind,
          offline, rewoffl, eject, retension, eod, seod, seek, tell, status,
          erase, setblk, lock, unlock, load, compression, setdensity,
          drvbuffer, stwrthreshold, stoptions, stsetoptions, stclearoptions,
          defblksize, defdensity, defdrvbuffer, defcompression, stsetcln,
          sttimeout, stlongtimeout, densities, setpartition, mkpartition,
          partseek, asf, stshowoptions.

// 擦除磁带
mt-st -f /dev/st0 erase

// 弹出磁带
mt-st -f /dev/st0 offline

笔者认为,由于磁带的一维线性的工作方式,一般情况下并不需要频繁的擦除磁带,只有觉得磁带可能有问题的时候,才需要使用这个操作。尚不清楚这个操作是否有检查磁带或者校准的功用。

清洗带

笔者购买磁带机附带了IBM品牌的清洗带。这个磁带的外部规格和普通磁带无异,但标识了清洗带(Cleaning Cartridge)的字样。LTO清洗带的目的主要用于定期清洁LTO磁带驱动器的磁头和磁带通道,它可以处理磁头上的磁性颗粒、灰尘和其他污染物,改善和确保磁带驱动器的读写性能和可靠性。

按照规范和最佳实践,清洗带的使用场景包括:

  • 定期清洁,制造商通常会给出清洁周期的建议,如使用一定长度和次数的磁带,来清理积累的污垢
  • 读写错误,如果在读写过程中出现较多软硬错误或卡带等故障,可能是由于磁头污染导致的,此时可以尝试使用清洗带清洁磁带驱动器
  • 更换磁带,当更换新的磁带介质类型时,最好先用清洗带清洁一下驱动器,避免旧介质残留的磨损颗粒污染新介质
  • 长期闲置后,如果LTO驱动器长期闲置没有使用,磁头上可能会积累灰尘和其他污染物,重新开机使用前也需要先进行清洁

清洗带的使用是完全自动化的,就是插入清洗带,清洗操作就会自动进行,它会通过卷绕清洗带介质来进行清理工作,完成后磁带也会自动弹出,无需外部命令或者额外操作。

另外,还需要理解,清洗带的使用次数是有限的,过多使用会降低清洁效果。同时也要避免在清洁后立即使用数据磁带,应该先装入测试磁带检查驱动器运行状态。清洗带好像是不分LTO版本的,除非特别标明,一般是比较通用的。

其他工作方式

笔者并不是专业的磁带机操作人员和系统运维人员,所使用的方式就是最简单的文件备份和恢复操作。也没有使用专业的磁带管理和操作软件。对于其他的操作方式,只是略有耳闻和理解,希望后面有时间和机会可以实际操作。

  • LTFS

从前面的操作来看,还是非常传统的磁带和文件归档操作,步骤比较多,操作不直观方便,对使用者的要求也比较高。为了提高系统易用性,特别是考虑到普通运维人员的操作系统,从LTO-5开始,引入了LTFS(Linear Tape File System,线性磁带文件系统)技术。

通过检索相关资料,笔者了解到LTFS有很多创新的技术,可以提高磁带操作效率和使用体验。从其名称就可以知道,这个技术的核心是将磁带访问"文件系统化"。具体而言,LTFS定义了磁带卷的自描述XML格式规范,可实现不同操作系统之间的互操作性;这样,LTFS就可以将磁带内容表示成磁带存储卷和文件目录的形式,用户和操作系统就可以像访问磁盘一样访问和管理磁带内容,尊重了已有的应用经验和体验;此外,LTFS还优化了内容存储效率,它支持构建内容的索引,从而大大加速了内容寻址,提高了存取效率;最后,LTFS还支持数据完整性校验,确保数据在读取和写入过程中不会损坏。LTFS的出现,是LTO技术的一个很大的进步。

但遗憾的是,不知道是什么原因,笔者在Archlinux操作系统上,安装完成LTFS之后,无法正确的挂载系统。也许可能是LTO-4磁带的问题,也可能是操作系统不兼容的问题,现在还没有条件去验证和解决。

  • Windows

笔者上没有机会和条件在Windows系统上进行操作。听说主要使用配套的备份和管理软件。

  • Non Rewinding(非回绕, NR)

一般情况下,磁带在执行写入操作完成后,会自动回绕到起点。而Non Rewinding是指在磁带读写操作完成后,磁带不会自动回绕,而是停留在当前位置。这样的好处是,当下一次再进行读写操作的时候,磁带会从当前停止的位置而不是从头开始。显然,这会节省大量的定位和寻址空间。这个特性,特别适合于追加写入新数据的场景。当然,LTO也提供了手动回绕控制,用户可以强行将磁带回绕到初始位置。

使用NR需要用户非常熟悉磁带的操作和内容,以及良好的规划和操作规范。笔者尚无机会设计一个场景来使用这个特性。

  • 磁带卷 Tape Volumn

如果要进行归档或者备份的资料,大于一个磁带的容量,就需要使用到"磁带卷"的功能了。笔者也没有机会遇到这种情况,因为总有方法可以将备份的信息分割处理,要在逻辑上管理多个相关的磁带,会比较麻烦。这里我们只需要知道有这么一种特性和使用方式即可。

  • 带库

在大型(土豪)企业中,对于磁带的操作,通常是通过带库系统来进行的。带库系统本质上是一个自动化磁带管理和操作系统,它的基础还是磁带机和磁带,但有一套机械结构,可以存储很多磁带,并使用管理软件来控制这个机械结构自动加载磁带到磁带机中。这个我们经常可以在科幻或者高科技电影中看到这样的场景,非常有未来感。

上图就是IBM TS4500磁带库系统,可以看到这个可扩展的机柜式架构,磁带放在两边的货架之上,中间是一个机械臂,它可以使用磁带的标签来进行定位,并将磁带从架子上取下,并加载到磁带机上(机柜右上角有多个磁带机)。根据配置的不同,它可以支持多达23170个磁带,并提供最大351PB的存储容量。报价是....(Contact US,联系我们)。

体验和感慨

经过一段时间的使用和体验,笔者觉得有一些感想,值得和读者分享。

  • 磁带

笔者以前也知晓和了解一些数据磁带,起码看到过老式数据磁带和磁带机的照片。当然更熟悉的是影音产业使用的录音带,录像带等等。但当实际的拿到了LTO磁带的时候,还是不禁感慨,这真是现代化工业的杰作啊!相比而言,以前的录音带甚至录像带简直就是个玩具。

在笔者看来,LTO磁带是一个经典的工业设计。方形的结构最大限度的利用了空间。LTO的磁带和磁带机配合工作,实际的读写操作,其实是在磁带外部操作的。磁带加载时,磁带机会将磁带从磁带盒中拉出来,临时的卷绕在磁带机的一个卷轴上进行工作。这个结构和录音机录像机有很大的差异,它们在磁带盒上就有两个卷轴,所以要做成长方形的。

除此之外,磁带盒的设计和做工非常讲究。在后侧有标签区域,在壳体上有各种凹槽和空洞,这些都方便在带库中的操作,如识别磁带标识,使用机械手臂抓取,在磁带中的固定等等。一看就是高级的工业产品。

  • 磁带机

笔者正在使用的磁带机,就是HP Ultrium 5-SCSI。以前的磁带机产品和企业级硬盘类似,应该都是SCSI接口。光纤通道是其物理接口,逻辑协议应该还是SCSI,所以系统会认为它是一个SCSI设备。

磁带机的规格,基本上和5.25寸的光盘驱动器是一样的,而且也是一个内置设备的规格。但比较尴尬的是它的长度比标准光驱稍长一点,机箱紧凑一点,可能就装不进去了。另外它的固定螺丝也比较奇怪,无法紧固,不知道会不会有什么不利影响。

和光驱不同,一般售卖的内置磁带机,都是没有盖板的?外置的好像都有,理由其实很好理解,很多磁带机都是上架的,和带库配合操作,使用机械臂进行磁带的加载和取放,不需要盖板。当然这里我们是手工操作,卖家配了一个弹簧式盖板。插入磁带时需要先掀起盖板,才能插入磁带;出带的时候,磁带会吐出来,自动顶开盖板。(图为一般产品图,非笔者设备)

磁带机前面板上有很多指示灯,显示当前的工作状态。如果全亮,就表明有故障,前面已经提到,可能是电源的问题。操作按钮和光驱一样,只有一个弹出介质按钮,在空闲情况下,按此按钮,磁带会弹出。但如果正在进行操作,可能需要等待操作完成后,才会弹出。

磁带机后面就是光纤通道的接口和普通4PIN大D型电源接口,和老式的硬盘是一样的。磁带机底面可以看到强大的电机和驱动器结构,相比小时候常见的录音机,明显有力多了。毕竟它需要以3m/s的速率快速卷动数百米长的磁带。

多提一句,现在的单体磁带机,除了光纤之外,常用的接口,应该也是SAS了,搭配和应用也比较方便。

  • 品牌

应该讲,在这个市场上,基本上没有伪劣产品,因为这个技术过于精尖,市场狭小,用户品牌忠诚度极高,玩家都是行业巨擘。所以我们能看到的磁带机和磁带就只有IBM、HP、Quantum、Sony、FUJI这些,笔者甚至觉得像Dell这种的产品,并不是自有的,其实都是OEM的产品和技术。

  • 关于成色

相对而言LTO-5确实也是比较老的技术了,大约是2010年左右的主流技术。所以现在主要在用的磁带,也都是那个时期的。这些磁带的情况,可以使用read_attr命令来进行读取。笔者的感觉,磁带的状态好像和制造时间、加载次数、寿命周期内读取和写入量,在一定范围内,有一定的关系,但关系不大。比较大的应该是磁带的保存条件。这个确实有时候从外观上不好判断,只能在使用中看磁带机的工作状态,还是有一些差异的。

  • 工作声音

这个声音不仅仅是工作时的噪音。如果细心的话,会发现它工作时的声音,其实是和其工作状态是相关的。它在加载、寻道、写入或读取、甚至回绕的时候,声音都是有一些差别的。而且,比较有趣的是,不同品牌或者不同良好状态的磁带,在工作的时候,声音也是不一样的,好像状态比较好的磁带,发出的异常声音确实是比较少的,而且声音表现出来的状态也确实比较顺畅平稳。

总体而言,磁带机的工作噪声是比较大的,发热也比较严重,对于普通办公环境并不是很友好。

  • 操作时间

虽然从主要技术指标如读写速度上来看,磁带操作和硬盘的差异并不是很大,但实际使用体验的差别是非常大的,可能是因为作为一维设备,它在寻址上花费的时间太多了,这可能是一种物理上的限制。所以熟悉和了解这个情况,可以帮助操作时有一个合理的预期,减少过程焦虑。

下面是笔者在自己的设备上,进行的一些操作耗时的经验数据。

磁盘擦除: LTO-4 800G, 120min

文件夹备份: 单文件夹,264个文件,432G,约90min

单个文件恢复: 4.8G,50min,主要是在备份集中的位置比较靠后

回卷时间: 约30s,可以在每次操作最后,明显的听到回卷操作的声音

相关推荐
止语Lab2 小时前
好的 DX 不等于少写代码——三种语言的摩擦力设计课
后端
吃饱了得干活2 小时前
别再手动解析 LLM 输出了!LangChain 四种结构化输出方案对比
后端·python·langchain
程序员天天困2 小时前
Arthas trace 命令怎么用?一行定位最慢那行代码
jvm·后端
Huiturn2 小时前
GPT 5.6 连续编码 10 小时,纯 Python 啃下 Word 二进制格式——doc2docx 实现拆解
后端
用户298698530142 小时前
Python 实现 Excel 与 Markdown 互转的实用指南
后端·python·excel
用户77283104908402 小时前
krono-job:零侵入、单二进制交付的分布式任务调度平台(开源)
后端
Conan在掘金2 小时前
鸿蒙报错速查:Function lacks ending return statement,返回路径漏 return 就炸,根因 + 真解法
后端
人间凡尔赛2 小时前
AI-Native 云原生架构:2026 年从容器编排到智能体编排的范式革命
后端·云原生·架构
IT_陈寒3 小时前
Vue的响应式让我加班到凌晨3点,原来问题出在这
前端·人工智能·后端
卷无止境3 小时前
提升 Python 代码健壮性的方法大盘点
后端·python