SSブログ

FreeBSD 12.0Rインストール その4 & gmirror設定メモ (FreeBSD 12.0R、2019/04/23) [FreeBSD]

大切なサーバであれば、きちんと動作確認を行っておくべきです。何かあった場合に、泣くのは自分ですからね。
20190423_ScreenShot09.jpeg

私のディスク構成は上記の通りとなっています。
ここで“ディスクの解除”を行うと、ディスクの中身を保持したままアンマウントを行うことができます。そして、“ディスクの接続”を行うと元通りになります。論理的にディスクの着脱ができると思って下さい。

これを利用して、疑似障害試験を行います。期待値は下記とします。
・ちゃんとBIOSブートすること
・FreeBSDのブート画面がでること
最終的なOSの起動まで確認できるのがベストですが、ファイルシステムのマウントまで待ってしまうと、ミラーリングを構成するディスクに不整合(特にinode)が発生してしまうため、1回のテスト毎に何時間もかかるRAID同期を行う必要があります。(※論理不整合が発生すると、カーネルパニックになります)
今回はそこまで求めていないので、FreeBSDのブート画面が出れば強制電源OFFにし、ファイルシステムに影響が出ないようにします。どうしてもOSブートまでやりたい場合、ファイルシステムをRead-Onlyにしてマウントすればいいのかもしれませんが、どうなるか分かりません。(未実証)

まずは、Disk 1 であるsdaをマウント解除して起動させます。って、早速来ました起動失敗です。
20190422_ScreenShot08.jpeg
gptboot: invalid primary GPT header
gptboot: invalid backup GPT header
gptboot: unable to load GPT

最初はハイハイ直しますよと軽く考えていたのですが、実はこれはかなり深刻な問題で、下記をやりましたが全部ダメでした。
・Live CDからのgpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1
・freebsd-bootパーティーションだけをgmirrorから外す
・freebsd-bootパーティーションだけをgmirrorから外して、Live CDからgpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1
・freebsd-bootパーティーションを削除して、再度作り直す

実はこの問題、1年以上も前に下記でバグ報告が上がっているものと同じの問題のようです。
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=222425

最終的にはワークアラウンドにある、下記のおまじないで直りました。つまり、どちらのディスクを外しても、FreeBSDのブート画面が表示されるようになりました。
ddによる上書きで直るということは、致命的な論理不具合を抱えているのでしょうか。早く解消されるといいですね。
gpart backup ada0 | gpart restore -F ada1
dd if=/dev/ada0 of=/dev/ada1 bs=512 count=40
gpart recover ada1
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1



タグ:gmirror
nice!(0)  コメント(0) 
共通テーマ:日記・雑感

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。