vmware server ゲストOS から Xen Domain-U(準仮想環境) への移行手順

vmware server上のゲストOSを 準仮想環境のXen Domain-Uへ移行をする手順です。

環境

  • 移行するゲストOS環境
    • CentOS 5.2
    • ディスク 仮想ディスク 1個(LVM2 構成)
    • NIC eth0 1個(bridge)
    • 割り当てメモリ 256MByte
    • 割り当てCPU 1個
  • 移行元
    • vmware server (1.0.3)
    • CPU Intel(R) Xeon(R)
    • memory 2GByte
  • 移行先
    • CentOS 5.2
    • Xen 3.0.3
    • CPU Intel(R) Celeron(R)
    • memory 2.5GByte

準備

既存 Xen Domain-Uのカーネルバージョン調査

移行先のXen環境上で稼動しているDomain-Uのカーネルバージョンを調査します。
もし、移行先のXen環境にDomain-Uがひとつもない場合、新規で作成してから調べます。

# rpm -qa | grep kernel-xen
kernel-xen-2.6.18-92.el5
# uname -r
2.6.18-92.el5xen
#

この例では、2.6.18-92.el5xen を使用しています。

vmware server ゲストOS上作業

Xen Domain-U用カーネルインストール

準備作業で調べたXen Domain-U用カーネルを移行するゲストOS上にインストールします。

# yum install kernel-xen-2.6.18-92.el5

この例では、kernel-xen-2.6.18-92.el5 インストールしています。

Xen Domain-U用OS起動用初期ramディスク(initrd)作成

インストール時に作成されたinitrdは、Xen用のドライバモジュールが含まれていない
ので、再作成しXen用ドライバモジュールを組み込みます。

# cd /boot
# mv initrd-2.6.18-92.el5xen.img initrd-2.6.18-92.el5xen.img.org
# mkinitrd -f /boot/initrd-2.6.18-92.el5xen.img 2.6.18-92.el5xen \
--with=xenblk --with=xennet --preload=xenblk --preload=xennet -v
# echo $?                             ← ゼロとなること

rootパーティション調査

以降の作業で grub.confに追記する際使用するrootパーティションを調査します。

#  cat /etc/fstab
/dev/VG161/lv161r       /                       ext3    defaults        1 1
~~~~~~ 省略  ~~~~~~ 
#

この例では、LVM2上にrootパーティションが入っているので、「/dev/VG161/lv161r」
になっています。

grub.confの追記

Xen Domain-U環境の起動用のgrub設定を追記します。
ここではあくまで追記にとどめて、移行に失敗しても戻せるようにします。

# vi /boot/grub/grub.conf
~~~~~ 以下の様に追記します。~~~~~
title CentOS-DomU (2.6.18-92.el5xen)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-92.el5xen ro root=/dev/VG161/lv161r console=xvc0
        initrd /initrd-2.6.18-92.el5xen.img
#

ディスク使用状態調査

内蔵ディスクのデバイス名を調査します。ここで調査したデバイス名をXen Domain-U設定ファイルで使用します。

# fdisk -l

Disk /dev/sda: 1610 MB, 1610612736 bytes
255 heads, 63 sectors/track, 195 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes 

デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14         195     1461915   8e  Linux LVM
#

この例では、/dev/sdaがデバイス名となっています。

NIC(ネットワークインタフェース) 調査

NICの状態とMACアドレスを調査します。NIC/MACアドレスもXen Domain-U設定ファイルで使用します。

# ifconfig -a | grep HWaddr
eth0      Link encap:Ethernet  HWaddr 00:0C:29:02:E6:1D
#

この例では、eth0のみ使用で、MACアドレスは、「00:0C:29:02:E6:1D」です。

vmware server ゲストOS 停止

# shutdown -h now 

vmware server ホストOS 上作業

qemu-imgインストール

vmware server用のディスク形式(vmdk)からXen用ディスク形式(raw)への変換に使用する
qemu-imgをインストールします。

# yum -y install qemu
# which qemu-img
/usr/bin/qemu-img
#

ディスク形式変換

