Debian squeezeでXen4.0からkvmへの移行

3月 8, 2012

Xen4.0からkvmへのv2vをやる必要性がでてきたので、以下その記録。
自分用メモなので、どこの環境でもこの手順できるかどうかわからないけど、スジとしては悪くないと思う。

前提条件

以下のCDというかISOイメージを用意する。

つまり、新しいマシンを買ってきてそこにkvm on sqeuuzeの環境を構築して、そこにxen4.0で動いている古いマシンからVMをv2vするための手順。
アーキテクチャはamd64なので、適時読み替えてください。

1.kvm側ホストにvmをインストールするためのストレージを設定する。
ここでは、kvm側ホストのlvm領域にvmインストール用の領域を確保する。

# lvcreate -L 10G -n example_lv vmpool01vg
Logical volume “example_lv” created
#

2.xen側ホストのVMをshutdownする。

3.xen側ホストからVMのdiskファイルをKVM側ホストにコピーする

4.KVM側ホストでvirt-managerを起動し、VMの新規作成をクリックする。

> virt-manager &

Use ISO ImageにSystemRescuCDを選択する。
インストール先は手順1で作成したlvm領域を指定する。
それ以外は普通にVMを作る

5.KVM側VMの詳細でハードウェアを追加する
ストレージを選択し、手順3でコピーした旧VMのdiskファイルを追加する。タイプはIDE Disk。

6.KVM側ホストでVMを起動する
amd64のvmを移行する場合は、SystemRescuCDのboot画面で64bit kernelを選択する

7.SystemRescuCDがbootしたら、手順1で作成したlvm領域にファイルシステムを作成する

# fdisk /dev/vda
# mkfs.ext4 /dev/vda1

8.手順7で作成したファイルシステムをmountする

# mkdir /mnt/kvm
# mount -t ext4 /dev/vda1 /mnt/kvm

9.手順3でコピーした旧VMのdiskファイルをmountする

# mkdir /mnt/xen
# mount -t ext3 /dev/sda /mnt/xen

10.旧VMの中身を新VMにコピーする

# cd /mnt/xen
# cp -a bin boot etc export home lib lib64 media mnt opt root sbin selinux srv sys tmp usr var /mnt/kvm

11.新VMのファイルシステムに/devと/procのディレクトリをつくる

# cd /mnt/kvm
# mkdir dev
# mkdir proc
# chmod 555 proc

中身はOS起動時に自動的に作成されるのでコピーしたりしないこと。

12.新VMのファイルシステムに対してchrootする

# cd /
# chroot /mnt/kvm

13.kernelをインストールする

# aptitude update
# aptitude install linux-image-2.6-amd64

14./etc/fstabを編集する

/dev/vda1 / ext3 errors=remount-ro 0 1

15.新VMをシャットダウンする。VMの設定でgrub2 boot cdからbootするように設定する。

15.grub2 cdで新VMを起動させる
grubのコマンドラインで以下のコマンドを入力し、新VMのOSをbootさせる。

grub> insmod ext2
grub> set root=(hd0,1)
grub> linux /boot/vmlinuz-2.6.32-5-amd64 ro root=/dev/vda1
grub> initrd /boot/initrd.img-2.6.32-5-amd64
grub> boot

16.新VMにログインし、grub2をインストールする

# aptitude install grub
# grub-install /dev/vda
# update-grub2

17.新VMをシャットダウンし、grub2 boot cdを取り除く。
18.新VMをbootさせ正常に起動することと、正常に機能することを確認する。

以上で全行程終わりです。

rubykaigi2011ネットワークの補足とか、LDD11fとかLDD11iとか10月 22, 2011

すっかりblogを放置していていまさらなんですがここで予告していたように、るびまで僕の書いたrubykaigi2011のネットワーク話がだいぶ前に公開されていました。 ちょっと抜けがあるので補足しておくと、外部アクセス回 [...]

日本ruby会議20117月 20, 2011

7/16 – 7/18にかけての日本Ruby会議2011に実行委員として参加してきました。 僕の役割は、日本ruby会議2011会期中の会場内ネットワークの設計・構築・運用の責任者、rubykaigi的に言う [...]

OSC2011北海道6月 15, 2011

ここ半年ぐらいみんなと一緒に準備してきたosc2011北海道を開催しました。 特に怪我など大きなトラブルも無く、今年も懇親会まで完走できたことを感謝します。 スタッフとして 例年通りネットワーク担当+当日は遊軍として、主 [...]

LOCAL DEVELOPER DAY ’11 /Winterに参加した6月 13, 2011

LOCAL DEVELOPER DAY ’11 /Winterで、しゃべってきました。 笑わせるLT講座 View more presentations from koiwa まぁ、僕に期待されているのはこういう内容でし [...]