跳转到主内容

什么是无法读取的扇区管理?

Views:
9
Visibility:
Public
Votes:
0
Category:
e-series-systems
Specialty:
esg
Last Updated:

适用于

NetApp E 系列产品

解答

无法读取的扇区管理( USM )功能提供了一种基于控制器的方法、用于处理在正常 I/O 处理期间检测到的无法读取的扇区以及诸如重建等长期运行操作。该功能主要是对最终用户透明的、因此不提供可配置的选项、并且无法禁用该功能。USM 提供的五项主要功能改进是:

  • 更好地报告主要事件日志( MEL )中无法读取的扇区(以及与 USM 相关的情况)。
  • 持续报告无法读取的扇区。
  • 尽管存在介质错误,但所有重建和其它长期运行操作都将继续进行。
  • 即使无法生成奇偶校验,也能成功完成对最佳 RAID 5 卷的写入。
  • 通过 RAID 重新配置操作( DVE 、 DCE )保持介质错误状态。

由于 NetApp 在一个子系统中同时支持 FC-SCSI 和 SATA 磁盘、因此该功能的设计方式不依赖于物理磁盘功能、并且完全在控制器固件中进行处理。但是,控制器固件不会尝试模拟不支持这些功能的磁盘的功能。

在本文中,“无法读取的扇区”定义为卷逻辑块地址( LBA ),由于与物理磁盘介质相关的双重故障情况或非冗余卷( RAID 0 )上与物理磁盘介质相关的单一故障情况而被认为是完全不可读的。无法读取的扇区是不可恢复的、该位置中包含的数据应视为丢失、必须通过其他方式恢复。

无法读取的扇区数据库如何工作以及它记录了哪些内容?

无法读取的扇区数据库将在稳定存储中维护,并为检测到的每个不可读扇区包含一个条目。它使用以卷为中心的信息进行记录,其中包括:

  • 唯一卷标识符(不是 SSID )
  • 卷 LBA
  • 块计数

使数据库保持稳定存储的好处是,它允许持续报告无法读取的扇区、因为它可以在重新启动、卷重新配置和固件升级(前提是升级到支持 USM 的代码)、卷状态更改和卷传输之后继续运行。

要查看 USM 数据库:

  • 在 SANtricity (阵列管理窗口)中,转至 "Monitor">"Reports">">" 无法读取的扇区日志 "
  • SANtricity CLI 命令: show storageArray unreadableSectors
  • 在 SANtricity Array Manager ( SAM )中,转至 Support (支持) >> Support Center (支持中心) >> Diagnostics (诊断)选项卡 >> Selecting "View/Clear Unreadable Sects" (查看 / 清除无法读取的扇区)

如何以及为什么在数据库中输入不可读的扇区?

可以在任何读取操作(无论是主机 I/O 还是需要从物理介质读取的内部操作)上向无法读取的扇区数据库输入条目。对于冗余配置,这意味着数据和奇偶校验(或镜像)位置都可以生成无法读取的扇区数据库的条目。在主机读取 I/O 期间、如果物理磁盘返回介质错误、控制器将首先尝试重建数据(在最佳冗余配置中)。如果该数据的重建失败、将输入无法读取的扇区数据库、主机 I/O 将失败、并显示硬件错误的检测密钥( 0x04 )。

带冗余的介质扫描检查:

在扫描过程中、读取和比较所有数据和奇偶校验信息。遇到介质错误、是新介质错误还是已在数据库中记录的介质错误时、将执行以下操作。将尝试在该位置重建数据,如果成功,则会对磁盘执行回写操作。如果在无法读取的扇区数据库中存在写入位置的条目,则该条目将被删除。如果无法重建数据、则会为所有涉及的不可读扇区将条目输入到数据库。

重建:

在 RAID 5 重建期间将处理读取。如果在无法读取的扇区数据库中找到现有条目、重建驱动器上的相应扇区将被添加到不可读取的扇区数据库中、并且将为重建驱动器上丢失的数据生成关键 MEL 事件。重建驱动器上的扇区将使用已知数据模式写入。

如果在 RAID 5 重建过程中从磁盘返回新介质错误,则会出现两种情况:

数据段上发生读取错误

已采取的操作:将向无法读取的扇区数据库中添加两个无法读取的扇区、一个用于数据驱动器上有缺陷的扇区、另一个用于重建驱动器上无法重新生成的数据。由于两个扇区中的用户数据都丢失,因此将为两个扇区生成一个重要的 MEL 事件。由于此操作,奇偶校验驱动器的内存中表中将添加一个无法读取的扇区条目。

奇偶校验段上发生读取错误

已采取的操作:对于无法在重建驱动器上重新生成的位置,将向无法读取的扇区数据库输入一个条目。将记录丢失的用户数据的单个 MEL 事件。将在内存表中为奇偶校验驱动器上的位置添加一个条目。

在 RAID 1 重建过程中将处理读取。如果在无法读取的扇区数据库中找到现有条目、则重建驱动器上的相应扇区将使用已知数据模式写入,并且不会生成 MEL 事件。

