我的 16TB 驱动器开始出现故障。我ddrescue
将其中的前 12 TB 存储到我随身携带的 12 TB WD Elements 中,并拔掉原始驱动器的插头,直到有更多存储空间。今天,我购买了全新的 16TB 希捷 Exos,并用于将ddrescue
我已经复制到 12TB 廉价外部硬盘的数据复制到 16TB 新硬盘上,这样我就可以开始从原始 16TB 恢复到新的 16TB 了,已经完成了 3/4。
当我开始传输(从 12TB 到 16TB)时,我注意到 ddrescue 每次都会挂起几分钟,并且外部驱动器上的活动指示灯会熄灭,但内部驱动器上的活动指示灯会保持亮起。出于好奇,我打开了第二个终端窗口并输入了time sync
。花了3分钟。自从我尝试使用相同的闪存驱动器作为读写引导介质和交换介质以来,我还没有目睹过这种行为。
我能想到的唯一解释是驱动器正在占用多个分钟经常确认写入。尽管驱动器的顺序写入速度超过 200MB/s,并且在这些暂停之间达到该速度,但它们发生的ddrescue
频率足以使平均速度(计算方式为传输的总字节数除以总挂钟时间)低于 50MB /s。
这是一个全新的企业级驱动器,它正在进行持续的顺序写入。这就是硬盘的设计目的。为什么表现这么差?我也不能将其归咎于文件系统开销,因为我直接写入磁盘,而没有分区表的干扰。我想它可以
这是驱动器的错误还是内核的错误?如果是内核的问题,该如何修复?如果是驱动器的故障,我应该考虑 RMA 吗?
答案1
这是内核的错。可怜的内核试图缓存每一次写入,并且不得不时不时地刷新其缓冲区。我告诉ddrescue
对输出文件(-D
标志)使用直接写入,问题就消失了。