题 如何使用具有高重新分配扇区数的磁盘?


在全天候服务3年后,1T​​B Seagate Barracuda ES.2企业级硬盘出现故障迹象。聪明。重新分配的扇区数量很高。

维基百科 文章 建议如果重新映射的扇区未使用,驱动器仍可用于不太敏感的目的,例如阵列外的临时存储。

A workaround which will preserve drive speed at the expense of capacity 
is to create a disk partition over the region which contains remaps and 
instruct the operating system to not use that partition.

为了创建这样的分区,需要获取重新映射的扇区列表。但是,操作系统没有可见的坏块。即 badblocks 返回一个空列表。

有没有办法恢复重新分配的部门列表?

编辑: 此驱动器来自阵列。我们每年都有一些失败,只是将它们扔掉似乎是一种浪费。我想给第二次机会更好的部分拼盘。

以下是S.M.A.R.T.报告现在看起来。

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda ES.2
Device Model:     ST31000340NS
Serial Number:    **********
Firmware Version: SN05
...
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   056   054   044    Pre-fail  Always       -       164293299
  3 Spin_Up_Time            0x0003   099   099   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       14
  5 Reallocated_Sector_Ct   0x0033   005   005   036    Pre-fail  Always   FAILING_NOW 1955
  7 Seek_Error_Rate         0x000f   076   060   030    Pre-fail  Always       -       8677183434
  9 Power_On_Hours          0x0032   072   072   000    Old_age   Always       -       24893
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   037   020    Old_age   Always       -       14
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0
189 High_Fly_Writes         0x003a   097   097   000    Old_age   Always       -       3
190 Airflow_Temperature_Cel 0x0022   050   043   045    Old_age   Always   In_the_past 50 (0 6 50 32)
194 Temperature_Celsius     0x0022   050   057   000    Old_age   Always       -       50 (0 18 0 0)
195 Hardware_ECC_Recovered  0x001a   021   010   000    Old_age   Always       -       164293299
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       21
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       21
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0

7
2018-05-10 05:04




目前尚不清楚为什么你认为你需要做一些特别的事情。维基百科文章的摘录是关于如何保持驱动器速度。那是你想要做的吗?您对这些驱动器性能的问题是什么? - David Schwartz
谢谢。我没有多考虑性能。我的目的是继续使用驱动器。这是为了避免将来更有可能发生故障的部分驱动器,并避免应该发生的性能损失。有趣的是,也许可以通过测量读取或写入小扇区序列的时间来定位重新映射的区域。 - Dmitri Chubarov
不太可能,因为现代驱动器分配备件,因此性能影响通常不明显。你不需要做什么特别的事情。如果你想继续使用这些驱动器,可以在它们上面运行一些完整的读/写通道,以摆脱任何即将发生故障的部分并希望获得最佳效果。 - David Schwartz
使用具有高扇区重定位计数的驱动器的最佳方式是纸张量。其他任何事情都是虚假经济。 - John Gardeniers


答案:


你没有。

你去购买另一个磁盘来替换它,除非你真的想丢失数据。


15
2018-05-10 05:09



我只是这样说,因为5个坏扇区只有72小时的电量?这听起来不是一个好趋势。 - SpacemanSpiff
谢谢您的回复。磁盘上电时间为24893。它是一个来自阵列的磁盘。我们有一些扔掉它们似乎是浪费。我会更新问题以反映这一动机。 - Dmitri Chubarov
是的,我明白你的观点,但这是你的数据还是其他人的?让他们证明风险比的成本是合理的。 - SpacemanSpiff
一般来说,当我遇到坏道时,计划是这样的:如果它只有少数没有大问题,可能只是制造缺陷,一段时间后再次检查。如果它大约有4-10,则驱动器存在风险并且需要进行监控。如果它超过10,那么驱动器应该被移除并标记/销毁/清洁+返回,然后它会毁掉每个人的一天。 - Sašo
在更多地使用磁盘后,我看到固件只是在重新分配的扇区数很高时阻塞磁盘。恕我直言,从固件播放是脏的,但我无法改变其行为。详细报告发布如下。 - Dmitri Chubarov


我想感谢你的建议并分享我从实验中得到的一些细节。