如果在重建过程中从源磁盘遇到新的介质错误,则会将故障扇区添加到数据库中并生成关键 MEL 事件。重建驱动器将使用默认模式写入。

反向复制操作:在复制回操作期间、热备用驱动器将被读取并复制到替换驱动器。如果在数据库中找到现有的不可读扇区、则不会创建新条目、并且会更新逻辑到物理映射。如果检测到新的不可读扇区、将尝试重建数据。如果无法恢复数据、则将为目标扇区添加一个新的不可读扇区条目、并生成一个重要的 MEL 事件。目标扇区将使用已知数据模式写入,复制回操作将继续完成。

即时可用性格式( <:iaf )当宇航联合会检测到介质错误时,它会将无法读取的扇区和相应的奇偶校验块的条目放在无法读取的扇区数据库中。将为介质错误的站点生成一个关键 MEL 事件。

动态重新配置执行卷重新配置时、卷组中的驱动器数量、 RAID 级别或条带大小可能会更改。仅当数据库中尚未存在现有条目时,才会记录此操作期间源上检测到的不可读扇区。这些无法读取的块将迁移到目标配置中的新位置、逻辑块的无法读取扇区数据库中的物理位置将被更新、并生成 MEL 事件。

实施 USM 并不能保证物理介质错误不会影响用户对其数据的访问。无法读取的扇区管理旨在通过向最终用户提供这些错误存在的通知来减少这种可能性。USM 与媒体扫描等功能结合使用时,可以为系统管理员提供采取主动措施和防止硬件问题影响数据访问的机会。

与无法读取扇区数据库中记录的扇区交叉的主机读取将返回 0x03 (介质错误)的检测关键字和 0x11/0x00 的 ASC/Ascq (不可恢复的读取错误)。

有一个限制因素,只允许最多 1000 个条目进入不可读扇区数据库。此 1000 条目限制适用于所有卷组、卷和磁盘。一旦数据库已满、控制器行为将如下所示:

  • 对于重建期间遇到的新的无法读取的扇区、重建驱动器失败、但不会向无法读取的扇区数据库输入任何条目。
  • 对于在主机 I/O 期间遇到的新的无法读取的扇区、主机 I/O 出现故障且未输入任何条目。
  • 对于数据库已满后检测到的所有新的不可读扇区、将生成一个关键 MEL 事件。随后每次尝试访问此位置都会生成一个严重事件,因为数据库中不能为其输入任何条目。

清除无法读取的扇区数据库:

可以使用以下方法之一从无法读取的扇区数据库中删除条目

  • 用户请求:用户可以通过 SANtricity GUI 或 SANtricity CLI 脚本请求清除指定卷、卷组或整个子系统的数据库条目。此类请求将清除指定级别上所有无法读取的扇区并导致发生以下情况:
    • 要写入相应扇区的已知数据模式。
    • 为包含不可读扇区的条带生成正确的奇偶校验。
    • 要从数据库中删除的条目。

在 SANtricity 中,可以查看无法读取的扇区条目并通过转到 "Monitor">"Reports">"Unreadable Sects" 日志来选择 "Clear" 选项。或者使用以下 SANtricity CLI 脚本清除这些项:

clear allVolumes unreadableSectors;

在控制器 SAM 中,转至 Support (支持) >> Support Center (支持中心) >> Diagnostics (诊断)选项卡 >> Selecting (选择) "View/Clear Unreadable Sects" (查看 / 清除无法读取的扇区) >> Select an Entry (选择条目) >> Clear (清除

  • 成功写入:成功写入 USM 数据库中输入的扇区也会删除该条目。当发生与已知的不可读扇区交叉的写入时、该写入将转换为写入并验证以确保扇区已修复且可读。如果 "Write and Verify" (写入和验证)返回 "Good Status" (良好状态),则该扇区将从数据库中删除。

USM 施加的限制:如果某个卷组或卷的数据库中存在无法读取的扇区、则某些功能将被禁用。

  • 主卷存在无法读取的扇区条目时、远程卷镜像( RVM )控制器固件将拒绝创建镜像关系。如果在同步过程中遇到无法读取的扇区、则同步和镜像关系都将失败。
  • 快照:当卷的 USM 数据库中存在条目时,控制器固件将拒绝创建快照。这适用于源卷和关联的存储库卷。
  • 卷复制:当源卷在 USM 数据库中包含不可读的扇区条目时、控制器固件将拒绝卷复制请求。
  • 重新配置操作:控制器固件将拒绝对 USM 数据库中具有不可读扇区条目的卷提出的卷重新配置请求。
  • 卷导入:如果导入的卷组会导致无法读取的扇区数据库溢出、导入将失败、新卷将保持脱机状态。将生成 MEL 事件并记录 Recovery Guru 操作、说明必须减少无法读取的扇区数据库中的条目数、然后才能执行导入。

 

其他信息

注:如果您无法查看本文的全部内容,请登录 kb.netapp.com