VMをコピーする

VMをコピーするツールとして、virt-cloneというのがあるらしい。
virt-cloneは、python-virtinstパッケージに含まれているので、これをインストールしてみる。

$ sudo aptitude install python-virtinst


limeをorangeという名前のホストにコピーしたい。

$ virsh list --all
Connecting to uri: qemu:///system
 Id Name                 State
----------------------------------
  - lime                 shut off

$ virt-clone --connect=qemu:///system -o lime\
 -n orange -f /home/kvm/orange/disk0.qcow2
Cloning from /home/kvm/lime/disk0.qcow2 to /home/kvm/orange/disk0.qcow2
Cloning domain...         100% |=========================| 380 MB    00:01
$

$ virsh list --all
Connecting to uri: qemu:///system
 Id Name                 State
----------------------------------
  - lime                 shut off
  - orange               shut off

$ virsh dumpxml orange
Connecting to uri: qemu:///system
<domain type='kvm'>
  <name>orange</name>
  <uuid>3a331804-6d10-87b4-e93b-e11772a6d8f0</uuid>
  <memory>524288</memory>
  <currentMemory>524288</currentMemory>
  <vcpu>1</vcpu>
  <os>
    <type>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='file' device='disk'>
      <source file='/home/kvm/orange/disk0.qcow2'/>
      <target dev='hda' bus='ide'/>
    </disk>
    <interface type='bridge'>
      <mac address='00:16:36:53:0b:40'/>
      <source bridge='br0'/>
      <model type='e1000'/>
    </interface>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='-1' listen='0.0.0.0'/>
  </devices>
</domain>

$ virsh start orange

$ virsh list --all
Connecting to uri: qemu:///system
 Id Name                 State
----------------------------------
 10 orange               running
  - lime                 shut off

limeからコピーしたorangeを起動してみたが、仮想ディスクのイメージをコピーしただけなので、IPアドレスも結局はそのまま。
という状況なので、ssh orangeではログインできず、ssh limeでログインすることになる。
結局、orangeを起動してlimeのIPアドレスでログインして、手動で書き換えることになるみたい。

$ sudo vim /etc/hostname

でホスト名をorangeに書き換え。

$ sudo vim /etc/network/interfaces

IPアドレスを書き換え。
ifdown eth0; ifup eth0 すればいいのだけど、sshで書き換えてるので、実行したら接続が切れてしまう。
なので、shutdown -r nowしてしまおう。
再度sshでアクセス。

limeも起動して

$ virsh list
Connecting to uri: qemu:///system
 Id Name                 State
                                                                  • -
11 orange running 12 lime running

これで、orangeとlimeが起動している状況になった。