[libvirt-users] 2 Problems with attaching/detaching disks with virsh and KVM

Daniele Testa daniele.testa at gmail.com
Sun Apr 7 21:27:37 UTC 2013


Hi,

I am having 2 issues with disks and KVM.

ISSUE 1:

I am unable to detach a disk from a running KVM.

(root at h2)-(/tmp)# virsh dumpxml vps_99
<domain type='kvm' id='224'>
  <name>vps_99</name>
  <uuid>5e24e17c-f0e4-1030-ac57-0050560018a2</uuid>
  <memory>524288</memory>
  <currentMemory>524288</currentMemory>
  <vcpu>1</vcpu>
  <os>
    <type arch='x86_64' machine='pc-0.12'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>restart</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/nbd1'/>
      <target dev='vda' bus='virtio'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/nbd2'/>
      <target dev='vdb' bus='virtio'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/nbd3'/>
      <target dev='vde' bus='virtio'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/nbd4'/>
      <target dev='vdg' bus='virtio'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/nbd5'/>
      <target dev='vdi' bus='virtio'/>
    </disk>
    <interface type='bridge'>
      <mac address='00:50:56:00:1b:24'/>
      <source bridge='br0'/>
      <target dev='vnet3'/>
      <model type='virtio'/>
    </interface>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='5999' autoport='no' keymap='en-us'/>
    <video>
      <model type='cirrus' vram='9216' heads='1'/>
    </video>
  </devices>
  <seclabel type='dynamic' model='apparmor'>
    <label>libvirt-5e24e17c-f0e4-1030-ac57-0050560018a2</label>
    <imagelabel>libvirt-5e24e17c-f0e4-1030-ac57-0050560018a2</imagelabel>
  </seclabel>
</domain>

(root at h2)-(/tmp)# cat disk.xml
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/nbd5'/>
      <target dev='vdi' bus='virtio'/>
    </disk>

(root at h2)-(/tmp)# virsh detach-device vps_99 disk.xml
error: Failed to detach device from disk.xml
error: operation failed: disk vdi cannot be detached - no PCI address for
device

(root at h2)-(/tmp)# virsh detach-disk vps_99 vdi
error: operation failed: disk vdi cannot be detached - no PCI address for
device

I have tried specifing a <address> for each disk, ie:
address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>

However, I still get the same "no PCI" error.

I am able to add and remove NEW disks to the virtual server after it has
been started, but I can't detach the disks that were defined when the KVM
was created (even though it looks exactly the same in the XML-file).

ISSUE 2:

When I add a disk to a KVM running linux (ubuntu in this case), it totally
ignores my "target dev". I.e if I specify this:

<target dev='vdi' bus='virtio'/>

The disk is still being detected as "vdc". Removing the disk and adding it
again, gives it "vdd" etc. So it seems it is pretty much just increamenting
the letter and totally ignore my config. I read in the documentation that
the target defined is just a "hint" for the system and is not always
honered, but sorry, I simply cannot accept that :)

There must be a way to specify the device the disk should be connected to.
Amazon Web Services seems to be able to do this just fine. It will be a
pain to write automated scripts when new disks are just attached to random
devices.

Regards,
Daniele
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvirt-users/attachments/20130407/08153cfb/attachment.htm>


More information about the libvirt-users mailing list