XenServerからHyper-Vへ

XenServerの仮想マシンをHyper-Vへ移行する(XenServer2Hyper-V)

やっている人がいないのか、全く情報がなかった。
XenServerへ行き着いたが最後、ここが終着駅のような感じがしていました。

しかしやっと、XenServerからHyper-Vへ仮想マシンを移行することが出来ました。
その時の手順をここに記載しておこうと思います。

まともな手段とは言い難いため、試す人は自己責任でお願いします。

うまくいった、もっといい方法がある、という情報をお持ちの方は
教えていただけると幸いです。

手順

環境

  • CentOS5.3(x86_64)
  • ディスクパーティションはCentOSのデフォルトのまま
  • XenServer5.0 から Hyper-V 2.0 へ

通常カーネルのチェック

まず移行元のマシンにxenではない通常カーネルがインストールされているか確認する。
もし入っていない場合は、yum install kernelなどで通常カーネルをインストールする。

データ領域の抽出

LVMを使っているのでスナップショットをとる。
・・・しかし、ディスク全体をすでに使用中で割り当てられなかったので強引にやります。

/backupはNFSでマウントした別マシンの共有です。ここにいったんデータを書き出します。
本来はスナップショットをとって、それに対してこのddでのバックアップをとるのが正しいです。

移行先の準備

とりあえずデフォルトのまま CentOSをインストールしておきます。消しちゃうけど。
その後、CentOSのディスクを使ってrescueモードで起動。起動時の linux rescue とコマンド打てばOK

そして、ネットワーク有効にしておきます。
/mnt/sysimageにHDDの状態がマウントされる設定は無効にしておきます。

データを書き戻す

復元先である、/dev/hda1,/dev/mapper/VolGroup00-LogVol00が見えていることを確認してください。
もしなければ、ディスク内容がsysimageにマウントされる設定にして、
手動で、/mnt/sysimage をアンマウントさせてください。

これで、強引に現在のLVMの中身に書き戻しを行います。
いったんここで再起動します。

MBRの書き込み(Grub設定)

続いて、MBRの再設定を行います。
再度CentOSのレスキューモードで起動します。
今度は、sysimageにHDD内容がマウントされるようにします。

まず、XenServerの上で動いていたため、デバイスが /dev/xvdaとなっています。
このままだと、MBRの設定も出来ないので、修正します。

この中にデバイス名で、/dev/xvdaが記載されています。
これを今回のデバイスである /dev/hdaに変更します。*1
その後、MBRの書き込みを実行します。

そして、CentOSのディスクを取り出して、マシンを再起動します。
grubのメニューが立ち上がってくるので、通常カーネルを選択して起動させます。

起動したものの

各サービスが起動しはじめて、いい感じに起動完了しそうなのですが、
途中で進まなくなります。
そのときのエラーの様子はこのような感じに。

とりあえずシングルユーザーモードで起動します。
grubで起動パラメータを single を与えて起動させます。

そして、inittabを変更

そして次の記載がある行をコメントアウト、コメント解除します。

この部分を以下のように書き換えます。

起動パラメータも修正してしまいます。
vi /boot/grub/grub.conf

そして、再起動します。

うまくいけば、これでログイン可能なコンソール状態になります。

normal_startup.jpg

*1 : これを忘れると、”does not have any corresponding BIOS drive”というエラーになる。

*2 : VMwareでは有名な時刻ずれ対処の方法です. Hyper-Vでも有効そう

シェアする

  • このエントリーをはてなブックマークに追加

フォローする