廉价存储服务器测试新硬盘的最佳方法


31

我想建立一个存储服务器并购买10 x 2TB WD RED's。在HDD's刚刚抵达。

你们有没有工具在将真实数据复制到磁盘上之前检查驱动器是否损坏或最好地防止婴儿死亡?

检查每个单个数据HDD还是ZFS raid-z2通过在其上复制大量数据来测试数组()更好?


1
我知道有一些特定于供应商的工具,例如“ WD Data LifeGuard Diagnostics”。但是我不知道这些家伙会怎么做,那就是要购买大量的硬盘。我怀疑他们检查每个硬盘驱动器(这需要很多时间..),所以我想知道是否有一种工具可以一次对所有硬盘执行完整的SMART测试?
s1lv3r 2013年

3
几乎所有写入驱动器的东西都可以用作测试;阵列中的一两次完整擦拭就足以捕获婴儿死亡率。当您购买的驱动器数量超过一对时,最好从不同的供应商/批次购买驱动器-大大减少了多个驱动器同时发生故障的可能性(由于类似的制造缺陷)。
克里斯S

Answers:


14

2个月前,我有同样的问题。发送失败的磁盘后,替换磁盘在3天后在我的NAS中失败。因此,我决定现在将新替代品投入生产之前对其进行测试。我不会仅在“翻新的”磁盘上测试我购买的每个新磁盘,我对此并不完全信任。

如果您决定要测试这些磁盘,我建议在全新的硬盘上运行badblocks扫描和扩展的SMART测试。

在2TB的磁盘上,这可能需要48个小时,badblock命令会在磁盘已满的情况下写入一个模式,然后再次读取这些块以查看该模式是否确实存在,并将使用4种不同的模式重复此操作。

由于这些天磁盘重新分配了坏块,因此该命令实际上可能不会在新磁盘上显示任何坏块。

因此,在此之前和之后,我进行了一次智能测试,并检查了重新分配的和当前未决的扇区数。如果其中任何一个出现故障,则您的磁盘已经有一些坏块,因此可能会变得不可信。

此后,我再次运行扩展的SMART测试。

您可能要先安装smartctl或smartmontools。

警告,badblocks -w标志将覆盖磁盘上的所有数据,如果您只想执行读取检查而不覆盖磁盘,请使用badblocks -vs /dev/sdX

sudo smartctl -a /dev/sdX
# record these numbers
sudo badblocks -wvs /dev/sdX
# let it run for 48 hours
sudo smartctl -a /dev/sdX
# compare numbers
sudo smartctl -t long /dev/sdX
# this might take another hour or 2, check results periodically with
sudo smartctl -a /dev/sdX

如果在此之后您的智能值还可以,那么我将信任该磁盘。

要了解每个智能价值的含义,您可以在这里开始寻找

http://en.wikipedia.org/wiki/自我监测,_Analysis,_and_Reporting_Technology


正如其他人所认为的那样,这可能做得很多,但是由于我只有10个磁盘,而且肯定不会做任何坏事,所以我只是按照您现在建议的方式检查所有磁盘。感谢您的全面答复。
s1lv3r 2013年

23

这些是新磁盘。他们要么失败要么就不会失败。使用ZFS文件系统已经向前迈出了一大步,这将使您对RAID和文件系统的运行状况有更深入的了解。

除了构建数组之外,我什么也不会做。这就是冗余的重点。您将无法使用其他列出的方法引发驱动器故障。


1
同意这一点-您正在构建一个数组。如果驱动器在开始放置数据时发生故障,则没关系,您将其更换并阵列自动修复。在使用驱动器之前测试它们是否有问题并不能使您正确了解它们是否会在现实生活中失败-现实生活中不喜欢测试!
阿什利2013年

1
我同意“现实生活中不喜欢测试”,但我也通过坏块发现了两个驱动器故障。如果我将它们全部都放入RAID 1、5或10的同一部分,我将失去整个RAID。
rjt

1
@rjt可能不是。坏扇区将被重新分配,并且驱动器可能不会同时发生故障。另外,并非所有驱动器故障都是介质或坏块导致的。如果驱动轴承磨损或出现故障怎么办?
ewwhite

可能不会就关键任务数据做出决定。Google硬盘研究表明,驱动器会在前90天或3年后磨损。badblocks有助于消除悬而未决的果实。
rjt

1
@rjt当然,您会“可能”做出有关关键任务数据的决定-如果不这样做,则无论您进行了多少测试,您都无法将数据存储在任何驱动器上。
voretaq7

10

您可以使用Bonnie ++进行测试。它可以完美地模拟文件服务器的行为模式。

例如:

# bonnie++ -u nobody -d /home/tmp -n 100:150000:200:100 -x 300

测试将以“ nobody”用户身份运行,并将在/ home / tmp下的100个自动创建的目录中创建/重写/删除100 * 1024个文件,每个文件200至150000字节。测试数量=300。您可以播放文件数/大小和测试重复次数。


9

我通常只是做一个完整的RAID初始化,并且在适用的情况下,在此期间开始填充文件系统,并且一直都知道由于死驱动器而导致问题。这样,我就不会浪费任何时间来进行某种不太可靠的测试,而且我会立即发现真正的弱驱动器。此后,由于“婴儿死亡率”而导致驱动器故障的可能性仍然较高,但是没有消除这种情况的实用方法。

实际上,在运行的第一年中,我在RAID中使用的最后几百个磁盘都没有出现任何问题。


8

我为一家每天进行这种测试的公司工作。是的,我们会测试购买的每个硬盘。我们的过程首先通过一个名为DOS的免费程序HDAT2运行驱动器。免费下载。它可以访问Windows环境无法访问的SMART和驱动器的其他功能。根据结果​​,我们将通过几种不同的专用硬件产品线之一来运行它们,但是在核心处,它们大多只运行SMART短自我测试,长期测试,安全擦除和全读来验证扇区。我的建议是对整个磁盘进行安全擦除,然后进行全读,然后进行SMART简短自检。此命令很重要,因为如果在测试开始时运行简短的自检程序可能找不到任何内容,但是在完全写入和读取光盘后,它可能会拾取某些东西。希望这可以帮助。


1
serverfault.com/a/501870/117546对我来说最有意义,但我不是专家。您的公司为什么要测试硬盘。我认为最有效的测试实际上是使用驱动器。
emory


3

如果您确实要测试,请使用badblocks写测试。它将数据模式写入磁盘,然后读取它们进行检查。在此期间,它将使您的磁盘有点压力。我认为,如果成功运行,则可以信任该磁盘。

但是我认为ZFS和良好的备份就足够了。

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.