ライン

ポイント:ddよりdump/restoreが速い

ライン

 はじめに

VMware vCenter Converter Standalone ClientはFreeBSDは対象外

 FreeBSD がマイナーなので、移行ツール類が使えません。
どうやって、物理マシンからの移行を実施しようかと思いましたが、単純にddまたはdumpにて移行することにしました。

 今回は、現行マシンのミラー(gmirror)している片系を引き抜いてきたものを、ローカルのマシンのハードディスクと入れ替え、VMware ESXi 4.1 の環境の横に置きました。
 単純に、1000-baseTな環境で実施したかったためで、異なるネット越しに実施しても大丈夫です。

 たいしたことでも無いのですが、後で自分がみたいと思うメモなので備忘録を公開します。

 P2V移行作業

ESXi の環境設定

 まず、移行される側の環境をVMware ESXi側に作成しました。

 途中省略しますが、普通に仮想ディスクを80-170GB程度で作成し、CPUは2つ、メモリーは2GBという感じにしてみました。

 この環境は、移行が終わるまで取っておきます。

 さて、移行用の環境は、既存のESXi上にいるゲストOSのFreeBSDを利用します。
ここでは、上記で作成したハードディスクを「ハードディスク2」として認識させるところが重要です。
「追加」→ハードディスク→「既存の仮想ディスクを使用」→既存のディスクの選択…のような流れです。

 この状態で「終了」して、後はマシンを起動します。

一時利用マシンでディスクの準備

 作業のマシンに、移行用のハードディスクをつけた状態ということになります。
sysinstall で「da1」のディスクスライスの設定を行います。
 既存の通りである必要性はないので、必要な大きさにします。
ただし、ここでは"/" "/tmp" "/var" "/usr" のようなラベルにはできません。一時利用マシン上に存在しているからです。
 普通に、"/mnt" "/mnt/tmp" "/mnt/var" "/mnt/usr" などでいいでしょう。w で書き込んだところで、sysinstallは終了します。

 この状態で、既にmountされている状態にあることを確認します。(mountコマンドなどを打てばいいですね)

 次に、sshdの設定を行っておきます。
…というのは、ssh経由でデータを転送するためで、この作業の間だけ rootでの接続許可を Yesにしたいのです。
 /etc/ssh/sshd_config中にある PermitRootLogin yes を有効にして、sshdを再起動しておきます。
移行作業が終わったら、上記の設定は戻しておいてください。このページの中では戻しの設定は書きませんので。

 これで準備は終わります。

移行の開始

 旧マシンを起動しておきます。
わたしの場合、実環境と違うネットワークになったので、IPアドレスの変更や余計なデーモンの起動を止めるように rc.confを修正しています。
オリジナルを残しておき、後で修正できるようにしておいてください。
 ちなみに、これもページの中では書きませんが、移行完了後にIPアドレスの箇所などは自分で修正してください。

# ifconfig
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:0c:29:05:1a:da
        inet 192.168.0.5 netmask 0xffffff00 broadcast 192.168.0.255
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000

em0 がVMwareのNICとして見えているものです。rc.confの該当箇所を直す必要があるわけです。

 さて、移行を開始しましょう。
旧マシン側にroot権限でログインして作業をします。

# dump -0aLf - /dev/mirror/gm0s1a | ssh root@192.168.0.5 "cd /mnt && cat | restore -rf -"
# dump -0aLf - /dev/mirror/gm0s1e | ssh root@192.168.0.5 "cd /mnt/tmp && cat | restore -rf -"
# dump -0aLf - /dev/mirror/gm0s1d | ssh root@192.168.0.5 "cd /mnt/var && cat | restore -rf -"
# dump -0aLf - /dev/mirror/gm0s1f | ssh root@192.168.0.5 "cd /mnt/usr && cat | restore -rf -"

などとやって、移行を完了させます。
/dev/mirror/gm0s1a などはgmirrorの形なので、通常は /dev/ad0s1a などになっていると思います。
ご自分の環境にあった形で投入してください。
途中で、パスワードが聞かれますが、表示文字で見えなくなっているかも知れません。
文字表示が止まったタイミングで空エンターして password: のプロンプトを表示させて、相手先のrootのパスワードを入力します。

 実は、ddでも同様にネット超えで実施したのですが、使用量にかかわらず全部転送するので時間が思うよりかかったのでやめました。
dump/restoreはシンプルでいいです。

 コピーが完了したら、ほとんど終わりです。
旧マシンは電源offの手順(shutdown -p now)して終了。
 一時利用マシン側に戻ります。どうでしょうか。/mnt 以下に欲しいデータが見えているのではないでしょうか。
上記に少し書きましたが、ここでやっておく作業があります。
 /mnt/etc/fstab にこれからの形の fstabに変更しておく必要があるのです。

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/da0s1b             none            swap    sw              0       0
/dev/da0s1a             /               ufs     rw              1       1
/dev/da0s1e             /tmp            ufs     rw              2       2
/dev/da0s1f             /usr            ufs     rw              2       2
/dev/da0s1d             /var            ufs     rw              2       2
/dev/acd0               /cdrom          cd9660  ro,noauto       0       0

要するに、上記のようになればいいわけですが、私の場合は元環境が gmirrorで動いていたのでそうなっていないという差があります。
シリアルATAのハードディスクを使っている人なら、ad0 → da0 のような修正になるかと思います。
 ここでミスすると、ブート時にシングルユーザモードに落ちますので注意しましょう。
(まぁ、それでも、一時利用マシン側で立ち上げて修正し直してもいいのですが)
 わたしはまんまと修正ミスがあって、

# mount -u /
# mount /dev/da0s1a /usr
# vi /etc/fstab

みたいな作業が必要でした。

 作業が終わったら、このマシンを終了し、さきほど作成した新しい側のESXiゲスト側を起動します

新マシンで確認

 普通の顔をしてあがってきたと思います。適当に直したタイミングでスナップショットを切っておき、更にいろいろいじり倒してみるといいと思います。本番の環境もどきでリハーサルのように環境構築ができると思います。

感想

 最初はギガハブがなかったので、作業を中断したのです。
100-BASE-TXだとやっぱりきついなって思いました。
 上記には書いていないのですが、旧マシン側は元々 100-BASE-TXだったのですが、新環境になって 1000BASE-T に変更して使う設定にしたのです。この部分を簡単にAUTOで認識させたら、全然スピードが出ない。20KB/sぐらいだったでしょうか。
 これを以下のような記述に付け加えたら、やっと速度が出るようになりました。
20MB/s 程度にはなったので安心しました。

 ifconfig_bge0="inet 192.168.0.7/24 media 1000baseT  mediaopt full-duplex"

 新しいゲストOSとして起動して安心しました。いろんなマシンで環境をESXi上に持っておきたいです。
ある意味でのバックアップにもなりますし。
 移行用のツールがないので、こんなで実施されるのは皆同じと思いますが、どの程度の時間で完了できるかを確認できたのが今回把握できて良かったです。


【改訂履歴】作成:2010/11/13
更新

【参照ページ】

(入力まだ)

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

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