简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

使用 NVFAIL 监控和保护文件系统一致性

提供者 NetAppZacharyWambold netapp-thomi netapp-martyh ntap-bmegan 下载此页面的 PDF

使用 volume modify 命令的 ` -nvfail` 参数, ONTAP 可以在系统启动时或在执行切换操作后检测非易失性 RAM ( NVRAM )的不一致性。此外,它还会向您发出警告,并保护系统免受数据访问和修改的影响,直到可以手动恢复卷为止。

如果 ONTAP 检测到任何问题,数据库或文件系统实例将停止响应或关闭。然后, ONTAP 会向控制台发送错误消息,提醒您检查数据库或文件系统的状态。您可以通过 NVFAIL 向数据库管理员发出警告,指出集群节点之间的 NVRAM 不一致可能会影响数据库有效性。

在故障转移或启动恢复期间 NVRAM 数据丢失后, NFS 客户端无法访问任何节点中的数据,直到清除 NVFAIL 状态为止。CIFS 客户端不受影响。

NVFAIL 如何影响对 NFS 卷或 LUN 的访问

如果 ONTAP 在启动时检测到 NVRAM 错误,发生 MetroCluster 切换操作或在卷上设置了 NVFAIL 选项的 HA 接管操作期间检测到 NVRAM 错误,则会设置 NVFAIL 状态。如果在启动时未检测到错误,则文件服务将正常启动。但是,如果检测到 NVRAM 错误或在发生灾难切换时强制执行 NVFAIL 处理,则 ONTAP 会停止数据库实例响应。

启用 NVFAIL 选项后,下表中所述的过程之一将在启动期间发生:

条件 那么 …​

ONTAP 未检测到 NVRAM 错误

文件服务正常启动。

ONTAP 检测到 NVRAM 错误

  • ONTAP 会向尝试访问数据库的 NFS 客户端返回陈旧文件句柄( ESTALE )错误,从而导致应用程序停止响应,崩溃或关闭。

    然后, ONTAP 会向系统控制台和日志文件发送一条错误消息。

  • 应用程序重新启动后,即使尚未验证文件是否有效, CIFS 客户端也可以使用这些文件。

    对于 NFS 客户端,在受影响的卷上重置 in-nvfailed-state 选项之前,文件仍不可访问。

如果使用以下参数之一:

  • 已设置 dr-force-nvfail volume 选项

  • 已设置 force-nvfail-all switchover 命令选项。

如果管理员不希望为将来可能的灾难切换操作强制执行 NVFAIL 处理,则可以在切换后取消设置 dr-force-nvfail 选项。对于 NFS 客户端,在受影响的卷上重置 in-nvfailed-state 选项之前,文件仍不可访问。

使用 force-nvfail-all 选项会导致在灾难切换期间处理的所有 DR 卷上设置 dr-force-nvfail 选项。

ONTAP 在包含 LUN 的卷上检测到 NVRAM 错误

该卷中的 LUN 将脱机。必须清除卷上的 in-nvfailed-state 选项,并且必须通过使受影响卷中的每个 LUN 联机来清除 LUN 上的 NVFAIL 属性。您可以执行以下步骤来检查 LUN 的完整性,并根据需要从 Snapshot 副本或备份中恢复 LUN 。恢复卷中的所有 LUN 后,受影响卷上的 in-nvfailed-state 选项将被清除。

用于监控数据丢失事件的命令

如果启用了 NVFAIL 选项,则在因 NVRAM 不一致或发生 MetroCluster 切换而导致系统崩溃时,您会收到通知。

默认情况下, NVFAIL 参数未启用。

如果您要 …​ 使用此命令 …​

创建启用了 NVFAIL 的新卷

volume create -nvfail on

在现有卷上启用 NVFAIL

volume modify

  • 注: * 要在创建的卷上启用 NVFAIL ,请将 ` -nvfail` 选项设置为 "on" 。

显示当前是否已为指定卷启用 NVFAIL

volume show

  • 注: * 您将 ` 字段` 参数设置为 "nvfail" 以显示指定卷的 NVFAIL 属性。

有关详细信息,请参见每个命令的手册页。

在切换后访问处于 NVFAIL 状态的卷

切换后,您必须通过重置 volume modify 命令的 ` in-nvfailed-state` 参数来清除 NVFAIL 状态,以取消客户端访问数据的限制。

数据库或文件系统不得正在运行或尝试访问受影响的卷。

设置 ` in-nvfailed-state` 参数需要高级权限。

步骤
  1. 使用 volume modify 命令并将 -in-nvfailed-state 参数设置为 false ,以恢复卷。

有关检查数据库文件有效性的说明,请参见特定数据库软件的文档。

如果数据库使用 LUN ,请查看相关步骤,以便在 NVRAM 出现故障后使主机可以访问这些 LUN 。

在切换后恢复处于 NVFAIL 状态的 LUN

切换后,主机将无法再访问处于 NVFAIL 状态的 LUN 上的数据。在数据库能够访问 LUN 之前,您必须执行许多操作。

数据库不得正在运行。

步骤
  1. 通过重置 volume modify 命令的 ` in-nvfailed-state` 参数,清除托管 LUN 的受影响卷上的 NVFAIL 状态。

  2. 使受影响的 LUN 联机。

  3. 检查 LUN 是否存在任何数据不一致问题并予以解决。

    这可能涉及使用 SnapRestore 在存储控制器上执行基于主机的恢复或恢复。

  4. 恢复 LUN 后使数据库应用程序联机。