FreeNAS 9.3のベンダー固有の派生物を実行しています。
新しいJBODシャーシを取り付けて2つの新しいvdevをプールに追加し、シャーシに不良のボードがあると、問題が発生しました。この間、SAS不良ボード上のドライブで電源エラーが発生しました。新しいドライブは、毎分効果的にオンとオフを繰り返していました。
ボードを交換したところ、ほとんどの場合ドライブは正常に機能していますが、zpool status
を表示すると、ZFSによって非常に奇妙なチェックサムエラーが発生します。 SAS電源の問題があったときに、いくつかの悪いCoW書き込みがあったと思います。
CPU、ブートドライブ、RAMなどを備えた最初のシャーシは、mini-SASを介して最初の拡張JBODシャーシに接続し、2番目のJBOD拡張シャーシは、同じくmini-SASを介して最初のJBOD拡張シャーシを介してデイジーチェーン接続されます。
チェックサムエラーは1つのコントローラーまたはシャーシにきちんと対応していませんが、私の問題は、これらの電源の問題が発生したとき、異なる新しいディスクに書き込まれていたデータが、2つの新しいvdev間で正しく書き込まれていなかったことです。
私のHBAは適切なLSIファームウェア上にあり、すべて20.00.04.00または20.00.08.00にあります
Mini-SASケーブルを交換し、異なるポートを使用してみましたが、役に立ちませんでした。
zpool status
isの出力は、2つの新しいvdevで累積するチェックサムエラーを示し、スクラブ、再起動、またはzpool clear
のいずれかの後、最終的にzpool status
はそれらのvdevを劣化としてマークします。奇妙なのは、それらのvdevに属するドライブのsomeも劣化としてマークしていることですが、個々のディスクの実際のエラー数はすべて0です。zdb
は、個々のドライブがチェックサムエラーの数が実際にはすべて0であるにもかかわらず、チェックサムエラーが多すぎます。また、奇妙なのは、プールレベルのチェックサムエラーが、2つの問題のあるvdevを合計したチェックサムエラーよりも低い数を示すことです。
zpool status -v
は、長い間削除された0x0
iノードにマップされたスナップショットに永続的なエラーを永続的に表示しますが、複数のスクラブ、再起動、またはzpool clear
ではクリアできないようです。また、他の永続的なエラーが浮き出たり消えたりし、16進数のiノードとしてのみ表示されることもあれば、最近のスナップショットの一部として表示されることもあります。 lsof
で0x0
が見つかりません。
プール内のメタデータに何らかのデータの破損があると思います。
これらのファントムスナップショットを外科的に削除する方法、またはデータを破壊せずにプールを正常な状態に戻す方法を探しています。どこかで、 ZFSはこれらの破損したファントムスナップショットを繰り返し処理し、奇妙なチェックサムエラーとvdevの機能低下状態の両方を引き起こしています。
私は重要なデータの多くの「コールド」LTOバックアップを持っていますが、それ以外の場合は、プールを修復できない場合、2番目のサーバーをセットアップし、すべてを「ホット」な2番目のサーバーにオフロードして、プールを破棄しますトップレベルで、次にホットバックアップからリロードします。
zpool status -v
の出力は次のとおりです。
[root@Jupiter] ~# zpool status -v
pool: freenas-boot
state: ONLINE
status: One or more devices are configured to use a non-native block size.
Expect reduced performance.
action: Replace affected devices with devices that support the configured block size, or migrate data to a properly configured pool.
scan: resilvered 944M in 0h17m with 0 errors on Tue Aug 9 11:56:28 2016
config:
NAME STATE READ WRITE CKSUM
freenas-boot ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
da46p2 ONLINE 0 0 0 block size: 8192B configured, 8388608B native
da47p2 ONLINE 0 0 0 block size: 8192B configured, 8388608B native
errors: No known data errors
pool: pool
state: DEGRADED
status: One or more devices has experienced an error resulting in data
corruption. Applications may be affected.
action: Restore the file in question if possible. Otherwise restore the
entire pool from backup.
see: http://illumos.org/msg/ZFS-8000-8A
scan: scrub in progress since Fri Sep 9 22:43:51 2016
6.27T scanned out of 145T at 1.11G/s, 35h27m to go
0 repaired, 4.33% done
config:
NAME STATE READ WRITE CKSUM
pool DEGRADED 0 0 118
raidz3-0 ONLINE 0 0 0
gptid/ac108605-265c-11e5-9a02-0cc47a599098 ONLINE 0 0 0
gptid/ac591d4e-265c-11e5-9a02-0cc47a599098 ONLINE 0 0 0
gptid/ac92fd0d-265c-11e5-9a02-0cc47a599098 ONLINE 0 0 0
gptid/accd3076-265c-11e5-9a02-0cc47a599098 ONLINE 0 0 0
gptid/ad067e97-265c-11e5-9a02-0cc47a599098 ONLINE 0 0 0
gptid/ad46cbee-265c-11e5-9a02-0cc47a599098 ONLINE 0 0 0
gptid/ad91ba17-265c-11e5-9a02-0cc47a599098 ONLINE 0 0 0
gptid/adcbdd0a-265c-11e5-9a02-0cc47a599098 ONLINE 0 0 0
gptid/ae07dc0d-265c-11e5-9a02-0cc47a599098 ONLINE 0 0 0
gptid/ae494d10-265c-11e5-9a02-0cc47a599098 ONLINE 0 0 0
gptid/ae93a3a5-265c-11e5-9a02-0cc47a599098 ONLINE 0 0 0
raidz3-1 ONLINE 0 0 0
gptid/12f6a4c5-c929-11e5-8075-0cc47a599098 ONLINE 0 0 0
gptid/511ea1f9-1932-11e6-9b1e-0cc47a599098 ONLINE 0 0 0
gptid/14436fcf-c929-11e5-8075-0cc47a599098 ONLINE 0 0 0
gptid/14f50aa3-c929-11e5-8075-0cc47a599098 ONLINE 0 0 0
gptid/159b5654-c929-11e5-8075-0cc47a599098 ONLINE 0 0 0
gptid/163d682b-c929-11e5-8075-0cc47a599098 ONLINE 0 0 0
gptid/16ee624e-c929-11e5-8075-0cc47a599098 ONLINE 0 0 0
gptid/1799dde3-c929-11e5-8075-0cc47a599098 ONLINE 0 0 0
gptid/184c2ea4-c929-11e5-8075-0cc47a599098 ONLINE 0 0 0
gptid/18f51c30-c929-11e5-8075-0cc47a599098 ONLINE 0 0 0
gptid/19a861ea-c929-11e5-8075-0cc47a599098 ONLINE 0 0 0
raidz3-2 DEGRADED 0 0 236
gptid/5f80fc42-4e00-11e6-b7cf-0cc47a599098 DEGRADED 0 0 0 too many errors
gptid/60369e0f-4e00-11e6-b7cf-0cc47a599098 DEGRADED 0 0 0 too many errors
gptid/60e8234a-4e00-11e6-b7cf-0cc47a599098 DEGRADED 0 0 0 too many errors
gptid/61a235f2-4e00-11e6-b7cf-0cc47a599098 DEGRADED 0 0 0 too many errors
gptid/62580471-4e00-11e6-b7cf-0cc47a599098 DEGRADED 0 0 0 too many errors
gptid/6316a38a-4e00-11e6-b7cf-0cc47a599098 DEGRADED 0 0 0 too many errors
gptid/63d4bce8-4e00-11e6-b7cf-0cc47a599098 DEGRADED 0 0 0 too many errors
gptid/ebfc2b99-6893-11e6-9b09-0cc47a599098 ONLINE 0 0 0
gptid/654f143a-4e00-11e6-b7cf-0cc47a599098 DEGRADED 0 0 0 too many errors
gptid/66236b33-4e00-11e6-b7cf-0cc47a599098 DEGRADED 0 0 0 too many errors
gptid/66eda3f6-4e00-11e6-b7cf-0cc47a599098 DEGRADED 0 0 0 too many errors
raidz3-3 DEGRADED 0 0 176
gptid/c77a9da9-4e02-11e6-b7cf-0cc47a599098 ONLINE 0 0 0
gptid/c83e100e-4e02-11e6-b7cf-0cc47a599098 ONLINE 0 0 0
gptid/c8fd9ced-4e02-11e6-b7cf-0cc47a599098 DEGRADED 0 0 0 too many errors
gptid/c9bb21ba-4e02-11e6-b7cf-0cc47a599098 DEGRADED 0 0 0 too many errors
gptid/ca7a48db-4e02-11e6-b7cf-0cc47a599098 DEGRADED 0 0 0 too many errors
gptid/cb422329-4e02-11e6-b7cf-0cc47a599098 DEGRADED 0 0 0 too many errors
gptid/cbfe4c21-4e02-11e6-b7cf-0cc47a599098 ONLINE 0 0 0
gptid/ccc43528-4e02-11e6-b7cf-0cc47a599098 ONLINE 0 0 0
gptid/cd93a34c-4e02-11e6-b7cf-0cc47a599098 ONLINE 0 0 0
gptid/ce622f51-4e02-11e6-b7cf-0cc47a599098 ONLINE 0 0 0
gptid/cf2591d3-4e02-11e6-b7cf-0cc47a599098 ONLINE 0 0 0
cache
gptid/aedd3872-265c-11e5-9a02-0cc47a599098 ONLINE 0 0 0
gptid/af559c10-265c-11e5-9a02-0cc47a599098 ONLINE 0 0 0
errors: Permanent errors have been detected in the following files:
<0x357>:<0x2aef3>
<0x37b>:<0x397285>
pool/[email protected]:<0x0>
FreeNAS GUIを介して、System dataset pool
をpool
からfreenas-boot
にコピーし、次にzfs destroy
を使用してpool/.system
のpool
コピーを削除し、freenas-boot
コピーをそのまま残してみました。 zfs destroy
を使用してすべてを削除することはできましたwithinpool/.system
にリストされているzfs list
をpool/.system
でzfs destroy
を破棄しようとすると、シェルがエラーを返しました:Cannot iterate filesystems: I/O error
。 zfs destroy
、pool/.system
、および-f
フラグを使用して、-r
で-R
を試しましたが、 Oracle ZFSのドキュメント のとおり、使用できませんでした。
さらに別のスクラブを始めました。おそらく、pool/.system
のpool
コピーのSystem dataset pool
の内容を削除すると、スクラブはファントムスナップショットpool/[email protected]
でメタデータエラーをクリアできます。
劣化していると表示されている各ディスクを1つずつ再同期化して、参照されていない「悪い」メタデータを破棄できるかどうか疑問に思っています。 2つのディスクを再同期化しましたが、追加のディスクを再同期化すると、既に再同期化した他のディスクが同時に再同期化を開始するという問題が発生しています。私は信じています それは定期的なスナップショットタスクに関連するZFSバグである可能性があります 、そして私は先に進んで定期的なスナップショットタスクを削除し、すべてのスナップショットを破棄しましたが、私はさらに別の再同期を試みることをためらっています以前に回復されたすべてのディスクが再び回復し、冗長性がなくなり、最終的にプールに障害が発生するまで、パフォーマンスが低下したドライブの1つ。
定期的なスナップショットタスクを無効にしてすべてのスナップショットを削除した後、1つのディスクをワイプして再同期化しようとしましたが、既に再同期化した3つのディスクが再び再同期化を開始しました。これで、問題が発生するRAID-Z3 vdevごとに2つの異なるディスクが回復することはほぼ確実です。そのため、これ以上ディスクを回復させようとすると、問題のある各vdevとプールの冗長性が失われます。故障します。
他の奇妙な動作の1つは、zpool status -v
をチェックすると実際にはプールのチェックサムエラー数が増加しますが、zpool status
をチェックすると増加しないことです。これは、-v
フラグ自体がチェックサムエラーの原因となっているメカニズムを繰り返しているかのようです。
プールでzdb -c
を使用すると、これらのメタデータエラーを「修正」できますか?
メタデータが破損している場合、0x0
およびその他の16進数がファイル名やその他のオブジェクトの代わりに表示されます。影響を受けるオブジェクトを破壊することでそれを取り除くことができない場合(私はそれらがスナップショットを参照していることを理解しました)、損傷はおそらく修復するには大きすぎます。この場合、特に破損したメタデータが表示されたり消えたりするなど、さらに奇妙な影響がある場合は、バックアップからプールを復元します。
ほとんどの問題を取り除く方法については ZFS管理ガイドはこちら で読むことができます。しかし、ZFSはzpool status
と入力したときにソリューションを探すURLも提供します。