思考実験とD.I.Y.

D.I.Y and Gedankenexperiment

【FreeBSD13.5】メインファイルサーバーのフルメンテナンス(8):ホーム領域回復[6]データのサルベージ

ホーム領域を回復させるための事前準備が整いましたので、飛ばしたzfs/poolのデータをサルベージします。*1

  • 小生の健忘禄、兼作業記録になっていますことをお詫び申し上げます🙇‍♂️

1. 飛ばしたpool1のインポート

これまでに、飛ばしたpoolの回復処理を2回行っています😀。

1回目はテストとしてReplicateサーバーで、2回目はFreeBSD8.4なメインファイルサーバーで実施して、回復したデータは、ファイルサーバー[*2]に取り付けたReplicateストレージと、ActiveDomainコントローラ(AD-DC)に取り付けたバックアップ用ストレージ[*3]に、引き上げを行いました[*4]。

サルベージした、データをネットワーク経由で復元するのも手ですが、データ量が多いためネットワーク経由での復元は時間がかかります😅。

そこで、最後にもう1回、FreeBSD13.5な実機上でサルベージを行います😀。

(1)” -o readonly=on”オプションなしでpoolをインポートしてみる

現状では、失敗しても傷が浅いので、試しに” -o readonly=on”オプションなしで”zpool import”を試してみる事にしました🤔。

 

root@mainsv:#  zpool import -XF -m -f  -o readonly=on pool1 ; pool1をインポート。
 

” -o readonly=on”オプションなしだと無言Panicでサーバーが落ちてしまいました😵!!

(2)” -o readonly=on”オプションありでpoolをインポート

無言Panicでサーバーが落ちた後なので、”sync”が行われなかったためバックグランドで”fsck”が実行されましたので、fsck”が完了してから、これまでのpoolの回復処理と同じく、” -o readonly=on”オプションありpoolをインポートします。

 

root@mainsv:#  zpool import -XF -m -f  -o readonly=on pool1 ; pool1をインポート。
 

この後は、pool1のサルベージが完了するまで、メインファイルサーバーは連続運転です(*5)😅。

2. pool1の中身をサルベージ

(1)ホーム領域のサルベージ

まずは、ホーム領域を、再構築したpool[*6]にサルベージします。

まずは、再構築したRAID5上にホーム領域用の”ファイルシステム領域”を作成します。

root@mainsv:# zfs create pooln0/myshare    
root@mainsv:# zfs create pooln0/myshare/Home    
root@mainsv:# zfs list    

pooln0にはマウントポイントを設定していないため、作成した”ファイルシステム領域”のマウントポイントも設定されません😅。

新しく作った”ファイルシステム領域”のマウントポイントを設定します。

この段階では、トップディレクトリ”myshare”には、インポートした損傷したpool”read only"でマウントされていますので、仮のマウントポイントとして、/pooln0の下にマウントするように設定します😀。

root@mainsv:# zfs set mountpoint=/pooln0/myshare/Home pooln0/dbs/Home ;

損傷したpoolから再構築したRAID5上にホーム領域用の”ファイルシステム領域にデータをサルベージします😀。

root@mainsv:# rsync -avh /myshare/Home/ /pooln0/myshare/Home/ ;

 

(2)その他のファイルシステム領域

飛ばしたzfs/poolのRAID5ディスクを再構築するために、pool1に含まれている残りの”ファイルシステム領域”も同様に再構築したRAID5上にホーム領域用の”ファイルシステム領域にサルベージしていきます😀。

 

root@mainsv:# zfs create pooln0/myshare/Share     
root@mainsv:# zfs set  mountpoint=/pooln0/myshare/Share/ pooln0/myshare/Share    
root@mainsv:# zfs list    

 

root@mainsv:# zfs create pooln0/myshare/Share/DataBank     
root@mainsv:# zfs set mountpoint=/pooln0/myshare/Share/DataBank pooln0/myshare/Share/DataBank    
root@mainsv:# zfs list    
root@mainsv:# rsync -avh /myshare/Share/DataBank/ /pooln0/myshare/Share/DataBank/    
[..]    
root@mainsv:# zfs create pooln0/myshare/Share/DataBase    
[..]    

 

【次回に続く予定】

 

ブログランキング・にほんブログ村へにほんブログ村 IT技術ブログへ

出典・引用・備考

*1:この投稿の内容は、特定の機種並びに特定の環境での確認結果になります。同等機種や異なる環境での動作他を保証するものではありませんので、ご留意いただけます様お願いいたします。

*2:

*3:

*4:

*5:メインファイルサーバーの電源を落とすと、もう一度、poolのインポートが必要になりますので。

*6: