首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MD RAID扇区修复

MD RAID扇区修复
EN

Server Fault用户
提问于 2014-07-25 07:12:30
回答 2查看 2.4K关注 0票数 6

这篇文章声明RAID控制器对于不可恢复的读取错误很聪明,并尝试用组件驱动器的冗余重写这些扇区。如果扇区不好,磁盘的固件将透明地重新分配扇区。

Linux会做类似的事情吗?也许我的Google-Fu是坏的,但我找不到任何关于它的东西。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2020-03-22 14:11:58

简短的回答:镜像和基于奇偶校验的RAID布局支持修复一个坏扇区,在正常读取和擦洗期间,都是这样。然而,传统的RAID (基于硬件和软件)无法防止无声的数据损坏,这需要以数据校验和的形式(例如,由BTRFS和ZFS提供)进行更强的保护。

长答案:这个问题和提供的答案合并了关于磁盘、MDRAID和校验求和文件系统如何工作的不同概念。让我们逐个解释它们;无论如何,请考虑到确切的行为在某种程度上是固件和实现依赖的:

  • 第一道防线是磁盘自己的内部ECC:当某些位出错时,嵌入式ECC恢复启动,实时纠正受影响的错误。较低的ECC读取率通常不会导致扇区自动修复/重新分配;但是,如果ECC错误累积和增长,磁盘固件将最终在受影响扇区无法读取之前重新分配(这将被视为智能属性“重新分配甚至计数”)。一些企业磁盘定期读取所有扇区以及时发现有问题的扇区(参见SAS/SATA表面扫描)。
  • 如果扇区很少被读取,并且磁盘没有“看到”渐进式扇区数据损坏,则读取可能突然失败(“待定扇区”智能属性)并丢失受影响的数据。磁盘将向操作系统报告SATA读取错误并继续前进。如果使用RAID 1/5/6方案,则系统具有足够的冗余来重建丢失的数据,覆盖失败的扇区,并根据磁盘固件强制扇区重新分配。传统上,硬件RAID卡和MDRAID (Linux软件RAID)都以这种方式工作,依赖于HDD自己的重映射功能。较新的HW RAID卡和MDADM重新映射进一步提供了内部重映射列表,如果/当HDD无法重新映射受影响扇区时(即:因为没有可用的备用扇区);您可以在md手册页中阅读更多内容,特别是“恢复”部分。这显然意味着应该立即更换磁盘。为了避免太晚发现太多不可读扇区,所有RAID实现都支持一个“清空”o“巡逻读取”操作,在该操作中,定期读取整个数组来测试底层磁盘。
  • 上述保护方案仅当读写错误清楚地报告到RAID卡和/或操作系统时才有效。在无声数据损坏的情况下(即磁盘返回坏数据而不是明显错误),这种方法是无用的。为了保护自己免受无声数据损坏(根据定义,任何智能属性都不会报告),您需要额外的校验和来验证返回数据的正确性。这种附加的保护可以是基于硬件的(即: SAS T10扩展)、基于块设备的软件(即:dm-完整性)或完全集成的校验和文件系统(BTRFS和ZFS)。谈到ZFS和BTRFS,它们支持类似但不完全相同的“清除”操作(即只扫描实际分配的空间/数据)。

注: RAID6或3路RAID1布局理论上可以提供一些额外的保护,与RAID5和双向RAID1相比,使用某种形式的“多数票”。然而,由于它会带来巨大的性能影响,我从未在常见的实现中看到过这样的行为。有关更多详细信息,请参阅这里

票数 2
EN

Server Fault用户

发布于 2014-07-25 08:30:03

最严格意义上的linux无法做到这一点,但是dmraid (设备映射器,lvm的内核端)有一个糟糕的块重新映射模块。

当然,dm和md可以并行使用。在最流行的配置中,raid数组上有一个lvm卷组。这也可以用坏块映射器来扩展。

我必须注意:当前的硬盘控制器在固件中有这样一个坏块映射器功能。

大多数专业的系统管理员不处理有坏块的磁盘,但是他们在第一个问题发生后就把它扔掉了。他们用成本风险计算来解释这一点,但事实并非如此。事实是,他们只是懒惰。在大多数操作系统中(特别是在linux中)有非常好的块处理,您可以使用这样的硬盘而不用担心。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/615413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档