目录

简介

先决条件

要求

使用的组件

背景信息

处理HDD介质错误

HDD角色

增加的缺陷(G-list)硬盘级别

RAID控制器角色

巡读

一致性检查

RAID控制器无法修复介质错误时的条件

相关信息

简介

本文档介绍不同类型的磁盘错误、如何对其进行分类，以及可用于识别这些错误的工具。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档中的信息基于统一计算系统(UCS)中的硬盘。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

背景信息

当您识别驱动器上的介质错误时，本文档还概述了硬盘驱动器(HDD)和独立磁盘冗余阵列(RAID)控制器的角色。

注意：介质错误也称为介质错误

处理HDD介质错误

什么原因导致HDD介质错误？

中等误差最常见的原因是信号振幅差，导致

- 不可靠逻辑总线地址(LBA)读取位置。有时可通过多次重试恢复。

- 瞬态条件，由软粒子引起的高飞写入。

- 由临时冲击、振动或声事件引起的瞬态条件，导致写入偏离轨道。

- HDD制造中错误映射功能差，导致填充当前的主要缺陷位置。

硬盘如何检测介质错误？

步骤1.HDD定期执行后台介质扫描以检测错误。

步骤2. HDD尝试从介质读取，但由于某种原因无法检索写入的数据。

步骤3.当HDD无法检索写入的数据时，它会调用HDD恢复代码，该代码将尝试各种错误恢复步骤以成功从介质读取数据。

步骤4.如果所有恢复步骤都失败，驱动器将生成03/11/0x错误返回主机，LBA将放在挂起的缺陷列表。

Raid控制器如何检测介质错误？

- RAID控制器在执行巡查读取、一致性检查、正常读取、重建和读取/修改/写入操作时将遇到中等错误。

- 根据RAID配置，控制器可能能够处理HDD报告的介质错误，无需进一步操作。

- 在某些情况下，控制器将无法处理介质错误，并将错误传递给主机以处理错误。

操作系统(OS)何时出现中等错误？

- 如果HDD报告介质错误，而RAID控制器无法处理恢复，则主机将收到错误通知。

- 此通知不再只是通知系统事件已发生的咨询消息，而是请求操作系统采取行动，因为HDD和RAID控制器无法从介质错误中恢复。

- 如果操作系统具有正确解决介质错误所需的上下文，则应由操作系统处理

- 如果磁盘只包含一束磁盘(JBOD)，则操作系统将看到错误，因为控制器未纠正这些错误。这在HyperFlex(HX)/虚拟存储区域网络(VSAN)环境中很常见。

HDD角色

增加的缺陷(G-list)硬盘级别

当驱动器工作时，磁头可以穿过具有削弱的磁读取电平的扇区。数据仍然可读，但可能低于合格良好扇区读取级别的首选阈值。此磁盘驱动器将将此视为扇区，该扇区可以也将将此数据备用到已知良好保留列表中的新位置。移动数据后，旧的扇区地址将添加到“已增长的缺陷”列表中，永远不再使用。此过程是可恢复的介质错误。当大部分已知良好的备用扇区耗尽时，该驱动器会触发SMART。

RAID控制器角色

巡读

- Patrol Read是用户可定义的选项，可在后台执行驱动器读取，并映射出驱动器的任何坏区域。

- Patrol Read检查是否存在可能导致驱动器故障的物理磁盘错误。这些检查通常包括尝试纠正措施。可以通过自动或手动激活启用或禁用巡逻读取。

- “Patrol Read”（巡读）会定期验证连接到控制器的物理磁盘的所有扇区，包括RAID配置的驱动器中的系统保留区域。Patrol Read适用于所有RAID级别和所有热备盘驱动器。

- 此过程仅在RAID控制器空闲已定义的时间长度且没有其他后台任务处于活动状态时启动，但可以继续与繁重的输入/输出(I/O)进程同时运行。

- 您无法对JBOD中配置的驱动器执行巡查读取。

注意：潜在语义索引(LSI)建议将巡逻读取频率和其他巡逻读取设置保留为默认值，以获得最佳系统性能。如果您决定更改这些值，请在此处记录原始默认值，以便稍后恢复。

注意：Patrol Read在运行时不报告进度。巡逻读取状态仅在事件日志中报告。

如图所示，“巡读”选项：

MegaCli示例

要查看有关巡逻读取状态和巡逻读取运行之间的延迟的信息，请执行以下操作：

# MegaCli64 -AdpPR -Info -aALL

要了解当前巡检读取速率，请执行：

# MegaCli64 - AdpGetProp PatrolReadRate -aALL

要禁用自动巡查读取，请执行以下操作：

# MegaCli64 -AdpPR -Dsbl -aALL

要启用自动巡查读取，请执行以下操作：

#MegaCli64 -AdpPR — 启用自动 — 全部

要启动手动巡查读取扫描，请执行以下操作：

# MegaCli64 -AdpPR — 开始 — 全部

要停止巡逻读取扫描，请执行以下操作：

# MegaCli64 -AdpPR — 停止 — 全部

一致性检查

- 在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控制器无法修复介质错误时的条件

- 在JBOD中

- 主机操作系统负责中等错误。

- 在RAID 0中

- 没有冗余，因此控制器无法向HDD提供要写入LBA的数据。

- 在RAID 1中

- 当控制器无法确定哪个镜像副本包含正确的数据时。只有两个LBA都可以读取，但数据不匹配时，才会发生这种情况。

- RAID 5

- 如果同一条带中有2个或更多错误。很可能发生在启动阵列重建后。重建的驱动器是一个错误，而任何其他驱动器重建上的介质错误将是第二个错误。控制器将无法重建更换驱动器上重建LBA所需的数据。

- RAID 6

- 如果同一条带中有3个或更多错误。在重建阵列时最可能发生。重建的驱动器是一个错误，而重建过程中任何两个其他驱动器上的介质错误可能是第二和第三个错误，或者是介质错误和第二个驱动器故障。控制器无法重构在驱动器上重建LBA所需的数据，但出现错误。

相关信息

- MegaRaid® SAS软件用户指南

- 技术支持和文档 - Cisco Systems