元VMからクローンVMを作成する。
わざわざ必要なVMの数だけインストールするのは面倒なので。
[ 手順 ]
1. クローン元VMの準備
2. virt-clone でクローンVMを作成
3. 作成されたクローンVMか起動するかチェック
補足: クローン元のインターフェースが eth0 なのにクローンしたVM のそれが eth1 になる件
[ ログ ]
1. クローン元のVMの準備
今回は VM ubuntu をクローン元とする。VMは shutdown してあること。
root@hat1:~# virsh list --all
Id 名前 状態
----------------------------------
- centos5-1 シャットオフ
- centos5-1-clone シャットオフ
- ubuntu シャットオフ
- WANem-VM シャットオフ
クローン元VM名: ubuntu
クローン元イメージ : /var/lib/libvirt/images/ubuntu-kvm/tmp6oUBpz.qcow2
クローン元xml : /etc/libvirt/qemu/ubuntu.xml
2. virt-clone でクローンVMを作成
-o クローン元VM名 ( virsh list --all で表示されるVM名 )
-n コピー先VM名
-f コピー先イメージ保存場所
root@hat1:~# virt-clone -o ubuntu -n ubuntu-clone1 -f /var/lib/libvirt/images/ubuntu-clone1.img
Cloning tmp6oUBpz.qcow2 100% |=========================| 107 B 00:04
Clone 'ubuntu-clone1' created successfully.
3. 作成されたクローンVMか起動するかチェック
登録された。
root@hat1:~# virsh list --all
Id 名前 状態
----------------------------------
- centos5-1 シャットオフ
- centos5-1-clone シャットオフ
- ubuntu シャットオフ
- ubuntu-clone1 シャットオフ
- WANem-VM シャットオフ
クローンVMのMACアドレス、uuid は自動で生成してくれる。( i.e. クローン元とは違う uuid , MACになる )
ためしに起動
root@hat1:~# virsh start ubuntu-clone1
ドメイン ubuntu-clone1 が起動されました
OK.
root@hat1:~# virsh console ubuntu-clone1
Connected to domain ubuntu-clone1
エスケープ文字は ^] です
Ubuntu 10.04.1 LTS ubuntu ttyS0
ubuntu login: root
Password:
Last login: Thu Oct 7 01:54:08 UTC 2010 on ttyS0
Linux ubuntu 2.6.32-25-generic-pae #44-Ubuntu SMP Fri Sep 17 21:57:48 UTC 2010 i686 GNU/Linux
Ubuntu 10.04.1 LTS
Welcome to Ubuntu!
* Documentation: https://help.ubuntu.com/
root@ubuntu:~#
[ 補足: コピー元のインターフェースが eth0 なのにクローンしたVM のそれが eth1 になる件 ]
コピーしたVM。eth0 がない。eth1 となる。
ちなみに、CentOSのクローンをつくったときは、この事象は起きなかった。
root@ubuntu-2:~# ifconfig eth0
eth0: error fetching interface information: Device not found
root@ubuntu-2:~# ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:16:36:1e:e8:00
元イメージ。 eth0
root@ubuntu-1:~# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 52:54:00:01:a8:a0
理由は、クローンしたVMのインターフェース番号の設定ファイルより、eth0 に クローン元の MAC が指定、eth1 に新MACアドレスがアサインされていて、起動するインターフェース番号が eth1 となっているから。
最初の 52:54:00:01:a8:a0 はクローン元VMのMAC
00:16:36:1e:e8:00 が新MAC
root@ubuntu-2:~# egrep -v ^# /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:01:a8:a0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:36:1e:e8:00", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
eth1 で起動。
root@ubuntu-2:~# egrep eth /etc/network/interfaces
auto eth1
iface eth1 inet dhcp
・eth0 にする方法
/etc/udev/rules.d/70-persistent-net.rules と /etc/network/interfaces を修正し、リブート。
/etc/udev/rules.d/70-persistent-net.rules の編集。最初の eth0 の設定を削除、eth1を eth0 に書き換える。
root@ubuntu-2:~# tail -1 /etc/lsb-release
DISTRIB_DESCRIPTION="Ubuntu 10.04.1 LTS"
root@ubuntu-2:~# cat /etc/udev/rules.d/70-persistent-net.rules
# net device ()
#SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:01:a8:a0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" <- コメントアウト
# PCI device 0x10ec:0x8139 (8139cp)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:36:1e:e8:00", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" <- eth0 に変更
/etc/network/interfaces の編集。eth1 を eth1 にする。
root@ubuntu-2:~# egrep eth /etc/network/interfaces
auto eth0
iface eth0 inet dhcp
再起動。
root@ubuntu-2:~# reboot
eth0 になった。
root@ubuntu-2:~# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:16:36:1e:e8:00
わざわざ必要なVMの数だけインストールするのは面倒なので。
[ 手順 ]
1. クローン元VMの準備
2. virt-clone でクローンVMを作成
3. 作成されたクローンVMか起動するかチェック
補足: クローン元のインターフェースが eth0 なのにクローンしたVM のそれが eth1 になる件
[ ログ ]
1. クローン元のVMの準備
今回は VM ubuntu をクローン元とする。VMは shutdown してあること。
root@hat1:~# virsh list --all
Id 名前 状態
----------------------------------
- centos5-1 シャットオフ
- centos5-1-clone シャットオフ
- ubuntu シャットオフ
- WANem-VM シャットオフ
クローン元VM名: ubuntu
クローン元イメージ : /var/lib/libvirt/images/ubuntu-kvm/tmp6oUBpz.qcow2
クローン元xml : /etc/libvirt/qemu/ubuntu.xml
2. virt-clone でクローンVMを作成
-o クローン元VM名 ( virsh list --all で表示されるVM名 )
-n コピー先VM名
-f コピー先イメージ保存場所
root@hat1:~# virt-clone -o ubuntu -n ubuntu-clone1 -f /var/lib/libvirt/images/ubuntu-clone1.img
Cloning tmp6oUBpz.qcow2 100% |=========================| 107 B 00:04
Clone 'ubuntu-clone1' created successfully.
3. 作成されたクローンVMか起動するかチェック
登録された。
root@hat1:~# virsh list --all
Id 名前 状態
----------------------------------
- centos5-1 シャットオフ
- centos5-1-clone シャットオフ
- ubuntu シャットオフ
- ubuntu-clone1 シャットオフ
- WANem-VM シャットオフ
クローンVMのMACアドレス、uuid は自動で生成してくれる。( i.e. クローン元とは違う uuid , MACになる )
root@hat1:~# diff /etc/libvirt/qemu/ubuntu.xml /etc/libvirt/qemu/ubuntu-clone1.xml 2,3c2,3 < < --- > > 21c21 < --- > 25c25 < --- > |
ためしに起動
root@hat1:~# virsh start ubuntu-clone1
ドメイン ubuntu-clone1 が起動されました
OK.
root@hat1:~# virsh console ubuntu-clone1
Connected to domain ubuntu-clone1
エスケープ文字は ^] です
Ubuntu 10.04.1 LTS ubuntu ttyS0
ubuntu login: root
Password:
Last login: Thu Oct 7 01:54:08 UTC 2010 on ttyS0
Linux ubuntu 2.6.32-25-generic-pae #44-Ubuntu SMP Fri Sep 17 21:57:48 UTC 2010 i686 GNU/Linux
Ubuntu 10.04.1 LTS
Welcome to Ubuntu!
* Documentation: https://help.ubuntu.com/
root@ubuntu:~#
[ 補足: コピー元のインターフェースが eth0 なのにクローンしたVM のそれが eth1 になる件 ]
コピーしたVM。eth0 がない。eth1 となる。
ちなみに、CentOSのクローンをつくったときは、この事象は起きなかった。
root@ubuntu-2:~# ifconfig eth0
eth0: error fetching interface information: Device not found
root@ubuntu-2:~# ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:16:36:1e:e8:00
元イメージ。 eth0
root@ubuntu-1:~# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 52:54:00:01:a8:a0
理由は、クローンしたVMのインターフェース番号の設定ファイルより、eth0 に クローン元の MAC が指定、eth1 に新MACアドレスがアサインされていて、起動するインターフェース番号が eth1 となっているから。
最初の 52:54:00:01:a8:a0 はクローン元VMのMAC
00:16:36:1e:e8:00 が新MAC
root@ubuntu-2:~# egrep -v ^# /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:01:a8:a0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:36:1e:e8:00", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
eth1 で起動。
root@ubuntu-2:~# egrep eth /etc/network/interfaces
auto eth1
iface eth1 inet dhcp
・eth0 にする方法
/etc/udev/rules.d/70-persistent-net.rules と /etc/network/interfaces を修正し、リブート。
/etc/udev/rules.d/70-persistent-net.rules の編集。最初の eth0 の設定を削除、eth1を eth0 に書き換える。
root@ubuntu-2:~# tail -1 /etc/lsb-release
DISTRIB_DESCRIPTION="Ubuntu 10.04.1 LTS"
root@ubuntu-2:~# cat /etc/udev/rules.d/70-persistent-net.rules
# net device ()
#SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:01:a8:a0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" <- コメントアウト
# PCI device 0x10ec:0x8139 (8139cp)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:16:36:1e:e8:00", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" <- eth0 に変更
/etc/network/interfaces の編集。eth1 を eth1 にする。
root@ubuntu-2:~# egrep eth /etc/network/interfaces
auto eth0
iface eth0 inet dhcp
再起動。
root@ubuntu-2:~# reboot
eth0 になった。
root@ubuntu-2:~# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:16:36:1e:e8:00
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.