“坏块”进行的完整读/写表面扫描与内置的SMART Extended自检有何区别?
似乎它们都是全盘扫描,为什么要花badblocks -vws
3天的时间来测试1TB驱动器,而SMART却需要2 1/2小时(至少那是smartmon给我的时间估计)?
“坏块”进行的完整读/写表面扫描与内置的SMART Extended自检有何区别?
似乎它们都是全盘扫描,为什么要花badblocks -vws
3天的时间来测试1TB驱动器,而SMART却需要2 1/2小时(至少那是smartmon给我的时间估计)?
Answers:
SMART表面测试几乎可以肯定是一次读取,并且肯定是非破坏性的。如前所述,它也位于驱动器内部。除次要控制数据外,在测试过程中不会向主机传递任何数据。
另一方面,badblocks -w
在驱动器上进行四次传递,每次传递一次写入和一次读取。仅此一项就占了测试时间的8倍差异,加上旋转等待时间。由于它是在主机上运行的软件,因此所有数据都需要通过磁盘接口连接到RAM并由软件处理(在我们的示例中为坏块)。
如果我们将最坏情况下的旋转延迟设为1倍(磁盘在写入数据后需要旋转一整圈才能读取回去,这几乎就像您会看到坏块先填满整个块一样磁盘,然后全部读回,而不是一次只进行一次I / O物理跟踪(使用LBA几乎不可能),我们最终会遇到最坏的情况(1 + 1)×8×= 16×完成操作。16×2.5h = 40h,这当然与您的数字一致,并且仍然假设我们只处理驱动器上的数据存储,并且发生速度与驱动器可以支持顺序I / O一样快。
https://wiki.archlinux.org/index.php/badblocks#Comparisons_with_Other_Programs
需要注意的是,一些制造商的测试程序不能打印完整的测试结果,并且允许一定数量的坏扇区仅在通过或不通过时才说出来。但是,制造商程序通常比坏块要快,有时也要快很多。
因此,尽可能使用badblocks的破坏性彻底测试。
编辑:具有破坏性,我的意思是许多现代硬盘驱动器的年工作负载为180TB /年,也就是说,在12TB的高清硬盘上,如果要运行全套的坏块测试以进行测试,则您将承担96TB的工作负载。如果按工作负载,它们仅表示写入,则可能为48TB,可能是这种情况,但没有充分记录。
badblocks
“ last-block”“ first-block”参数并每天进行一些测试?