Dual Boot: 超高速リカバリ2006年03月18日 08時52分18秒

前にも軽く書いたと思うが、最近設定するシステムは、必ず Dual Boot にしている。FreeBSD の、である。ほとんどの場合 Dual Boot と言ったら、複数の Linux なり *BSD なりを入れる事が多い。

ここでは、全く同じシステムを二つ用意しておき、常に同期しておくことにより何らかの障害があったときに、瞬時にバックアップシステムに戻すことが出来る。

プロセス自身の高速化も高速化の一部であるが、停止時間を最小限に抑えるようにするのも、また、違った意味での高速化である。

バックアップのリストアは膨大な IO を伴うので、止まってからでは時間がかかる。そこで、稼働中にリストアをしておくことで、止まったときに備えるのである。一種の保険である。 止まったときの代償を考えると安く、高速化は著しい。なにせ、再起動と同等の早さなのだから。2 年ぐらい前に OpenBSD を使うのを止めた理由が起動時の fsck のせいだった。30 分も待てなくなったのである。

全く同じ大きさのスライスを 2 つ以上用意し、全く同じにパーティションを分けるのである。全く同じでなくても、困ることは少ないが、dump/restore 等で同期を取るので、片方だけ disk full だと困ることになる。 /usr は background fsck の為に分ける。/var 等のログは運用次第では両方から同じパーティションを使った方がいいかも。うちでログはほとんど関係ないので別になっているが。

運用としては、常に二つのブートスライスを同期しておく。それだけ。変更する度に dump で差分バックアップを取るのが一番早い。先に全く同じ構成にしておくと言った理由は、/etc/fstab の変更を最小限にするためである。スライス番号を変えるだけでよくなる。一時、違う構成だった時があったが、混乱の元になっただけだった。

そして、システムの更新の時に片方でまず、試すのである。稼働中のものを更新してもいいし、バックアップの方を更新してもいい。重要な点は、この方法を取ると何らかの問題があったときに、もう一つに切替えるだけですぐに前の状態に戻るのである。システムや ports の更新の時に、必ず成功するとは限らないので重宝するときがある。個人的な経験では、失敗したのは gnome の大型更新の時ぐらいだったが。