据我所知,LTO磁带以“包装”的形式写入数据,其中第一个包装将磁带解压到驱动器中,而第二个包装则将其卷轴放回墨盒中。这个过程被重复了很多次,这个想法是,一旦磁带的结束,所有的磁带将回到盒,它可以弹出,很少回绕。
然而,我注意到当你到达磁带的末尾时,听起来它好像是在最后一卷的一半左右,所以驱动器在弹出磁带之前花了一段时间回绕磁带,尽管它报告说已经达到了磁带的末尾。
这是因为磁带上有一些保留的容量,允许重写失败的块或跳过磁带的坏部分而不降低总容量吗?或者还有什么其他的原因导致这段录像的提前完成?
发布于 2017-07-15 11:50:46
如果您的驱动器是新的,磁带是好的质量,您可以期望能够写更多的字节磁带比官方的容量。从某种意义上说,你可以称之为闲置产能,但它并不是未使用的。
当你的驱动器头磨损,容量将减少。如果你把它和质量不太好的磁带结合起来,容量可能会进一步下降。
因为容量是这样变化的,所以需要有某种方式向备份应用程序发出信号,说明您没有能力。如果备份应用程序到达磁带的末尾,而且没有准备好,那么备份应用程序就会出现问题。对于应用程序来说,使用一些预先警告更好,这样它就可以使用剩余的空间来结束它正在做的事情。
如果您的操作系统恰好是Linux,那么当您到达磁带的最后一部分时,所有其他write系统调用都将在ENOSPC上失败。如果您的备份应用程序不知道这个特性,它将把第一个ENOSPC作为结束,并且磁带上会留下一些未使用的空间。
我可以想象类似的事情也会发生在其他操作系统上。
发布于 2017-07-22 23:43:47
多亏了@kasperd,我做了一些进一步的调查,这确实是问题所在。这个特性被称为EWEOM (媒体的早期预警结束),它是指磁带制造商放置在磁带上的一个标记,所以它不是记录磁带被假脱机量的驱动器。
我为用于写入磁带的mbuffer程序编写了一个修补程序,当然,当我到达磁带的末尾时,我会在交替的write()调用中得到ENOSPC错误,但我可以继续编写更多的数据。在我的例子中,有相当多的数据--在8到19 GiB之间--这取决于对不能压缩的数据的压缩。
有趣的是,到达EWEOM标记后,磁带写入速度急剧下降。它几乎减半,从80 to /秒下降到大约47 to/秒。这似乎不是一个数据问题,因为驱动器在此之前的几个小时内一直保持着80‘t/秒的速度。您可以听到驱动电机以较慢的速度运行,并且重写整个磁带,因此本节重写不会提高速度(因此,这不是第一次写入速度较慢的情况,就像新磁带开始时的情况一样)。
我找不到任何关于EWEOM标记何时应该出现在磁带上的文档,所以我不确定它是否标准化。我所能找到的只是一个模糊的参考LTO-6/7驱动器,这增加到5%的磁带空间,这似乎是很多。也许这是为了允许大缓冲区被冲洗,因为磁带的高写入速度。
就Linux而言,相关行在st.c SCSI磁带驱动程序源代码中,对这种行为的解释在st司机文件中。
https://serverfault.com/questions/862310
复制相似问题