web-dev-qa-db-ja.com

XFS:内部エラーXFS_WANT_CORRUPTED_GOTO

スタンバイpostgresデータベースで停電のように見える後、次のエラーが表示されます。

XFS: Internal error XFS_WANT_CORRUPTED_GOTO

システムの再起動後、postgresのエラーログに次のように表示されます。

ERROR:  could not write block 1759002 in file "base/278425/1651445.13": Input/output error
CONTEXT:  writing block 1759002 of relation base/278425/1651445
ERROR:  could not write block 339174 in file "base/278425/1651495.2": Input/output error
CONTEXT:  writing block 339174 of relation base/278425/1651495
PANIC:  could not write to log segment 0000000100001423000000A9 at offset 149696, length 5952: Input/output error

数日前に別の同一のシステムで、postgresエラーを受け取りました。

ERROR:  could not write block 69511 in file "base/278425/539725": Structure needs cleaning
CONTEXT:  writing block 69511 of relation base/278425/539725
WARNING:  could not write block 69511 of base/278425/539725
DETAIL:  Multiple failures --- write error might be permanent.

2TBファイルシステムは以下を使用してマウントされます。

mount -t xfs -o rw、nobarrier、noatime、nodiratime/dev/md0/postgres_data

  1. これはAWSELB(GP2)ボリュームであるため、バッテリーでバックアップされておらず、nobarrierオプションを選択したためにボリュームが破損していると思いますか?

  2. このファイルシステムのサイズは2TBなので、inode64オプションを追加した方がいいですか?ファイルシステムには1.2TBのデータが含まれています。

2
Nick

inode64はデフォルトのマウント値なので、システムはすでにそれを使用しているはずです。

多くの場合、問題はnobarrierオプションが原因であり、ホスト側の非BBU書き込みキャッシュと組み合わされています。

ファイルシステムをオフラインにして、それに対してxfs_repairを実行する必要がありました。

2
shodanshok