简介
本文档介绍不同类型的磁盘错误、如何对其进行分类,以及可用于识别这些错误的工具。
先决条件
要求
本文档没有任何特定的要求。
使用的组件
本文档中的信息基于统一计算系统(UCS)中的硬盘。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
背景信息
本文档还概述了硬盘驱动器(HDD)和独立磁盘冗余阵列(RAID)控制器在识别驱动器上的介质错误时的角色。
注意:介质错误也称为介质错误
处理HDD中等错误
什么原因导致HDD介质错误?
造成介质错误的最常见原因是信号幅度过低,导致
- 不可靠逻辑总线地址(LBA)读取位置。有时可通过多次重试恢复。
- 瞬态条件下,由软粒子引起的高飞度写入。
- 临时冲击、振动或声音事件导致的临时瞬态情况,导致偏离轨迹写入。
- HDD制造中的差错映射功能导致当前主要缺陷位置的填充。
HDD如何检测介质错误?
步骤1.HDD定期执行后台媒体扫描以检测错误。
第二步:HDD尝试从介质读取,由于某种原因,无法检索写入的数据。
第三步:当HDD无法检索已写入的数据时,它将调用HDD恢复代码,该代码将尝试各种错误恢复步骤,以成功从介质读取数据。
第四步:如果所有恢复步骤均失败,驱动器将生成03/11/0x错误并返回主机,并且LBA将被置于待处理缺陷列表中。
Raid控制器如何检测介质错误?
- RAID控制器在巡查读、一致性检查、正常读取、重建和读取/修改/写入操作时会遇到中等错误。
- 根据RAID配置,控制器也许能够处理HDD报告的介质错误,无需进一步操作。
- 在某些情况下,控制器将无法处理介质错误,并将错误传递到主机以处理错误。
操作系统(OS)何时发现中等错误?
- 如果HDD报告一个中等错误,并且RAID控制器无法处理恢复,则主机将收到该错误的通知。
- 此通知不再只是通知系统已发生事件的建议消息,而是要求操作系统采取行动,因为HDD和RAID控制器无法从介质错误中恢复。
- 如果操作系统具有正确解决介质错误所需的情景,则必须由操作系统进行处理
- 如果磁盘仅位于磁盘束(JBOD)中,操作系统将看到错误,因为控制器未纠正这些错误。这在HyperFlex (HX)/虚拟存储区域网络(VSAN)环境中很常见。
HDD角色
扩展缺陷(G-list) HDD级别
驱动器运行时,磁头可能会遇到磁读取电平较弱的扇区。数据仍可读,但可能低于合格良好扇区读取级别的首选阈值。该磁盘驱动器会将此驱动器视为一个扇区,该扇区可以且会将此数据保留到已知良好保留列表中可用的新位置。移动数据后,旧扇区地址将添加到Growed Defects列表中,永远不再使用。此过程是可恢复介质错误。在大部分已知良好的备用扇区用尽后,驱动器将发出SMART触发器。
RAID控制器角色
Patrol Read
- “巡读”是一个用户可定义的选项,在后台执行驱动器读取并映射出驱动器的所有坏区域。
- 巡读检查可能导致驱动器故障的物理磁盘错误。这些检查通常包括尝试纠正操作。可通过自动或手动激活启用或禁用巡读功能。
- 巡读定期验证连接到控制器的所有物理磁盘扇区,包括RAID配置的驱动器中的系统保留区域。巡读适用于所有RAID级别和所有热备盘驱动器。
- 此过程仅当RAID控制器处于空闲状态达到定义的时间长度,并且没有其他后台任务处于活动状态时开始,尽管它可以在繁重的输入/输出(I/O)进程同时继续运行。
- 您无法在JBOD中配置的驱动器上进行巡读。
注意:潜在语义索引(LSI)建议将巡读频率和其他巡读设置保留为默认值,以实现最佳系统性能。如果您决定更改这些值,请在此处记录原始默认值,以便稍后恢复。
注意:Patrol Read在运行时不报告其进度。巡读状态仅在事件日志中报告。
“巡读”选项如图所示:
MegaCli示例
要查看有关巡读状态和巡读运行之间的延迟的信息,请执行以下操作:
# MegaCli64 -AdpPR -Info -aALL
要了解当前的巡读速率,请执行:
# MegaCli64 -AdpGetProp PatrolReadRate -aALL
要禁用自动巡查,请阅读:
# MegaCli64 -AdpPR -Dsbl -aALL
要启用自动巡查,请阅读:
#MegaCli64 -AdpPR -EnblAuto -aALL
要启动手动巡读扫描,请执行以下操作:
# MegaCli64 -AdpPR -Start -aALL
要停止巡读扫描,请执行以下操作:
# MegaCli64 -AdpPR -Stop -aALL
一致性检查
- 在RAID中,一致性检查验证阵列中冗余数据的正确性。例如,在具有奇偶校验的系统中,检查一致性意味着计算数据驱动器的奇偶校验并将结果与奇偶校验驱动器的内容进行比较。
- JBOD不支持一致性检查。
- RAID 0不支持一致性检查。
- RAID 1使用数据比较而不是奇偶校验。
- RAID 6计算2个奇偶校验驱动器的奇偶校验并检验两者。
注意:建议您至少每月运行一次一致性检查。
一致性检查管理选项如图所示:
一致性检查安排选项如图所示:
MegaCli示例
要查看下一个计划的一致性检查时间,请执行以下操作:
#MegaCli64 -AdpCcSched -Info -aALL
要更改计划的一致性检查时间,请执行以下操作:
#MegaCli64 -AdpCCSched -SetSTartTime 20171028 02 -aALL
要禁用一致性检查,请执行以下操作:
#MegaCli64 -AdpCcSched -Dsbl -aALL
RAID控制器无法修复介质错误的情况
- 在RAID 0
- 由于没有冗余,因此控制器无法为HDD提供数据以写入LBA。
- 在RAID 1中
- 当控制器无法判断哪个镜像副本包含正确数据时。仅当两个LBA均可读取但数据不匹配时,才会出现这种情况。
- RAID 5
- 如果同一条带中有2个或更多错误。最可能发生在阵列重建开始之后。重建的驱动器是一个错误,而任何其他驱动器重建的介质错误是第二个错误。控制器将无法重建在更换驱动器上重建LBA所需的数据。
- RAID 6
- 如果同一条带中有3个或更多错误。最有可能发生在重建阵列时。重建的驱动器是一个错误,重建过程中其他两个驱动器上的介质错误是第二个和第三个错误,或者介质错误和第二个驱动器故障。控制器将无法重建在出现错误的驱动器上重建LBA所需的数据。
相关信息