Debian squeezeでXen4.0からkvmへの移行
Xen4.0からkvmへのv2vをやる必要性がでてきたので、以下その記録。
自分用メモなので、どこの環境でもこの手順できるかどうかわからないけど、スジとしては悪くないと思う。
前提条件
- kvmのインストールと設定は終わってる
- Xen側ホストのOSはDebian Squeeze
- KVM側ホストのOSもDebian Squeeze
- 移行対象のVMのOSも当然Debian Squeeze
- Xen側ホストとKVM側ホストは別サーバである
以下のCDというかISOイメージを用意する。
- SystemRescueCD(参考:http://www.sysresccd.org/)
- GRUB2 boot CD(参考:http://oasis.halfmoon.jp/mw/index.php?title=BootCD)
つまり、新しいマシンを買ってきてそこに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 まぁ、僕に期待されているのはこういう内容でし [...]