vmware server用のディスク形式(vmdk)からXen用ディスク形式(raw)への変換します。

# qemu-img convert \
 -f vmdk /var/lib/vmware/Virtual\ Machines/testmig/testmig.vmdk   \
 -O raw  /anywhere/testmig.img
# echo $?
# ls -l /anywhere/testmig.img

ディスクイメージ転送

変換したディスクイメージをXen環境にscp等を使用して転送します。

# scp -p /anywhere/testmig.img xen環境:/var/lib/xen/images/testmig.img 

Xen Domain-0 上作業

uuid作成

Domain-U用のuuidを作成します。

# uuidgen
d93e1c37-3528-45c8-ab57-d0e34b3a32c0
# 

この値を次の作業で使用するのでメモしておきます。

Domain-U用設定ファイル作成

# vi /etc/xen/testmig
name = "testmig"
builder='linux'
uuid = "d93e1c37-3528-45c8-ab57-d0e34b3a32c0"
maxmem = 256
memory = 256
vcpus = 1
bootloader = "/usr/bin/pygrub"
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
disk = [ "tap:aio:/var/lib/xen/images/testmig.img,sda,w" ]
vif = [ "mac=00:0c:29:02:e6:1d,bridge=xenbr1" ]
#

この設定は以下の値を例としています。環境に合わせて変更してください。

nametestmig任意に決めて設定
uuidd93e1c37-3528-45c8-ab57-d0e34b3a32c0uuidgenで出力された値
disk/var/lib/xen/images/testmig.imgvmware serverホストOSから転送したファイル
disksdavmwareゲストOS上で調査したデバイス名
vif00:0c:29:02:e6:1dvmwareゲストOS上で調査したMACアドレス
vifxenbr1Xen環境で設定した仮想ネットワーク

移行したDomain-U 起動

移行したDomain-Uを起動します。
起動時、grub の選択メニューが表示されるので、vmware server ゲストOS上で設定した
grub.conf の追記行を選択します。

# xm create -c testmig

OSログインのプロンプトがでればDomain-Uが起動された確認となります。
Domain-0 に戻るには、「CTRLキー + ] 」を押下します。

移行したDomain-U 確認

# xm list

起動したDomain-Uが表示されることを確認します。

移行したDomain-U上作業

ログイン確認

移行したDomain-Uにログインできることを確認します。

# xm console testmig        ← このコマンドの後、空enterキー押下します。
login: root
pasword: XXXXXXXX
# 

ディスク確認

移行したディスクが表示されることを確認します。

# fdisk -l

Disk /dev/sda: 1610 MB, 1610612736 bytes
255 heads, 63 sectors/track, 195 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14         195     1461915   8e  Linux LVM
#

ネットワークインタフェース確認

設定したネットワークインタフェースが表示され、MACアドレスが設定した値になって
いることを確認します。
ただし、ipアドレスは設定されていない状態です。(何故かは調査中です)

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0C:29:02:E6:1D
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
~~~~~~~~~~~ 省略 ~~~~~~~~~~~
#

ネットワークインタフェース設定ファイルもどし

ネットワーク設定ファイルが~.bakとなっているので、名前をもどします。

# cd /etc/sysconfig/network-scripts/
# ls -l ifcfg-eth*
-rw-r--r-- 1 root root 206 Jan  5 15:37 ifcfg-eth0.bak
# mv ifcfg-eth0.bak ifcfg-eth0
# ls -l ifcfg-eth*
-rw-r--r-- 1 root root 206 Jan  5 15:37 ifcfg-eth0
#

Domain-U再起動

# shutdown -r now 

ネットワーク疎通確認

Domain-U OS再起動後、ネットワークが通ることを確認します。

# ping xxx.xxx.xxx.xxx     ← 別サーバ等にping

grub.confの書き換え

grub.confのデフォルトが、Xen移行前となっているので書き換えます。

 # vi /boot/grub/grub.conf
 default=X
 ↑この部分を前作業で追記した行がデフォルトになるように書き換えます。

-以上-


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-01-08 (木) 10:29:03 (3625d)