xfs
以下は、xfs
の既知の問題です:
-
直接I/O書込み後にファイル・システムの破損が発生
直接I/O書き込みにpost-eofブロックが使用される競合状態が発生すると、ファイル・システムが破損します。 ダイレクトI/O writeを拡張しているファイル中にファイルの解放が発生した場合、post-eofブロックを間違った事前割り当てに間違えて、inodeから誤って切り捨てる可能性があります。 この問題は、実際の作業負荷では再現されない可能性があります。 (バグID 26128822)
-
v5スーパーブロックでのログ・リカバリの問題によって、破損したファイル・システム・エラーが誤って発生する
v5スーパー・ブロックでのログ・リカバリの問題により、書き込まれたバッファについてメタデータLSNが更新されなくなることで、次のような破損エラーが発生します:
[1044224.901444] XFS (sdc1): Metadata corruption detected at xfs_dir3_block_write_verify+0xfd/0x110 [xfs], block 0x1004e90 [1044224.901446] XFS (sdc1): Unmount and run xfs_repair ... [1044224.901460] XFS (sdc1): xfs_do_force_shutdown(0x8) called from line 1249 of file fs/xfs/xfs_buf.c. Return address = 0xffffffffa07a8910 [1044224.901462] XFS (sdc1): Corruption of in-memory data detected. Shutting down filesystem [1044224.901463] XFS (sdc1): Please umount the filesystem and rectify the problem(s) [1044224.904207] XFS (sdc1): log mount/recovery failed: error -117 [1044224.904456] XFS (sdc1): log mount failed"
この問題は、後で更新された更新によって有効ではなくなったバッファ更新をログが再生しようとするために発生します。 実際にファイル・システムが正常な場合、結果は破損エラーになります。 (バグID 25380003)
-
負の
i_size
を使用してバッファによるファイルへの追加を実行した後、アンマウントでシステムが停止するファイルシステムが負の
i_size
でiノードをロードすることは無効ですが、このようなファイルを作成でき、バッファがそれに追加される場合、ルーチンのベースとなるライトバックの整数オーバーフローによってカーネルがロック・アップされます。 直接追加ではこの動作は発生しません。 (バグID 25565490) -
推測による事前割当てを持つ2つのエクステントのファイルに対する
xfs_fsr
中にシステムが停止する推測による事前割当てによって生成されたエクステントに対する
xfs_fsr
プロセス中に、使用されるdi_nextents
呼出しではこれらのエクステントが考慮されないことが原因で、すべてのエクステントが収まるかどうかを決定するコードが計算を誤ります。 これにより、インメモリーinodeは破損し、最終的に、コードは誤って計算された範囲を使用してメモリー構造の移動を試みます。 このことによってカーネル・パニックが発生します。 (バグID 25333211) -
Oracle Linux 6で読取り専用で再マウントするとXFS割当てが無効になる
Oracle Linux 6では、ファイル・システムが読取り専用権限で再マウントされると、XFSでの割当てが無効になります。 (バグID 22908906)
-
d_type
サポートがない場合、オーバーレイ・ファイル・システムをXFSでマウントできませんオーバーレイ・ファイル・システムは、
d_type
サポートと呼ばれる機能に依存します。 この機能は、基本ファイル・システム内のディレクトリ・エントリのファイルのメタデータを提供するデータ構造内のフィールドです。 オーバーレイ・ファイル・システムはこのフィールドを使用して、所有者変更およびホワイトアウトなどの多数のファイル操作を追跡します。ファイル・システムが作成される場合、-n ftype=1
オプションを使用して、d_type
サポートをXFSで有効化できます。d_type
サポートが有効になっていない場合、オーバーレイ・ファイル・システムが破損し、予期しない方法で動作する可能性があります。 このため、このUEK R4の更新リリースでは、XFSベースでのオーバーレイ・ファイル・システムのマウントが回避されます(d_type
サポートが有効になっていない)。Oracle Linuxの
root
パーティションは、自動的に-n ftype=0
でフォーマットされます。ここでは、XFSがファイル・システムとして選択されています。 したがって、下位互換性の理由から、オーバーレイ・ファイル・システムが既に存在し、これらが代替ストレージにホストされていない場合は、d_type
サポートを有効にしてフォーマットされたファイル・システムに移行する必要があります。XFSファイル・システムが正しくフォーマットされていることを確認するには:
# xfs_info /dev/sdb1 |grep ftype
/dev/sdb1を正しいストレージ・デバイスへのパスに置き換えます。 このコマンドによって返される情報に
ftype=0
が含まれる場合、このディレクトリに保持されるオーバーレイ・データを正しくフォーマットされているストレージに移行する必要があります。オーバーレイ・ファイル・システムのサポートとともにXFSファイル・システムで新しいブロック・デバイスを正しくフォーマットするには、次のコマンドを実行します。
# mkfs -t xfs -n ftype=1 /dev/sdb1
/dev/sdb1を正しいストレージ・デバイスへのパスに置き換えます。 ファイル・システムを作成する場合に
-n ftype=1
オプションを使用する必要があります。追加のブロック・ストレージを使用できない場合は、マウント可能なXFSファイル・システム・イメージとループバックを作成することができます。 たとえば、
root
ディレクトリに5 GBのイメージ・ファイルを作成するには、次のコマンドを使用します:# mkfs.xfs -d file=1,name=/OverlayStorage,size=5g -n ftype=1
一時的にこのファイルをマウントするには、次のコマンドを入力できます。
# mount -o loop -t xfs /OverlayStorage /mnt
/etc/fstab
にエントリを追加して、このストレージの永続マウントを行うと、次のようになります:/OverlayStorage /mnt xfs loop 0 0
この構成は、アップグレードの問題を解決する一時的な解決策として役立つ可能性があります。 ただし、永続ストレージの形式としてループバック・マウントされたファイル・システム・イメージを使用することは本番環境で推奨されていません。 (バグID 26165630)