lost and found ( for me ? )

KVM: virsh define と virsh edit

KVMのイメージの保存場所を変更したいので、イメージを mv で移動、vi で xml ファイルを編集、VMを起動したら、
昔の保存場所のままで、新しいの保存場所に反映されなかった。

方法は2種類あって、

・その1: vi で編集、virsh define で再定義
・その2: virsh edit で xml ファイルを編集する ( こっちの方が楽 )

[ 手順 : vi で編集、virsh define で再定義 ]

イメージを移動
root@hat1:~# mv tmpdRl1uE.qcow2 /var/lib/libvirt/images/hat1-vm.img


定義ファイルを vi で編集
root@hat1:~# cat /etc/libvirt/qemu/hat1-vm.xml
#      <source file='/root/VMBuilder/ubuntu-kvm/tmpdRl1uE.qcow2'/>
      <source file='/var/lib/libvirt/images/hat1-vm.img'/>


define しないで、VM を起動すると昔の保存場所を見て、起動しない。
root@hat1:~# less /var/log/libvirt/qemu/hat1-vm.log
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin QEMU_AUDIO_DRV=none /usr/bin/kvm -S -M pc-0.12 -enable-kvm -m 128 -smp 1,sockets=1,cores=1,threads=1 -name hat1-vm -uuid eb7c715e-70f3-2857-4b4c-b53482840eda -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/hat1-vm.monitor,server,nowait -mon chardev=monitor,mode=readline -rtc base=utc -boot c -drive file=/root/VMBuilder/ubuntu-kvm/tmpdRl1uE.qcow2,if=none,id=drive-ide0-0-0,boot=on,format=qcow2 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -device virtio-net-pci,vlan=0,id=net0,mac=52:54:00:1c:59:36,bus=pci.0,addr=0x3 -net tap,fd=40,vlan=0,name=hostnet0 -usb -vnc 127.0.0.1:0 -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4
qemu: could not open disk image /root/VMBuilder/ubuntu-kvm/tmpdRl1uE.qcow2


virsh dumpxml でチェックしてみると確かに反映されていない
root@hat1:~# virsh dumpxml hat1-vm | grep -i qcow
<driver name='qemu' type='qcow2'/>
      <source file='/root/VMBuilder/ubuntu-kvm/tmpdRl1uE.qcow2'/>


virsh define で変更した xml を反映
root@hat1:~# virsh define /etc/libvirt/qemu/hat1-vm.xml
ドメイン hat1-vm が /etc/libvirt/qemu/hat1-vm.xml から定義されました


virsh dumpxml で反映されたか確認。。反映されてない。。
root@hat1:~# virsh dumpxml hat1-vm | grep -i qcow
<driver name='qemu' type='qcow2'/>
      <source file='/root/VMBuilder/ubuntu-kvm/tmpdRl1uE.qcow2'/>


xml ファイル見ると、# でコメントアウトした行 ( qcow2 ) のままで、新たに追加した行 ( img ) がなくなっちゃてるなー。
root@hat1:~# cat /etc/libvirt/qemu/hat1-vm.xml
<disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/root/VMBuilder/ubuntu-kvm/tmpdRl1uE.qcow2'/>
      <target dev='hda' bus='ide'/>
  


xml ファイルを vi で編集。 qcow2の行を削除
<disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/var/lib/libvirt/images/hat1-vm.img'/>
      <target dev='hda' bus='ide'/>


virsh define
root@hat1:~# virsh define /etc/libvirt/qemu/hat1-vm.xml
ドメイン hat1-vm が /etc/libvirt/qemu/hat1-vm.xml から定義されました


反映された。
root@hat1:~# virsh dumpxml hat1-vm
<driver name='qemu' type='qcow2'/>
      <source file='/var/lib/libvirt/images/hat1-vm.img'/>
      <target dev='hda' bus='ide'/>


起動した。
root@hat1:~# virsh start hat1-vm
ドメイン hat1-vm が起動されました

root@hat1:~# cat /var/log/libvirt/qemu/hat1-vm.log

LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin QEMU_AUDIO_DRV=none /usr/bin/kvm -S -M pc-0.12 -enable-kvm -m 128 -smp 1,sockets=1,cores=1,threads=1 -name hat1-vm -uuid eb7c715e-70f3-2857-4b4c-b53482840eda -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/hat1-vm.monitor,server,nowait -mon chardev=monitor,mode=readline -rtc base=utc -boot c -drive file=/var/lib/libvirt/images/hat1-vm.img,if=none,id=drive-ide0-0-0,boot=on,format=qcow2 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -device virtio-net-pci,vlan=0,id=net0,mac=52:54:00:1c:59:36,bus=pci.0,addr=0x3 -net tap,fd=40,vlan=0,name=hostnet0 -usb -vnc 127.0.0.1:0 -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4


[ 手順 : virsh edit で xml ファイルを編集する ]

virsh list --all で編集するVM名をチェック
root@hat1:~# virsh list --all | grep hat
 - hat1-vm              シャットオフ


virsh edit VM名 で編集。操作はvi と同じ。
root@hat1:~# virsh dumpxml hat1-vm
ドメイン hat1-vm XML の設定は編集されました


反映された。
root@hat1:~# virsh dumpxml hat1-vm
     
<driver name='qemu' type='qcow2'/>
      <source file='/var/lib/libvirt/images/hat1-vm.img'/>
      <target dev='hda' bus='ide'/>

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.