简而言之,没有简单的方法来获得重新分配的扇区列表,甚至映射磁盘的统计方法也严重受到与固件逻辑相对抗的需要的阻碍。

为了测试我跑的驱动器 badblocks -wv 使用默认的blocksize并监视进程中重新分配的扇区数。我做了几个观察。

  1. 我发现写入磁盘开头时重新分配的扇区数量急剧增加。然后从第一个10G到700G没有变化。这可以通过以下事实来解释:某些RAID houskeeping数据存储在磁盘的开头,因此小地址区域的磨损高于磁盘的其余部分。

  2. 然后在一次错误后,磁盘变为阻塞模式。这就是每个ATA命令,甚至 IDENTIFY DRIVE 回 ABRT。尽管重新分配的部门的价值仍然是积极的。将此行为解释为 大卫施瓦茨 建议,我假设保留的扇区以某种方式分布在驱动器的地址空间。这意味着驱动器可能具有保留的扇区,但其中的一部分可能耗尽扇区以进行重映射。在这种情况下,固件只会阻止驱动器。

  3. 只有在对驱动器进行电源循环后,驱动器才会退出阻塞模式。当旧驱动器让软件跟踪坏块并避免使用它们时,现代驱动器不会提供这个机会。当固件认为它无法应对错误时,它会使驱动器无法使用。

  4. 通过将重新分配的扇区的值运行到02,我得出结论,此驱动器上有2048个保留扇区。

  5. 所谓的低级格式化,或者将零写入驱动器的每个可访问扇区以从磁盘的不太可靠的部分重新分配扇区将不起作用,因为当驱动器用完保留扇区时,它改变了它以某种方式处理错误的方式这使得它比传统的驱动器更不方便使用,传统驱动器不进行任何预测性故障分析,只是报告错误。


10
2018-05-11 18:51



那是非常棒的努力。 - SpacemanSpiff


如果您的业务数据的价值低于驱动器的成本,那么请使用它们,如果没有,则将它们丢弃,或者将它们提供给了解风险的部门的人员。联系制造商,看看他们是否提供回收。


3
2018-05-10 06:45





如果驱动器仍处于保修期内,您可以在首先进行消毒后通过其RMA流程将其退回给制造商,以免费更换。 (安全擦除将擦除整个驱动器,包括重新分配或其他无法访问的扇区。)(我很惊讶没有人建议这样做。)否则,你做@SpacemanSpiff所说的并购买新驱动器。


3
2017-08-26 00:49





实际上,增强的安全擦除效果更好,因为它也覆盖了保留的块。

但是:如果确实存在很多坏扇区,那么磁盘就是一个镇纸。同上,如果它不会重新分配它们或声明它们正常(当有读取问题时会发生待处理的扇区。大多数是“软”错误,通常是由外部振动引起的。)


1
2017-12-19 19:38





我有很多这样的驱动器,在改变起始位置之后使用制造工具,如果那是大多数坏扇区,那么驱动器容量需要5-10%。如果它是一个不错的控制器和软件,它将使用未分配的备件。我运行了WD 1800,降低到160 GB,连续5年没有问题,直到控制器被电源坏了。我目前正在使用三星类似的电视上限,删除100 GB的2 TB,传输流中的错误多于驱动器希望引入的错误,因此它暂时不是问题。

日立,三星和WD llf工具似乎在重新映射方面做得很好,不了解希捷,因为它们要么已经废弃,要么遭受了直接的灾难性故障。

*使用终极启动盘,现在做这些事情要容易得多。


1
2017-12-29 10:04



我发现了一个免费的实用程序,它声称自动进行分区以将坏块保留在未使用的空间中: dposoft.net/rbd.html 我会试试我的MAXTOR 500 GB,它在驱动器的开头有一个可见的坏块。希望它适用于像电影等不重要的东西。 - JustAMartin


如果你真的想冒险在这个磁盘上冒险(我不会),那就用吧 dd 将磁盘完全写入零。

dd if=/dev/zero of=/dev/sdX

这将导致驱动器重新分配挂起的扇区,并且磁盘的整个表面都可以使用。一阵子 ;-)


-1
2018-05-10 18:41