web-dev-qa-db-ja.com

ZFSはプール状態FAULTEDを示していますが、すべてのデバイスはオンラインです。どうすればデータを回復できますか?

私たちの100TB NASは、停電のために予期せず電源がオフになりました。電源を入れ直した後、100TBのzpool「プロジェクト」は状態「FAULTED」でアンマウントされました。

私はもう試した zpool import -fFX、約20時間実行されていましたが、何も起こりませんでした。 kill -9とrebootコマンドが機能しなかったため、リセットボタンを使用してサーバーを再起動しました。

いくつかの出力:

[root@Projects_new] ~# zpool import
   pool: projects
     id: 8560768094429092391
  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://www.Sun.com/msg/ZFS-8000-72
 config:

    projects                                      FAULTED  corrupted data
      gptid/49d49544-5a47-11e2-b516-00259095142c  ONLINE    ok
      gptid/49f3c886-5a47-11e2-b516-00259095142c  ONLINE    ok
      gptid/4a1052aa-5a47-11e2-b516-00259095142c  ONLINE    ok
      gptid/4a32bf15-5a47-11e2-b516-00259095142c  ONLINE    ok
      gptid/4a9b51d3-5a47-11e2-b516-00259095142c  ONLINE    ok
      gptid/4b2ee18b-5a47-11e2-b516-00259095142c  ONLINE    ok

また、文書化されていないオプションを見つけました:zpool import -V projects、その後zpoolがインポートされましたが、まだアクセスできません:

[root@Projects_new] ~/zpool_restore# zpool status
  pool: projects
 state: FAULTED
status: The pool metadata is corrupted and the pool cannot be opened.
action: Destroy and re-create the pool from
    a backup source.
   see: http://www.Sun.com/msg/ZFS-8000-72
  scan: none requested
config:

    NAME                                          STATE     READ WRITE CKSUM
    projects                                      FAULTED      0     0     1
      gptid/49d49544-5a47-11e2-b516-00259095142c  ONLINE       0     0     0
      gptid/49f3c886-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
      gptid/4a1052aa-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
      gptid/4a32bf15-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
      gptid/4a9b51d3-5a47-11e2-b516-00259095142c  ONLINE       0     0     0
      gptid/4b2ee18b-5a47-11e2-b516-00259095142c  ONLINE       0     0     0

この状態では、zpool clear -f projects「I/Oエラー」を出力します。

/ dev/gptid/4 *はRAID0デバイスです:4対4のAdaptecコントローラーと2対1のLSIコントローラー。

Zpoolをインポートして修正し、データを保存する方法はありますか?

5
NAME                                          STATE     READ WRITE CKSUM
projects                                      FAULTED      0     0     1
  gptid/49d49544-5a47-11e2-b516-00259095142c  ONLINE       0     0     0
  gptid/49f3c886-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
  gptid/4a1052aa-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
  gptid/4a32bf15-5a47-11e2-b516-00259095142c  ONLINE       0     0     2
  gptid/4a9b51d3-5a47-11e2-b516-00259095142c  ONLINE       0     0     0
  gptid/4b2ee18b-5a47-11e2-b516-00259095142c  ONLINE       0     0     0

/ dev/gptid/4 *はRAID0デバイスです:4対4のAdaptecコントローラーと2対1のLSIコントローラー。

それで、私は何かをまっすぐにすることから始めましょう。冗長性のないストライプの6つのデバイス(ZFSで見られる)で構成されるZFSプールがあります。これらのそれぞれは、冗長性のないストライプ化された、未知の数の物理ストレージデバイスで構成されています。控えめな見積もりによると、スピナーは20〜25のオーダーで、おそらくそれ以上セットアップが完全に機能する必要があります安定しています。物理ディスクの障害はせいぜい無相関であり、実際には共有環境でバッチで発生する傾向があることを忘れないでください(1つのディスクに障害が発生した場合、1つまたはより多くの他のものは限界であり、単に再銀化のストレスの下で失敗するかもしれません)。これは、25個のディスクがある場合、障害の確率が単一のディスクの25倍になるという最良のシナリオになります。これは、それぞれ25個のディスクがあり、単独の場合と同じ障害の確率があるためです。

現在、これらのドライブ(または場合によってはコントローラー)の一部で何らかの問題が発生しているようですが、それが少しずつ発生し、ZFSによって報告されています。

その時点で、私の質問は多かれ少なかれ「ZFSに何を期待しますか?」です。残念ながら、それに対する答えとあなたの質問の両方に対する答えは、いいえ、現時点でやるべきことはそれほど多くありません。

ZFSは魔法ではありません。さまざまな種類の障害に対して非常に回復力がありますが、一度壊れると、見事な方法でそうする傾向があります。冗長機能を使用することで、破損のリスクを減らすことができます。冗長機能は、何らかの理由で実行しないことを選択しました。その複雑なオンディスクフォーマットはまた、リカバリを例えばよりもはるかに複雑にします。 UFS、NTFSまたはext3/4。

zpool import -fFXがプールを使用可能な状態に戻さない場合、最善の策は、プールを適切な方法で再作成し、最新のバックアップを復元することです。これには、コントローラーまたは電源装置全体に障害が発生してもプール全体に障害が発生しないように、冗長性を追加することが含まれます。また、生のディスクをJBOD方式でZFSに公開するようにコントローラーを構成し、ZFSの冗長性サポートを使用してストレージに冗長性を追加します。これにより、ZFSは、データを配置する場所と、障害のリスクを軽減するために冗長性を調整する方法について決定を下すことができます。 (たとえば、メタデータを複数の独立したvdevにコピーすることで、メタデータを冗長的に保存できます。)

2
a CVn