AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 100301
Accepted
Chad
Chad
Asked: 2010-01-07 17:15:38 +0800 CST2010-01-07 17:15:38 +0800 CST 2010-01-07 17:15:38 +0800 CST

RAID 如何检测故障硬盘?

  • 772

在过去的 3 天里,我一直在查看 Raid 级别。并且一直在权衡突袭控制器硬件/软件的利弊。我知道 RAID 不是一种备份解决方案,我对此非常满意,尽管仍然存在一个问题。

RAID 控制器,甚至是 Raid 1 到 Raid 6 是如何实际检测到硬盘驱动器发生故障的。我所做的研究表明,大多数常见的硬盘驱动器制造商在其硬盘驱动器设计中使用 ECC,以防止 3 位范围内的 1 位故障。

尽管在考虑这一点时,假设您有 Raid (1) 和两个相同的硬盘驱动器。假设从驱动器 0 读取数据,同时从驱动器 1 读取数据。虽然驱动器 1 向 Raid 控制器报告 ECC 读取失败。

现在这是一个大问题,对于硬件raid,Raid 控制器会做什么?它从硬盘收到读取失败的信号。它可以报告硬盘驱动器故障并需要更换。

Raid 控制器是否会寻找不同的硬盘驱动器获取数据,直到从驱动器成功读取。(是的,驱动器可以报告读取正确并且数据仍然可能损坏,并且 RAID 不会在读取时检查极性或 ECC)

raid raid5 raid1
  • 4 4 个回答
  • 5734 Views

4 个回答

  • Voted
  1. Best Answer
    David Mackintosh
    2010-01-07T19:30:34+08:002010-01-07T19:30:34+08:00

    我问过一位正在给我们演讲的 NetApp 工程师这个问题。他的回答或多或少是:

    没有人在读取时读取校验和。毫无意义。读取校验和意味着您必须读取整个切片加上校验和,然后计算校验和以验证您拥有正确的数据。如果您正在运行 RAID-6 或其他什么,请加上正交校验和。它是一个全面的性能杀手,因为它破坏了同时随机寻找不同磁盘上完全不同扇区的能力。同样,在 RAID-1 中几乎没有人读取镜像的两侧,因为如果您只读取一侧,您可以交替读取镜像的哪一侧,从而获得更快的吞吐量,如果您突然出现不匹配,您认为哪个磁盘正确,哪个磁盘损坏?所有现代 RAID 系统都依赖于磁盘控制器向 RAID 控制器发出信号,表明它们处于困境中(通过 SMART 等),此时磁盘几乎总是被踢出阵列。校验和用于重建数组,而不是用于读取验证。

    • 10
  2. Zypher
    2010-01-07T17:18:28+08:002010-01-07T17:18:28+08:00

    这个问题的答案很大程度上取决于 RAID 控制器制造商以及他们如何实现错误/故障驱动器检测。

    • 2
  3. Evan Anderson
    2010-01-07T17:22:55+08:002010-01-07T17:22:55+08:00

    RAID 实现可以通过多种方法评估磁盘的“健康状况”(SMART、SCSI“检查条件”和“Sense Key”消息),但我不知道任何已发布的关于 RAID 实现方式的“标准”应该对这些方法采取行动。每个制造商和型号的 RAID 控制器固件(或就此而言,操作系统中的软件 RAID 实现)使用的具体步骤将根据制造商的设计而有所不同。

    如今,所有硬盘驱动器都使用纠错码 (ECC)。在数据密度上,我们处理误码只是生活中的事实。不可恢复的读取错误对 RAID 控制器很重要。在您感兴趣的级别上,您必须了解 RAID 控制器和驱动器固件的设计规范,才能真正了解如何将设备堆栈上的媒体错误报告给操作系统,并最终报告给用户。

    • 1
  4. Bart Silverstrim
    2010-01-07T17:30:54+08:002010-01-07T17:30:54+08:00

    实施完全取决于制造商。他们可以使用任何工具组合......计算写入驱动器时的数据奇偶校验,如果它是错误的,它会标记一个可能的问题,如果有板载 SMART 状态,它可以观察硬盘状态,直接从驱动器读取错误,查看特定驱动器是否存在多个错误等问题...

    我有一个不知道驱动器存在问题的控制器。我们有一个三驱动器 RAID 5,其中一个磁盘完全失败。安装了一个新驱动器,并且在重建其中一个好磁盘的过程中出现了一个不可恢复的读取错误,随着驱动器变得越来越大并且制造商在制造过程中允许一定数量的这些驱动器,这个问题越来越多。最终结果?从裸机备份重建。因此,当您询问控制器如何“知道”驱动器坏了时,它不一定知道。

    换句话说,RAID 控制器尽其所能。他们仍然失败。

    最终结果是 RAID 控制器通常通过从软件中提取工作来简化您的设置,它们将处理能力卸载到专用硬件,并且它们(通常)添加了一些更好的支持来告诉最终用户哪个驱动器是坏的(通过软件工具和/或闪烁的灯光),因此您不必猜测哪个是坏的。

    软件 RAID 与操作系统集成,它便宜得多,而且现在几乎一样可靠(如果您特别是在谈论 Linux)并且几乎一样快速(在某些情况下,速度更快)。与许多控制器不同,它也不需要特殊的驱动程序。如果您使用高端卡,它的性能可能会更好,但对于大多数家庭级 RAID,它们的速度往往相当。

    如果您谈论的是主板 RAID,它并不是真正的 RAID。这是一个糟糕的软件 RAID 版本,如果你的主板出现问题,它几乎不可能恢复数据,因为它们通常是特定于供应商的,它们如何处理驱动器上的数据。我曾经遇到过系统出现故障并且您无法将驱动器从阵列转移到另一个系统以从中恢复数据的情况。

    总体而言,除非您正在谈论企业中的服务器 RAID 或有真正的特殊需求,否则软件 RAID 可能与硬件 RAID 相当,90% 的家庭用户会使用它。

    • 0

相关问题

  • Windows 文件服务器性能调优

  • SSD TRIM 的硬件 RAID 控制器支持

  • 了解磁盘队列长度

  • 使用混合磁盘突袭 0?

  • Windows Server 2008 Hyper-V 虚拟化服务器的最佳 RAID 配置?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve