KVMでクローニング

仮想マシン一覧から、クローニング元にする仮想マシンを確認

# virsh list --all
 Id 名前               状態
----------------------------------
  2 vm32-2               実行中
  3 vm32-3               実行中
  4 vm32-1               実行中

今回は4の vm32-1をクローニング対象とする。

クローニング対象のVMを停止

# virsh shutdown vm32-1
ドメイン vm32-1 をシャットダウンしています

停止を確認

# virsh list --all
 Id 名前               状態
----------------------------------
  2 vm32-2               実行中
  3 vm32-3               実行中
  - vm32-1               シャットオフ

クローニングを実行

# virt-clone --original=vm32-1 --name=vm32-4 --file=/var/lib/libvirt/images/vm32-4.img

vm32-1を元に、vm32-4という名前で仮想マシンを作成している。

複製した仮想マシンの仮想NICMACアドレスをメモっておく

# virsh dumpxml vm32-4

(略) # ここ

(略)

複製した仮想マシンを起動して接続する

# virsh start vm32-4
# virsh console vm32-4

初期状態では、eth0が認識できなくなり、eth1が使われているため、これをeth0に修正する

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
HWADDR="52:54:00:41:0B:11"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO=dhcp

上記のHWADDR行のMACアドレスを、先ほどメモしたMACアドレスに変更する。
今回の例では以下のように変更。

変更前

DEVICE="eth0"
HWADDR="52:54:00:41:0B:11"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO=dhcp

変更後

DEVICE="eth0"
HWADDR="00:16:36:27:12:62"
NM_CONTROLLED="no"
ONBOOT="yes"
BOOTPROTO=dhcp

最後にudevルールを修正

# vi /etc/udev/rules.d/70-persistent-net.rules

# net device () (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:41:0b:11", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# net device ()
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:36:27:12:66", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

初期状態では上記のように、eth0とeth1が設定されている。
eth1の記述を削除して、eth0のMACアドレスに先ほどと同じMACアドレスを設定する。

変更後

# net device () (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:36:27:12:62", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

ゲストOSの再起動

# reboot

再起動後、eth0の状態を確認する

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:36:27:12:62  
          inet addr:172.18.16.173  Bcast:172.18.16.255  Mask:255.255.255.0
          inet6 addr: fe80::216:36ff:fe27:1262/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:356 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:42250 (41.2 KiB)  TX bytes:1922 (1.8 KiB)

無事eth0が有効になり、IPが振られていることが確認できた。