有没有好的驾驶折磨测试工具?


17

最近,我一直在奇怪和罕见的文件系统损坏,我怀疑这是我的SSD的故障。我正在寻找一个好的驾驶折磨测试工具。可以写入整个磁盘的东西,然后返回并读取它,以查找快速写入,损坏的块,恢复为较旧版本的块以及其他错误。这将远不止badblocks于此。有这样的工具吗?

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


1
你试过了吗?iozone.org
正子

1
顺便说一句,您没有指出要使用的操作系统/系统硬件。据报道,在某些Mac OS X装箱机中,当配置SSD经常关闭硬盘电源以节省电源时,SSD会遇到您正在谈论的损坏。这将导致腐败。我想如果驱动器由于发布给SSD的硬盘掉电而被迫进入睡眠状态,那么在其他OS /硬件组合中也可能会出现同样的情况。在通过驱动器测试烧毁SSD之前,我会检查系统的配置。
Wing Tang Wong

1
@WingTangWong,哇。我已经准备好许多SSD断电时会搞砸,但是何时要求入睡?那是一辆越野车。我会密切注意这一点。我正在使用Linux,除了让我挂起系统外,
别让

Answers:


10

可能有些大材小用,但是这里有Phoronix测试套件。还有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

我不会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 

磁盘运行状况/维护工具

在我工作的以下两个工具中,我们取得了成功。HDAT2Spinrite。后者是一种商业工具,而前者HDAT2是一个开源项目。

这是HDAT2的几个屏幕截图:

SS#1 HDAT2

SS#2 HDAT2

您必须将系统重新引导到这两个系统中,以便在执行这些操作时它可以脱机,但是它们都恢复了发生故障或开始出现故障的驱动器。HDAT2中的UI导航有些困难,我们通常在大多数情况下使用默认选项,并尽量不要离它太远。


您提到的前三个是性能基准。已经检查了SMART状态,它的状态良好,没有坏扇区,因此看起来HDAT2也不是我想要的。
psusi

我不会拒绝HDAT2,我们正在运行chkdsks,它们也很干净,但是磁盘仍然无法启动,运行HDAT2能够发现磁盘的表面问题,它能够修复得足以使驱动器可启动。
slm

最近的评论,但我试图找到HDAT2的源代码,但没有成功。最近是否有许可更改?
i336_

4

bonnie ++浮现在脑海:

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

bonnie++ -d /path/to/mounted/ssd -r your-system-ram-size-in-MB

例:

# For a 32GB system with the SSD formatted and mounted at /mnt/mounted-ssd-001
bonnie++ -d /mnt/mounted-ssd-001 -r 32000

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

请注意,使用SSD时,如果发生坏块,驱动器硬件可能会自动重新映射它,具体取决于您使用的驱动器。此外,酷刑测试会消耗掉SSD的写入寿命。因此,请自行决定使用。

编辑:

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

  • 廉价SSD只是因为它们没有剩余容量来重新映射而失败,或者因为它们没有办法分离出故障的闪存块。他们只会挂或脱机,而不会重新联机。
  • 没有备用容量的中型SSD可能会在检测到故障块时生成Smartd警报,甚至生成OS级别的块设备错误。但是,发生故障时,SSD的注册大小将发生变化。这可能会导致错误并使操作系统使设备脱机,或者可能导致设备本身挂起并需要拉出并重新插入以使其再次被识别。重新注册时,设备的可用块大小将减小。
  • 具有备用容量的高端固态硬盘将在后台重新映射坏块,并可能生成操作系统级别的警报/警告。当备用容量用完时,设备可能会沿着中型SSD发生故障。

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

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

除非考虑到压力测试和错误记录工具是专门为SSD设计的,否则您将耗尽设备的使用寿命。

编辑:

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

另外,如果驱动器支持,则可以增加为处理错误而保留的空间:

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


这是一个性能基准。它可以使驱动器锻炼,但我认为它不会检测到错误。
psusi 2013年

根据SSD的型号/型号,SSD的工作方式会以几种形式中的一种进行检测:Smartd错误(如果重新映射块并使用了备用容量(无故障)),则设备的容量为由于闪存的一部分故障而减少(可能导致智能错误,可能导致文件系统错误,可能导致设备通过脱机挂起总线。在拉/重新插入时,驱动器再次可用,但可能需要重新格式化) ),并且SSD完全可以挂起而没有重新映射(即使重新插入后设备也无响应)。失败的路径并不等同于高清
Wing Tang Wong

1
驱动器未检测到错误,因此需要测试工具。它通过重新挂载文件系统以及e2fsck查找并修复元数据中的许多错误来体现。另外,我的一些git仓库包文件已损坏。这是一个无声的腐败,可能每月或每两个月发生一次。起初我认为这可能是涉及TRIM的错误,因为在启用它之前我不记得发生过这种情况,因此我将其关闭并仍在发生。
psusi

有两个潜在的问题:驱动器电缆损坏或驱动器损坏。您可以通过将驱动器电缆换成另一根来测试坏的驱动器电缆。我以前曾遇到过这种情况,现在用更好规格的电缆代替了。如果驱动器损坏,请RMA或送修保修。
Wing Tang Wong

1
问题是证明它是一个错误的驱动器(或者实际上是固件中的错误),而不是内核中的错误。如果电缆质量不好,它将显示为sata ecc错误,而不是随机的无声损坏。
psusi

3

我知道这已经使用了一年多,但是为了以后阅读该线程的任何人的利益,我希望您需要的软件(d)在HP Labs之外尚不存在:

“了解电源故障下固态硬盘的坚固性” https://www.usenix.org/system/files/conference/fast13/fast13-final80.pdf

用选择的事件代替电源故障注入(如果检测到间歇性的固件错误,则不进行任何操作),并且看来该软件可以检测到它。不幸的是,我认为没有其他选择,否则惠普可能不会在内部编写任何东西。

很遗憾,因为我还需要类似的东西来证明虚拟环境中的问题。我怀疑已提交的写入实际上尚未进入物理磁盘。能够像这样对存储堆栈进行压力测试,而不仅仅是对SSD进行压力测试,将是很棒的。我还没有找到合适的东西。


2
(来自匿名评论)虽然需要复制硬件方面的内容,但我认为没有理由无法使用带触发器的客户端/服务器模式下的fio复制该文件的软件验证部分。有关详细信息,请参见github.com/axboe/fio/blob/master/HOWTO(10.0验证和触发器)。可以使fio以各种有用的模式使用无缓冲或定期同步I / O,这些模式以后可以进行验证(甚至可以保存状态文件,以便可以在不同的fio调用之后进行验证)。
Archemar

1

使用制造商测试工具,这是测试HD的最佳方法,因为它可以访问低级别测试,重新映射坏扇区,测试所有智能运行状况(特别是对于SSD,对于我们大多数人来说,许多寄存器都是未知的但可以帮助制造商查看硬盘状态)

hirensCD有许多测试工具,但我认为它尚未更新为启用SSD的工具,因此请直接检查制造商的网站。有些确实支持linux,有些则可能需要Windows liveCD(再次检查hirenCd)或从笔式驱动器启动(freedos,特殊OS等)。

大多数旧版HD工具都不适合测试SSD,因为一个扇区永远不会位于同一位置,而是由固件动态映射的,从而将写入内容分散到整个驱动器上。因此,如果他们确实进行测试,则您只是在烧写周期,而不是真正地测试磁盘。

读测试不会烧坏SSD,但也可能不会真正测试所有SSD扇区,这同样是由于固件隐藏了实际布局。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.