ZFS仮復旧できたみたい

FreeBSD,NAS

壊れたZFSの復旧作業をしています。

復旧と言っても、壊れてしまったファイルその物を復旧させるのではなく、ファイルシステムが異常になっている状況をなんとかしたいと言う事です。しかも、「なんとかする」と言っても、ファイルシステム中の壊れている所を直すのではなく、ファイルシステム自体を破棄して、新たに作り直すだけです。

と言っても、結構面倒でした。ファイルシステムが異常になっていると、zfs send/receiveもできなくなってしまう様なのです。

それで、新しいpool(ypool)を作って、壊れたpool(upool)から必要なファイルをrsync -aAXでコピーし、それを新規に作り直したpool(upool)に書き戻すと言う作業をしています。

  1. 新しいpool(ypool)作成(zpool create ypool)
  2. ファイルコピー(rsync -aAx (upool) (ypool)
  3. 壊れたpool(upool)のマウント解除
  4. 壊れたpool(upool)破棄(zpool destroy upool)
  5. 新規にpool(upool)作成(zpool create upool)
  6. ypoolのsnapshot作成(zfs snapshot ypool@snap)
  7. ypoolからupoolへのコピー(zfs send ypool@snap | zfs receive upool)
  8. シングルユーザモードで起動
  9. ypoolのマウントポイント削除
  10. マルチユーザモードに移行

ypoolのマウントポイント削除だけ、今までにやった事がなかったので、記録に残しておきます。

ypoolのマウントポイント削除

あるマウントポイントだけ削除するには、次の方法でできます。

# zfs set mountpoint=none ypool/data

ところが、ypoolの中がいくつものファイルシステムでできていて、それらのmountpointを一括して消したい時には、次の様にします。

# zfs inherit -r mountpoint ypool
# zfs set mountpoint=none ypool

参考にしたのは、次のページです。

この結果、新しいpool(作り直したupool)で、問題なく動作しています。

後は、他のHDDにあるバックアップを書き戻すだけかな。

だんだん、出口に近づいてきました。

Posted by お市のかた