web-dev-qa-db-ja.com

zpoolはプールのすべてのデータデバイスを忘れました:それらを再びオンラインにする方法は?

私のDebianサーバーはLinux上でZFSを実行しています。今日は、ソフトウェアのアップグレードのために2回再起動する必要がありました。 ZFSが0.6.4-1.2-1-wheezyから0.6.5.2-2-wheezyに更新されたため、最初の再起動が完了しました。その後、プール内のホームディレクトリにアクセスすると問題なく動作しました。最後の再起動後、zpoolはプールのインポートに失敗します。

# zpool import
   pool: storage
     id: 4490463110120864267
  state: FAULTED
 status: The pool metadata is corrupted.
 action: The pool cannot be imported due to damaged devices or data.
   see: http://zfsonlinux.org/msg/ZFS-8000-72
 config:

        storage      FAULTED  corrupted data
        logs
          sda3       ONLINE
# zpool import storage
cannot import 'storage': I/O error
        Destroy and re-create the pool from
        a backup source.
# zpool import -F storage
cannot import 'storage': one or more devices is currently unavailable

完全なプールがありません。次のようになります。

    storage
      mirror
        scsi-SATA_WDC_WD30EFRX-68_WD-WMC1T2132687-part1
        scsi-SATA_WDC_WD30EFRX-68_WD-WMC1T2194187-part1

Zpoolにデータパーティションを使用するように指示するにはどうすればよいですか?ディスクが応答するのではないかと心配しているので、このプールまたは新しいプールにディスクを接続しようとしています。それらのメタデータはクリアされます。

編集/更新:

  • おそらく重要です:aptのhistory.logとwtmpの両方を再読み込みした後、最初のZFS更新関連の再起動後にホームディレクトリにアクセスしたかどうかはわからないです。その間、以前のバージョンに戻ろうとしましたが、最新バージョン以外のZFSパッケージが見つかりません。
  • データ用に2台のHDD(sdb、sdc)、GPTパーティションがあり、両方のメインパーティションが/ dev/disk/by-idを使用してZFS上のミラープールとして設定されていました。デバイスsdaは、DebianがインストールされたSSDであり、一部のVMスペースと、別のパーティション/ dev/sda3にあるSLOG/ZILです。すべてのディスクはメインボードに直接接続されています。
  • 上記のzfsonlinx-URLは、「使用可能なプールがありません」と応答する「zpool clear-Fstorage」も示しています。
1
ChristianM

定期的な再起動中にzpoolの損失が発生したという事実を考えると、少なくともzpoolのエクスポートが行われることを期待していました。そして、たとえそれが汚れてシャットダウンされたとしても、私はコピーの救助作業をすることを好みます。そこで、システムに大きなHDDを追加し(デバイスsdbとして追加されました-udevに感謝します)、障害が発生したドライブのzfsパーティションと同じサイズの2つのパーティションでフォーマットしました。これはミラーリングされたプールだったので、両方の古いパーティションを新しいパーティションにコピーしました。

dd if=/dev/disk/by-id/scsi-SATA_WDC_WD30EFRX-68_WD-WMC1T2132687-part1 /dev/sdb1 bs=104800
dd if=/dev/disk/by-id/scsi-SATA_WDC_WD30EFRX-68_WD-WMC1T2194187-part1 /dev/sdb2 bs=104800

今、私は2つの同一のミラーを備えたシステムを持っていました。

# zpool import 
   pool: storage
     id: 4490463110120864267
  state: ONLINE
 status: Some supported features are not enabled on the pool.
 action: The pool can be imported using its name or numeric identifier, though
       some features will not be available without an explicit zpool upgrade'.
 config:

        storage                                             ONLINE
          mirror-0                                          ONLINE
            sdb1                                            ONLINE
            ata-WDC_WD30EFRX-68AX9N0_WD-WMC1T2194187-part1  ONLINE
        logs
          sda3                                              ONLINE
# zpool import storage
#

やったー!

その間、データを2回バックアップし、完全に新しいzpoolへの復元が進行中です。

1
ChristianM

元のプール作成で/ dev/disk/by-idを指定したため、プールがディスクを見つけられない場合があります。 slogデバイス認識される方法に注意してください...

プールインポートフラグがあります、-d。これにより、インポートプロセスを特定のディレクトリにポイントして、デバイスを照会できます。良いアドバイス ここ

試してください:

zpool import -F -d /dev/disk/by-id storage
0
ewwhite