最近各大官方账号带火了一个梗:
“主线任务-夺回秋雅”
一时间大家满脸问号
秋雅是谁?
为何要夺回?
连国外的网友都热议起来
秋雅是《夏洛特烦恼》中的女神
磁带存储技术也有自己的“秋雅”
本篇文章就看看
LTFS文件系统怎么夺回"秋雅"
《磁带存储技术专题》前情回顾:
在LTO第一代到第四代,如果我们想要访问LTO磁带的内容,都需要厂商提供的特殊软件来支持,软件需要全部加在整个磁带的内容,才能展示你要查找的文件,保存文件的过程也需要特有的软件来处理。提供的磁带存储的厂商还有多个这就导致用户在使用磁带过程中,非常的痛苦地面对来回之间复杂的搬运场景。
为了解决这个问题,IBM和HP最先开始这方面的研究,推出了线性磁带文件系统 (LTFS-Linear Tape File System)。最开始在2010,从第五代LTO5使用,并在2012年由IBM主推进入SNIA协会开放规范。
目前LTFS已经成为一种开放文件系统规范标准,最新是2021年发布的LTFS V2.5.1版本。
拥有了LTFS后,对LTO磁带意味着什么?带来了哪些好处呢?
随着 LTFS 的引入,LTO 磁带在系统中显示为一个设备,允许用户将文件拖放到磁带和从磁带拖放文件。简而言之,它允许LTO驱动器接口像普通硬盘驱动器一样工作。这消除了对任何特殊软件的需求,并使用户保存和复制文件更加直观。它还具有使LTO驱动器与所有主要操作系统兼容的额外优势。
因为LTFS是self-describing自描述特性,使得数据管理的复杂度降低了很多。LTFS还简化了跨工作流的数据交换,实现统一的文件共享,不依赖硬件和软件平台,这样会让数据恢复变得更加的容易。因为在传统磁带的数据恢复过程,必须要要求使用数据写入时刻使用的特定软件,而这些特定软件存在系统不兼容或者不更新的问题,使得数据修复变得异常困难。
此外,传统磁带中,如果我们需要访问数据,还需要把数据转移拷贝到硬盘再从系统中访问,在LTFS LTO磁带中,我们只需要直接访问磁带即可,变的是一种很简单的的操作。
既然LTFS这么多的优势,那么,LTFS到底是怎么实现的呢?
LTFS 使用 LTO 第 5、6、7 、 8、9 代提供的分区功能。通过使用分区,磁带被分成两个分区,分别存储index和数据(类似于FAT32文件系统,大家可以感兴趣可以参考之前发布的FAT32文件系统的介绍文章:)
- 第一个分区partion0:比较小,保存索引index,其中包括文件系统信息和元数据,这些元数据提供有关第二个分区数据块中包含的文件的详细信息(例如名称,大小,创建日期,扩展属性以及哪些数据块属于哪个文件的映射,相当于一个数据存储映射表)。将 LTFS 磁带插入驱动器时,软件可以读取第一个分区并快速显示磁带的内容。
- 第二个分区partion1:空间很大,为数据存储空间,也就是实际的数据的存储最终归宿。有一点需要注意:在数据分区中,磁带内容仍然通过数据块和文件标记格式进行存储,只是分区信息对外解释为LTFS文件系统,并不是对物理磁带的存储技术本质改变,只是让磁带更加的容易使用。
对比 LTFS 出现之前存在的一些弊端,从LTFS出现后就改变了:
- 磁带仅按照顺序记录数据块和文件标记,没有用于查找特定文件的目录,所有的映射关系(哪些块属于哪些文件的映射)都是由外部应用程序(如备份和归档存储管理软件)维护和管理。如果映射关系丢失,磁带上的数据虽然还在,但是很难被识别和使用了。这个也是LTFS文件系统提供的最大好处。
- 由于磁带的串行性质,没有固有的“就地”更新功能。如果重写了某个块,则所有后续块也必须重写。在磁带的当前端更新文件标记是不切实际的,因为每次添加数据时,文件标记都会移动到新的物理位置。但是对于 LTFS,磁带没有这种限制,可以根据需要修改索引分区,而不会影响数据分区。
在LTFS文件规范文档中,定义了数据存储的格式,下面是一个完整的LTFS文件格式示例:
针对上图有一些关键的信息点,小编总结如下:
- 如上文提到,一个完整的LTFS逻辑卷包括两个分区:Index Partition和Data Partition。
- 每个分区包括Lable Construct标记结构和Content Area内容区域。其中,Lable Construct标记结构由VOL1 Lable逻辑卷标记和LTFS Lable文件标记组成,中间有File Mark间隔。Content Area内容区域则包含index索引和后续的连续数据块组成,中间也有File Mark间隔。
上面说了这么多LTFS的好处和实现原理,还有一个很容易让人误解的地方,需要提醒下。
基于前面的信息,你会不会觉得LTO磁带+LTFS就可以真的像HDD硬盘一样使用了?其实不然,这个也是最容易误解的地方。
HDD硬盘或者叫做磁盘,是随机访问的介质;而磁带不是,在数据分区内部还是要求顺序写入的数据。如果在LTO磁盘格式化成LTFS文件系统后,如果直接当作HDD磁盘执行随机访问,可能会出现IO严重慢的情况。
整体来说,LTFS 是一项重大突破,可以让磁带像磁盘一样使用方便,这里重点是“像”,但它并不能取代磁盘读写能力和介质特性。客观对待就好!
最后,如果大家想了解LTFS文件系统的代码,可以参考开源的github链接https://github.com/LinearTapeFileSystem/ltfs
根据github的开源内容,有条件的话还可以动手尝试:
采用ltfs -o device_list命令,可以查看磁带的LTFS文件系统格式化后盘符,类似下图示例,看到三个磁带的字符设备:/dev/sg43, /dev/sg38, /dev/sg37,LTFS文件系统的版本是2.4.0
使用# mkltfs -d 9A700L0077命令可以执行磁带的格式化,
格式化完整后,还可以使用ltfs -o devname=9A700L0077 /ltfs完成文件目录的挂载。这些操作跟linux系统下其他的文件系统操作方式也类似,只是命令不同。