優れた説明Githubに従ってZFS-HAをセットアップしました( ここ を参照)。徹底的なテストの後、HBAコントローラーを使用して2つのノードに接続されたRAIDZ3の5x12ディスクを使用して、セットアップを本番環境にロールアウトしました。これは、2つのストレージプールの1つが突然「プールのメタデータが破損しています」という障害が発生する昨夜まで非常にスムーズに実行されました。 scrub
の実行中。この時点では、これの原因についてのみ推測できます。両方のプールはペースメーカーでSCSIフェンシングを使用してセットアップされ、本番環境に移行する前にテストしたすべての障害シナリオでディスク予約が問題なく機能しました。最近発生した唯一の大きな事件は、UPSのサポートなしで2回の完全な停電でした(読んでください:電力はある瞬間から次の瞬間にちょうどなくなった)。ただし、破損の本当の理由はまったく異なるものである可能性もあります。
現在の状況では、プールをimport
できなくなりました(この質問の最後にあるzpool import
の出力をご覧ください)。これまでのところ、プールを救うという私の意図はすべて失敗しました。
# zpool import -f tank
cannot import 'tank': one or more devices is currently unavailable
# zpool import -F tank
cannot import 'tank': one or more devices is currently unavailable
これは、プールを破壊することが唯一の選択肢であるとは実際には言っていないので、少し戸惑います(これは、致命的に破損したプールで予想される応答です)。
# zpool clear -F tank
cannot open 'tank': no such pool
また、すべてのSCSI予約を手動で削除しました。例:
# DEVICE=35000c5008472696f
# sg_persist --in --no-inquiry --read-reservation --device=/dev/mapper/$DEVICE
# sg_persist --in --no-inquiry --read-key --device=/dev/mapper/$DEVICE
# sg_persist --out --no-inquiry --register --param-sark=0x80d0001 --device=/dev/mapper/$DEVICE
# sg_persist --out --no-inquiry --clear --param-rk=0x80d0001 --device=/dev/mapper/$DEVICE
# sg_persist --in --no-inquiry --read-reservation --device=/dev/mapper/$DEVICE
さらに、ディスクシェルフからA/Cを取り外して、デスクに残っている可能性のある一時的な情報をクリアしてみました。
率直に言って、オプションが不足しています。私のリストに残っているのは、-X
に対するzpool import
オプションだけです。これは、他のすべての対策が失敗した後に試します。
だから私の質問は、あなたは以前にこのようなものに遭遇しましたか、そしてもっと重要なことに、これを解決する方法を見つけましたか?私はあなたが持っているかもしれないどんな提案にも非常に感謝するでしょう。
=========
プールのレイアウト/構成:
pool: tank
id: 1858269358818362832
state: FAULTED
status: The pool metadata is corrupted.
action: The pool cannot be imported due to damaged devices or data.
The pool may be active on another system, but can be imported using
the '-f' flag.
see: http://zfsonlinux.org/msg/ZFS-8000-72
config:
tank FAULTED corrupted data
raidz3-0 FAULTED corrupted data
35000c5008472696f ONLINE
35000c5008472765f ONLINE
35000c500986607bf ONLINE
35000c5008472687f ONLINE
35000c500847272ef ONLINE
35000c50084727ce7 ONLINE
35000c50084729723 ONLINE
35000c500847298cf ONLINE
35000c50084728f6b ONLINE
35000c50084726753 ONLINE
35000c50085dd15bb ONLINE
35000c50084726e87 ONLINE
raidz3-1 FAULTED corrupted data
35000c50084a8a163 ONLINE
35000c50084e80807 ONLINE
35000c5008472940f ONLINE
35000c50084a8f373 ONLINE
35000c500847266a3 ONLINE
35000c50084726307 ONLINE
35000c50084726897 ONLINE
35000c5008472908f ONLINE
35000c50084727083 ONLINE
35000c50084727c8b ONLINE
35000c500847284e3 ONLINE
35000c5008472670b ONLINE
raidz3-2 FAULTED corrupted data
35000c50084a884eb ONLINE
35000c500847262bb ONLINE
35000c50084eb9f43 ONLINE
35000c50085030a4b ONLINE
35000c50084eb238f ONLINE
35000c50084eb6873 ONLINE
35000c50084728baf ONLINE
35000c50084eb4c83 ONLINE
35000c50084727443 ONLINE
35000c50084a8405b ONLINE
35000c5008472868f ONLINE
35000c50084727c6f ONLINE
raidz3-3 FAULTED corrupted data
35000c50084eaa467 ONLINE
35000c50084e7d99b ONLINE
35000c50084eb55e3 ONLINE
35000c500847271d7 ONLINE
35000c50084726cef ONLINE
35000c50084726763 ONLINE
35000c50084727713 ONLINE
35000c50084728127 ONLINE
35000c50084ed0457 ONLINE
35000c50084e5eefb ONLINE
35000c50084ecae2f ONLINE
35000c50085522177 ONLINE
raidz3-4 FAULTED corrupted data
35000c500855223c7 ONLINE
35000c50085521a07 ONLINE
35000c50085595dff ONLINE
35000c500855948a3 ONLINE
35000c50084f98757 ONLINE
35000c50084f981eb ONLINE
35000c50084f8b0d7 ONLINE
35000c50084f8d7f7 ONLINE
35000c5008539d9a7 ONLINE
35000c5008552148b ONLINE
35000c50085521457 ONLINE
35000c500855212b3 ONLINE
編集:
サーバーは2xDell PowerEdge R630、コントローラーはBroardcomのDellOEMバージョンSAS HBA(SAS 9300-8e)に類似している必要があります)およびこの中の60個のディスクすべてプールはSeagateST6000NM0034です。エンクロージャはQuantaMESOSM4600Hです。
編集2:
OSはCentOS7です
ZFSはzfs-0.7.3-1.el7_4.x86_64です
結局、私はimport
にオプション-X
を使用することにしました。これは、2GB /秒で約36時間読み取ることにより、すべてのディスクを実行しました。その後、エラーメッセージは表示されず、ファイルシステムがマウントされ、再び完全にアクセスできるようになりました。これまで、データの不整合は検出されませんでした(zfs scrub
はまだ実行中です)。返信ありがとうございます。
ただし、将来の読者のために、マニュアルページの-X
オプションについて警告を渡したいと思います。このオプションはプールの状態に非常に危険である可能性があるため、最後の手段。
アップストリームにはここに多くのオプションがないようです(これは Oracle Solaris ZFSトラブルシューティングとプールリカバリ ドキュメントからのもので、zpool import -F
は、メタデータがどのように破損しているかを実際に調べるZFSの第一人者を雇うことを除いて、実際に持っている唯一のオプションです):
上記のプール回復方法でプールを回復できない場合は、バックアップコピーからプールとそのすべてのデータを復元する必要があります。
そして、OpenZFSの提携が、状況を変えるような多くのことをここにもたらしたとは思いません。そして、これは確かに悲しいニュースです。
P.S.これは、プールがその状態になった理由とは関係ありませんが、10個のディスク幅のアレイを作成すること自体が問題だと思いませんか?スペアディスクが2枚以上ある場合でも。 コールドデータなどです。
ハードウェアの詳細は何ですか?サーバー、ディスク、エンクロージャー、コントローラーのメーカーとモデル。
私はすべてのHA機能を無効にし、1つのシステムでの作業に集中します。
pcs cluster standby
または単にペースメーカーを無効にします。作業するノードにプールを手動でインポートします。
zpool import tank -d /dev/mapper/
そして結果を観察します。
また、これを行った後、dmesg
に何が表示されますか?