Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

3.8. エラー動作の設定

I/O 操作中にエラーが発生すると、XFS ドライバーは、以下の 2 つの方法のいずれかで応答します。
  • 以下のいずれかになるまで再試行を続行します。
    • I/O 操作が成功するか、または
    • I/O 操作の再試行回数または時間制限を超えた場合
  • エラーが永続化し、システムが停止することを考慮してください。
XFS は、現在、必要な動作を特別に設定できる以下のエラー条件を認識しています。
  • EIO: デバイスへの書き込み試行時のエラー
  • ENOSPC: No space left on the device
  • ENODEV: デバイスが見つかりません
特定のハンドラーが定義されていない他のすべての考えられるエラー条件は、単一のグローバル設定を共有します。
XFS がエラーを永続的と見なす条件を、再試行の最大数と最大秒数の両方で設定できます。いずれかの条件が満たされると、XFS は再試行を停止します。
ファイルシステムのマウントを解除すると、その他の設定に関係なく、再試行をすぐにキャンセルするオプションもあります。これにより、永続的なエラーが発生した場合でも、マウント解除操作を成功できます。

3.8.1. 特定の条件および定義されていない条件の設定ファイル

エラー動作を制御する設定ファイルは、/sys/fs/xfs/device/error/ ディレクトリーにあります。
/sys/fs/xfs/デバイス/error/metadata/ ディレクトリーには、特定のエラー 状態ごとにサブディレクトリーが含まれます。
  • EIO エラー状態の /sys/fs/xfs/デバイス/error/metadata / EIO /
  • ENODEV エラー条件の /sys/fs/xfs/デバイス/error/metadata / ENODEV /
  • ENOSPC エラー条件の /sys/fs/xfs/デバイス/error/metadata / 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 は -1 から 86400 の間の数字で、これは 1 日の秒数です。
max_retries オプションと retry_timeout_seconds オプションの両方で、- 1 は永久に再試行し、0 は即座に停止することを意味します。
device は、/dev/ ディレクトリーにあるデバイス名です。たとえば、sda などです。
注記
それぞれのエラー状態のデフォルトの動作は、エラーコンテキストによって異なります。ENODEV などの一部のエラーは、再試行数に関係なく致命的で回復不能であると見なされるため、デフォルト値は 0 です。

3.8.3. アンマウント動作の設定

fail_at_unmount オプションが設定されている場合、ファイルシステムはアンマウント時に他のすべてのエラー設定を上書きし、I/O 操作を再試行せずにすぐにファイルシステムを非表示にします。これにより、永続的なエラーが発生した場合でも、マウント解除操作を成功できます。
アンマウント動作を設定するには、以下を実行します。
# echo value > /sys/fs/xfs/device/error/fail_at_unmount
1 または 0 です。
  • 1 は、エラーが見つかったらすぐに再試行を取り消すことを意味します。
  • 0 は、max_retries オプションおよび retry_timeout_seconds オプションを尊重することを意味します。
device は、/dev/ ディレクトリーにあるデバイス名です。たとえば、sda などです。
重要
fail_at_unmount オプションは、ファイルシステムのアンマウントを試行する前に必要に応じて設定する必要があります。マウント解除操作が開始されると、設定ファイルおよびディレクトリーが利用できなくなる可能性があります。