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

最近笔者搞了一台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,可以在每次操作最后,明显的听到回卷操作的声音

相关推荐
qq_17448285754 小时前
springboot基于微信小程序的旧衣回收系统的设计与实现
spring boot·后端·微信小程序
锅包肉的九珍5 小时前
Scala的Array数组
开发语言·后端·scala
心仪悦悦5 小时前
Scala的Array(2)
开发语言·后端·scala
2401_882727576 小时前
BY组态-低代码web可视化组件
前端·后端·物联网·低代码·数学建模·前端框架
心仪悦悦6 小时前
Scala中的集合复习(1)
开发语言·后端·scala
代码小鑫6 小时前
A043-基于Spring Boot的秒杀系统设计与实现
java·开发语言·数据库·spring boot·后端·spring·毕业设计
真心喜欢你吖7 小时前
SpringBoot与MongoDB深度整合及应用案例
java·spring boot·后端·mongodb·spring
激流丶7 小时前
【Kafka 实战】Kafka 如何保证消息的顺序性?
java·后端·kafka
uzong8 小时前
一个 IDEA 老鸟的 DEBUG 私货之多线程调试
java·后端
飞升不如收破烂~8 小时前
Spring boot常用注解和作用
java·spring boot·后端