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という名前で仮想マシンを作成している。
複製した仮想マシンの仮想NICのMACアドレスをメモっておく
# 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が振られていることが確認できた。