ライン

ポイント:P2Vの実施を手早く完了させる

ライン

 はじめに

単純なdumpで環境をコピー

 今日は、震災の関連で出社できずに自宅待機。輪番停電もあるということですし、物理サーバーをリモートから停止する可能性があります。
しかしながら、起動はリモートからできるようにしていないので、その後はサービス停止になってしまいます。
(WOLの設定は別の機器ではやっていましたが、現機器ではやっていないです)

 …ということで、こちらから電源の起動がiLO経由でできるようにしているのは、VMware関連の機器だけでして、最悪のためにこっちにP2Vしておき、最悪必要な機能は動作できるようにしておくことにしました。
 手順としては、以下の通り。
1. VMware ESXi上に環境を準備
 ディスクはシンプロビジョニングとして、同容量としました。
FreeBSDのISOファイルをダウンロードし、fdiskの部分までを操作してスライス切りまでは準備しておきます。
2. イントラ環境にある他のFreeBSDマシンに、ssh経由でP2Vしたいマシンのdumpを取得
 自マシンに取得でもいいのですが、仮想上マシンのFreeBSDゲストがあるので、今回はそこに取得。
3. 仮想ゲストのFreeBSDマシンに上記1のディスクをマウント
 これを書き込むことで完了

 上記の備忘録を簡単に公開します。

 作業手順

VMware ESXi上に環境を準備

 一時的なものにするか、恒久的に使うかにより違うと思いますが、動作用の環境を準備します。
今回は、一時しのぎ用で作成したので、80GBを固定で確保するのではなく、必要な容量だけ都度確保するthinな方式で作成しました。
レスポンスは多少犠牲になるでしょうが、余計にディスクを使わないのでそっちにしました。

 ESXi上の操作はここでは省略。普通に設定してください。ISOファイルより起動させて、スライスを作成するところまで進めていく。
途中でやめてしまう前提なので、自動でサイズを決めたタイミングで「w」により、状態を書込を行う。
 そこまでを確認できたら、途中中断でシャットダウンしてしまいます。

一時利用マシンにデータを置く

 さて、サーバ機器で動作しているFreeBSDサーバのバックアップを開始します。
 以前にも書いてあるように、今回このタイミングだけ rootにてssh接続できるように設定を変更しておきます。
sshd_config に、暫定的に

 PermitRootLogin yes 

として、sshdを再起動しておきます。

 暫定的なので、/tmp でいいので、それぞれのスライスごとにデータを取得します。

# dump -0aLf - /dev/mirror/gm0s1a | gzip -2| ssh root@192.168.1.61 "dd of=/tmp/dump-root.gz"
# dump -0aLf - /dev/mirror/gm0s1e | gzip -2| ssh root@192.168.1.61 "dd of=/tmp/dump-tmp.gz"
# dump -0aLf - /dev/mirror/gm0s1d | gzip -2| ssh root@192.168.1.61 "dd of=/tmp/dump-var.gz"
# dump -0aLf - /dev/mirror/gm0s1f  | gzip -2| ssh root@192.168.1.61 "dd of=/tmp/dump-usr.gz"

とかにしてみました。
gmirrorのRAID 1になっている箇所は、それぞれの環境により ad0 だったりda0 だったりするでしょうが、置き換えて考えて参照ください。
 適当な時間でバックアップは終わっていました。(1時間半程度)

仮想ゲストをシャットダウンし、今回作成した仮想用のディスクをマウント

 ESXiの編集で、ディスクを追加(既存)で追加し、起動を行う。
ブート時に、da1 が見えて来るだけで、そのまま普通にあがったはず。
 mount でディスクをマウントして利用することにします。

# mount /dev/da1s1a /mnt
# mount /dev/da1s1d /mnt/var
# mount /dev/da1s1f /mnt/usr
# mount /dev/da1s1e /mnt/tmp

 何事もなく、マウントできたと思います。

 /tmp には先ほど取得している dump-〜 というファイルがあるので、これを下記戻しすることにしましょう。

# cd /mnt/tmp && gzip -dc < /tmp/dump-tmp.gz | restore -rf -
# cd /mnt && gzip -dc < /tmp/dump-root.gz | restore -rf -
# cd /mnt/var && gzip -dc < /tmp/dump-var.gz | restore -rf -
# cd /mnt/usr && gzip -dc < /tmp/dump-usr.gz | restore -rf -

のような操作を実施しました。 /tmpの下も戻す必要あるんかいな、という話はありますが。
 1時間以内で、restoreは完了しました。
新しいマシン上では、gmirror環境ではない状態の物で構築予定なので、viやeeなどのエディタにより、/mnt/etc/fstab の内容を書き換えます。

 再度、仮想マシンをシャットダウンし、落ちたタイミングでESXi 上から、追加したディスクを削除(切り離し)します。
そして、元マシン側は起動し、sshd_config(ssh関連)と、/tmp以下の不要ファイルを削除して復旧させます。

新マシンでの確認

 後は、最初に作成したゲストを起動するだけです。
IPアドレスのバッティングがあると面倒なので、編集のネットワークにてネットから切り離して起動するようにします。
 正常に起動してくることを確認したら、hosts rc.conf resolv.conf などを修正してイントラ内でのネットアドレスでアクセスできるように修正しておきます。

 後は、必要になったらIPアドレスなどを変更すれば切り替えができます。

感想

 非常に簡単に、P2Vが完了できました。もっとツールで簡単に済ませたい気持ちもありますが、こんなで終わるなら簡単だと思いました。


【改訂履歴】作成:2011/03/14
作成

【参照ページ】

(入力まだ)

ioPLAZA【アイ・オー・データ直販サイト】

 

Copyright © 1996,1997-2006,2007- by F.Kimura,