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 / 问题 / 391922
Accepted
sa289
sa289
Asked: 2012-05-24 08:54:11 +0800 CST2012-05-24 08:54:11 +0800 CST 2012-05-24 08:54:11 +0800 CST

Linux mdadm 软件 RAID 6 - 它是否支持位损坏恢复?

  • 772

维基百科说:“RAID 2 是唯一的标准 RAID 级别,除了 RAID 6 的某些实现之外,RAID 6 可以自动从数据中的单位损坏中恢复准确的数据。”

有谁知道 Linux 中的 RAID 6 mdadm 实现是否是一种可以自动检测单位数据损坏并从中恢复的实现。如果 CentOS / Red Hat 6 与其他版本不同,则这适用于 CentOS / Red Hat 6。我尝试在线搜索,但运气不佳。

SATA 错误率为 1 分之 1E14 位,而 2TB SATA 磁盘包含 1.6E13 位,这与防止数据损坏特别相关。

编辑 2015 年 6 月 17 日

我相信这不像我最初想的那样令人担忧 - 请参阅硬盘/SSD - 错误的检测和处理 - 是否可靠地防止了静默数据损坏?更多细节

linux mdadm software-raid raid6
  • 4 4 个回答
  • 6345 Views

4 个回答

  • Voted
  1. Best Answer
    chutz
    2012-05-24T09:23:17+08:002012-05-24T09:23:17+08:00

    Linux 软件 RAID 不会保护您免受位损坏,静默数据损坏是它的一个众所周知的问题。事实上,如果内核能够从一个磁盘读取数据,它永远不会知道它是坏的。RAID 只有在读取数据时出现 I/O 错误时才会启动。

    如果您担心数据完整性,您应该考虑使用像Btrfs或ZFS这样的文件系统,它们通过存储和验证校验和来确保数据完整性。这些文件系统还负责 RAID 功能,因此如果您采用这种方式,则不需要内核软件 raid。

    • 16
  2. vy32
    2012-12-01T14:31:15+08:002012-12-01T14:31:15+08:00

    如果您验证整个驱动器的奇偶校验,RAID5 和 RAID6 可以检测并通常纠正位损坏。这称为“清理”或“奇偶校验”,在大多数生产 RAID 系统上通常需要 24-48 小时。在此期间,性能可能会显着下降。(有些系统允许操作员将清理优先于读/写访问或低于它。)RAID6 有更高的机会纠正它,因为如果你有两个驱动器故障它可以纠正它,而 RAID5 只能处理 1 个驱动器故障,并且由于活动增加,在擦洗时更有可能发生驱动器故障。

    • 3
  3. Cafe Hunk
    2018-06-05T01:15:12+08:002018-06-05T01:15:12+08:00

    以上所有关于 RAID 6 功能的答案都是不正确的。RAID 6 算法像 RAID 5 一样逐字节运行,如果任何一个驱动器上的单个字节损坏,即使驱动器没有指示错误,它也可以被检测并纠正。这样做的算法在

    https://mirrors.edge.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf

    为了执行此检查,奇偶校验 P 和 Q 驱动器也必须与数据驱动器一起读取。如果计算出的奇偶校验 P' 和 Q' 不同且没有驱动器错误,则分析可以查明哪个驱动器不正确,并更正数据。

    此外,如果驱动器标识指向一个不存在的驱动器(例如,如果只有 15 个驱动器,则为驱动器 137),则不止一个驱动器正在为该字节提供损坏的数据,从而发出无法纠正的错误信号。当集合中的驱动器少于 256 个时,每个字节检测到的概率很高,并且由于块中有很多字节,每个块的概率极高。如果 RAID 块中的所有字节的驱动器标识不一致,那么,不止一个驱动器提供损坏的数据,通常人们可能会拒绝这种情况,但只要所有驱动器标识都有效,该块就不一定需要被拒绝。

    执行此校正需要比通常的验证时间更长的时间,但只需在校正子(P 和 Q)计算显示错误时执行。

    尽管如此,我还没有检查 mdadm 代码以确定是否处理了单字节损坏。我知道 mdadm 在每月扫描时报告 RAID6 综合症错误,但从错误消息中不清楚它们是否正在更正 - 它不会停止驱动器阵列,也不会在消息中识别任何特定驱动器。

    • 3
  4. sbingner
    2016-03-20T22:03:31+08:002016-03-20T22:03:31+08:00

    我会把它添加为评论,但我没有足够的声誉;我想澄清一下:RAID5 可以检测到位损坏,但它不知道哪个驱动器有损坏而没有读取错误。因此,如果没有读取错误,清理无法修复此问题 - 它很可能只是记录它并更新奇偶校验位以匹配。RAID6 的算法是位置相关的,因此它可以检测到哪个驱动器包含错误并纠正位损坏。

    • 2

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

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

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

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +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