3.8. 配置错误行为


当 I/O 操作过程中发生错误时,XFS 驱动程序以以下两种方式之一响应:
  • 继续重试,直到出现以下任一操作:
    • I/O 操作成功,或者
    • 超过 I/O 操作重试计数或时间限制。
  • 考虑永久错误并停止系统。
XFS 目前可识别您可以配置所需行为的以下错误条件:
  • EIO: 在尝试写入设备时出现错误
  • ENOSPC: 该设备中没有剩余空间
  • ENODEV: Device cannot found
所有其他可能的错误条件(没有定义特定的处理程序)共享一个全局配置。
您可以设置 XFS 在最大重试次数和最长时间(以秒为单位)中导致错误持久性的条件。当满足任何一个条件时,XFS 会停止重试。
在卸载文件系统时,还有一个选项可立即取消重试,而不考虑任何其他配置。这允许卸载操作在出现持久错误时也可以成功。

3.8.1. 特定和未定义的条件的配置文件

控制错误行为的配置文件位于 /sys/fs/xfs/device/error/ 目录中。
/sys/fs/xfs/设备/error/metadata/ 目录包含每个特定错误条件的子目录:
  • 用于 EIO 错误条件的 /sys/fs/xfs/device/error/metadata / EIO /
  • /sys/fs/xfs/device/error/metadata/ENODEV/ 用于 ENODEV 错误条件
  • /sys/fs/xfs/device/error/metadata/ENOSPC/ 用于 ENOSPC 错误条件
然后,每个配置文件包含以下配置文件:
  • /sys/fs/xfs/device/error/metadata/condition/max_retries: 控制 XFS 重新尝试操作的最大次数。
  • /sys/fs/xfs/device/error/metadata/condition/retry_timeout_seconds: XFS 将停止重试操作的时间限制(以秒为单位)
除了上一节中描述的其它错误条件外,所有其他可能的错误条件在这些文件中共享一个通用配置:
  • /sys/fs/xfs/device/error/metadata/default/max_retries: 控制重试的最大次数
  • /sys/fs/xfs/device/error/metadata/default/retry_timeout_seconds: 控制重试的时间限制

3.8.2. 为特定和未定义条件设置文件系统行为

要设置重试的最大数量,请将所需的数量写入 max_retries 文件。
  • 对于特定条件:
    # echo value > /sys/fs/xfs/device/error/metadata/condition/max_retries
  • 对于未定义的条件:
    # echo value > /sys/fs/xfs/device/error/metadata/default/max_retries
value-1 和最大可能值为 int 的值(C 签名的整数类型)之间的数字。64 位 Linux 中是 2147483647
要设置时间限制,请将所需的秒数写入 retry_timeout_seconds 文件。
  • 对于特定条件:
    # echo value > /sys/fs/xfs/device/error/metadata/condition/retry_timeout_seconds
  • 对于未定义的条件:
    # echo value > /sys/fs/xfs/device/error/metadata/default/retry_timeout_seconds
value-186400 之间的数字,这是一天的秒数。
max_retriesretry_timeout_seconds 选项中,-1 表示重试 forever 和 0 以立即停止。
device 是设备的名称,如 /dev/ 目录中找到,例如: sda
注意
每个错误条件的默认行为取决于错误上下文。一些错误(如 ENODEV )被视为致命且不可恢复的,无论重试计数如何,其默认值为 0。

3.8.3. 设置卸载行为

如果设置了 fail_at_unmount 选项,文件系统会在卸载过程中覆盖所有其他错误配置,并在不重试 I/O 操作的情况下立即修改文件系统。这允许卸载操作在出现持久错误时也可以成功。
设置卸载行为:
# echo value > /sys/fs/xfs/device/error/fail_at_unmount
值可以是 10
  • 1 表示如果找到错误,则立即取消重试。
  • 0 表示遵守 max_retriesretry_timeout_seconds 选项。
device 是设备的名称,如 /dev/ 目录中找到,例如: sda
重要
在尝试卸载文件系统前,需要根据需要设置 fail_at_unmount 选项。启动卸载操作后,配置文件和目录可能无法使用。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.