物理マシンを仮想化する事をP2V (Physical to Virtual)というらしい。
古い物理のLinuxサーバーを仮想化してVMware ESXiに集約したい。
イメージ
ネットワーク的に接続が可能か確認しておく
また物理サーバーへはrootでログインできる必要があると思います。
VMware vCenter Converter をインストール
ダウンロード
http://www.vmware.com/jp/products/converter
サーバーを操作しているWindows機にvCenter Converterをインストールします
VMware vCenter Converter でP2V
特に意識せず設定すれば問題なくいけました。
- VMware vCenter Converterを起動
- Convert machine を選択
- [Source System] Source typeをPowerd-on machineにして remote machine
- [Destination System] VMware ESXiの情報を入れる
- [Destination Virtual Machine] VMWare ESXiのインスタンスリストが見れる。仮想サーバー名等を設定
- [Destination Location] 仮想ディスクの保存先のdatastoreなどを選択
最後まで設定したらConvertが開始される。
Statusが完了になったらESXi側に変換した仮想マシンができてる。
変換中物理サーバーのプロセスを確認すると
tar --one-file-system --sparse -C /usr -cf - .
というコマンドが走っていたので、実際の移行では整合性や負荷について考慮する必要があると思います。(極力サービスを停止して行う、など)
ここで「一般的なシステム エラーが発生しました」となる場合、クライアントからESXiサーバーにSSHできなかったり、ESXiのサーバーから物理マシンにSSHできなかったりの可能性があるので確認する。
また、LVSボリュームの場合はConvert時の設定でターゲットレイアウトを基本に変換する必要がある。
(参考)
http://www.umasugi.com/~h070017/201205060001_ja.html
基本的にはこれでできた仮想マシンが起動すれば終わり。
Kernel Panicで起動しない場合はinitrd.imgを再作成
LVSの変換を忘れたり、それ以外でもなぜかKernel Panicが起きて起動しない時があった。
エラー時のメッセージは
* Mounting /dev/sda5 on /sysroot
mount: mounting /dev/sda5 on /sysroot failed: No such file or directory
mkmod: /sysroot/dev/console : No such file or directory
mkmod: /sysroot/dev/null : No such file or directory
mkmod: /sysroot/dev/zero : No such file or directory
* Switching / to /sysroot
switch_root: bad newroot /sysroot
Kernel panic - not syncing: Attempted to kill init!
こういうときはinitrd.imgを再作成する必要があるらしい。
以下を参考に作業を行う
https://www.centos.org/forums/viewtopic.php?t=24563
現在のディスクではKernel Panicで操作できないのでLinux系LiveCDで仮想マシンを起動してディスクを操作します。
- vSphere Clientで作られた仮想マシンのプロパティを表示。
- オプション -> 起動オプション -> 強制的にBIOSセットアップ にチェック
- Linux系LiveCDをデバイスから選択する
- 再起動。
- BIOS画面が立ち上がったらbootの設定をCDにして起動。
- Ubuntuが起動したらターミナルを起動して操作。
今回はUbuntuのLive CDでブートしました。
ちなみに今回の移行対象物理サーバーはこんな感じのパーティション
/dev/sda5 /
/dev/sda1 /boot
/dev/sda7 /home
/dev/sda2 /usr
/dev/sda3 /var
マウントポイントを作成
mkdir /mnt/root
hddデータをマウント
mount /dev/sda5 /mnt/root
mount /dev/sda7 /mnt/root/home
mount /dev/sda2 /mnt/root/usr
mount /dev/sda3 /mnt/root/var
mount --bind /dev /mnt/root/dev
mount -t proc proc /mnt/root/proc
mount -t sysfs sysfs /mnt/root/sys
chrootしてlabelが張り直しフラグをたてる
chroot /mnt/root
touch .autorelabel
initrdの再作成。こんなコマンドです。
mkinitramfs -o [出力パス] [カーネルバージョン]
(例)
mkinitramfs -o /boot/initrd.img-2.6.26-2-686 2.6.26-2-686
第2引数がなければ uname -rの結果を入り、Live CDのカーネルバージョンになってしまうので注意。
無事にinitrd.imgが再作成できたら再起動で正常にブートできる。(はず)
これでもカーネルパニックする場合
- fstab grub.confの内容は見る
- hdaでsdaになってたりしないか
- 仮想マシンのHDDの設定をSCSIからIDEに変更してみたりする
似たエントリ
VMware vCenter Converterで5.5環境にP2Vしてみた
http://qiita.com/mnagaku/items/3f0b3285328b5072493d