有没有好的驱动酷刑测试工具?

psu*_*usi 22 disk

我最近一直有奇怪和罕见的文件系统损坏,我怀疑是我的 SSD 的错。我正在寻找一个好的驱动器酷刑测试工具。可以写入整个磁盘的东西,然后返回并读取它以查找快速写入、损坏的块、恢复到旧版本的块和其他错误。这将远远超过什么badblocks。有这样的工具吗?

注意我不是在寻找性能基准并且已经检查了 SMART 状态;说健康,没有坏块报告。

slm*_*slm 12

可能有点矫枉过正,但有Phoronix Test Suite。还有bonnie++,以及hdparm

我通常使用hdparm,例如:

% hdparm -Tt /dev/hdb
/dev/hdb:
 Timing buffer-cache reads:   128 MB in  1.25 seconds =102.40 MB/sec
 Timing buffered disk reads:  64 MB in 16.70 seconds =  3.83 MB/sec
Run Code Online (Sandbox Code Playgroud)

我不会称之为hdparm折磨测试,但它确实让您大致了解驱动器的整体性能。

确定驱动器运行状况

折磨驱动器后,您可以使用此命令检查驱动器的总体健康状况:

% sudo udisks --dump | grep -A 24 Updates
 Attribute       Current|Worst|Threshold  Status   Value       Type     Updates
===============================================================================
 raw-read-error-rate         103| 99| 34   good    5854752     Pre-fail Online 
 spin-up-time                100| 99|  0    n/a    0           Pre-fail Online 
 start-stop-count             98| 98| 20   good    2785        Old-age  Online 
 reallocated-sector-count    100|100| 36   good    0 sectors   Pre-fail Online 
 seek-error-rate              72| 60| 30   good    25872884688 Pre-fail Online 
 power-on-hours               89| 89|  0    n/a    424.4 days  Old-age  Online 
 spin-retry-count            100|100| 97   good    0           Pre-fail Online 
 power-cycle-count            98| 98| 20   good    2753        Old-age  Online 
 attribute-184               100|100| 99   good    0           Old-age  Online 
 reported-uncorrect          100|100|  0    n/a    0 sectors   Old-age  Online 
 attribute-188               100| 96|  0    n/a    0           Old-age  Online 
 high-fly-writes             100|100|  0    n/a    0           Old-age  Online 
 airflow-temperature-celsius  58| 42| 45 FAIL_PAST 42C / 108F  Old-age  Online 
 g-sense-error-rate          100|100|  0    n/a    124         Old-age  Online 
 power-off-retract-count     100|100|  0    n/a    15          Old-age  Online 
 load-cycle-count              1|  1|  0    n/a    248327      Old-age  Online 
 temperature-celsius-2        42| 58|  0    n/a    42C / 108F  Old-age  Online 
 hardware-ecc-recovered       45| 38|  0    n/a    5854752     Old-age  Online 
 reallocated-event-count      89| 89| 30   good    14877766723263 Pre-fail Online 
 current-pending-sector      100|100|  0    n/a    0 sectors   Old-age  Online 
 offline-uncorrectable       100|100|  0    n/a    0 sectors   Old-age  Offline
 udma-crc-error-count        200|200|  0    n/a    0           Old-age  Online 
 attribute-254               100|100|  0    n/a    0           Old-age  Online 
Run Code Online (Sandbox Code Playgroud)

磁盘健康/维护工具

我们使用我工作的以下 2 个工具取得了很好的成功。HDAT2Spinrite。后者是一个商业工具,而前者 HDAT2 是一个开源项目。

以下是 HDAT2 的几个屏幕截图:

ss #1 HDAT2

ss #2 HDAT2

您必须将系统重新启动到这两个,以便在您执行这些操作时它处于脱机状态,但它们都已恢复发生故障或开始出现故障的驱动器。HDAT2 中的 UI 导航有点粗糙,我们通常在大多数情况下使用默认选项,并尽量不要在那里徘徊太远。


Win*_*ong 6

bonnie++ 浮现在脑海中:

因此,取决于您的盒子的硬件配置:

bonnie++ -d /path/to/mounted/ssd -r your-system-ram-size-in-MB
Run Code Online (Sandbox Code Playgroud)

例子:

# For a 32GB system with the SSD formatted and mounted at /mnt/mounted-ssd-001
bonnie++ -d /mnt/mounted-ssd-001 -r 32000
Run Code Online (Sandbox Code Playgroud)

它应该给你的设备一个很好的压力测试。您也可以自定义它。

请注意,对于 SSD,当发生坏块时,驱动器硬件可能会自动重新映射它,具体取决于您使用的驱动器。此外,折磨测试会侵蚀 SSD 的写入寿命。因此,请自行决定使用。

编辑:

添加关于 SSD 故障的注释,因为有人指出 Bonnie++ 压力测试,但不跟踪错误。SSD“重新映射坏块”的方式与硬盘驱动器重新映射的方式不同。它如何进行完全取决于您拥有的 SSD 品牌/品牌/型号:

  • 便宜的 SSD 会失败,因为它们没有可重新映射的备用容量,或者因为它们无法隔离出现故障的闪存块。他们只会挂机或离线,不会重新上线。
  • 没有备用容量的中端 SSD 可能会在检测到故障块时生成 Smartd 警报,甚至可能生成操作系统级块设备错误。但是,当发生故障时,SSD 的注册大小会发生变化。这可能会导致错误和设备被操作系统脱机,或者可能导致设备本身挂起并需要拉出并重新插入才能再次识别。重新注册时,设备的可用块大小将减少。
  • 具有备用容量的高端 SSD 将在幕后重新映射坏块,并可能生成操作系统级别的警报/警告。当备用容量用完时,设备可能会像中端 SSD 那样出现故障。

当 SSD 由于坏块被隔离而自行调整大小时,如果驱动器的固件没有自动执行正确的更新,您可能需要执行以下操作来恢复驱动器:

http://communities.intel.com/message/145676

除非压力测试和错误日志工具是专门为 SSD 设计的,否则您只是在耗尽设备的使用寿命。

编辑:

根据上述答案中的信息,建议用更好的电缆更换电缆或更换驱动器(RMA/保修更换),因为这种操作系统文件系统级别错误是不正常的。

此外,如果您的驱动器支持它,您可以增加为处理错误保留的空间量:

http://www.thomas-krenn.com/en/wiki/SSD_Over-provisioning_using_hdparm