[Openstack] [Nova] KVM Windows Guest disk hot plugging support.

Zuo Changqian dummyhacker85 at gmail.com
Thu Feb 27 01:53:35 UTC 2014


I have tried, it would still fail.

Also I got something new this morning, If I first remove the device
(attached disk) inside Windows 2008, and then call detach-volume command,
the reattching will succeed.

I think this is not a problem of Libvirt of KVM (Linux guest works
perfectly), but a problem of Windows operating system. That's why I asked
whether Windows itself support this disk hot plug in-and-out feature or
not, if it can, how.

The following "newdisk.img" has been formatted with as a NTFS disk, and
there is some data inside. "instance-0000000d" is a Windows 2008 instance
(I reboot it before every test).

------------------------------------------------------------
[root at nova02 temp]# ll
total 1048584
-rw-r--r-- 1 root root 1073741824 Feb 27 09:19 newdisk.img
-rw-r--r-- 1 root root        120 Feb 25 16:12 newdisk.xml

[root at nova02 temp]# cat newdisk.xml
<disk type='file' device='disk'>
   <source file='/home/temp/newdisk.img'/>
   <target dev='vdb' bus='virtio'/>
</disk>
[root at nova02 temp]# virsh attach-device instance-0000000d newdisk.xml
Device attached successfully

[root at nova02 temp]# virsh detach-device instance-0000000d newdisk.xml
Device detached successfully

[root at nova02 temp]# virsh attach-device instance-0000000d newdisk.xml
error: Failed to attach device from newdisk.xml
error: internal error unable to execute QEMU command
'__com.redhat_drive_add': Duplicate ID 'drive-virtio-disk1' for drive
-----------------------------------------------------------

I got same result with "virsh attach-disk" command:

-----------------------------------------------------------
[root at nova02 temp]# virsh attach-disk instance-0000000d
/home/temp/newdisk.img vdb
Disk attached successfully

[root at nova02 temp]# virsh detach-disk instance-0000000d vdb
Disk detached successfully

[root at nova02 temp]# virsh attach-disk instance-0000000d
/home/temp/newdisk.img vdb
error: Failed to attach disk
error: internal error unable to execute QEMU command
'__com.redhat_drive_add': Duplicate ID 'drive-virtio-disk1' for drive
----------------------------------------------------------





2014-02-26 17:40 GMT+08:00 Zhangleiqiang <zhangleiqiang at huawei.com>:

>  Hi, Changqian:
>
>
>
> I think it's better to try using the corresponding detach command of
> libvirt (virsh detach-disk or virsh detach-device) first, and see if the
> behavior is expected.
>
>
>
>
>
>
>
> ----------
>
> Leiqzhang
>
>
>
> Best Regards
>
>
>
> *From:* Zuo Changqian [mailto:dummyhacker85 at gmail.com]
> *Sent:* Wednesday, February 26, 2014 3:49 PM
> *To:* Gangur, Hrushikesh (R & D HP Cloud)
> *Cc:* Openstack at lists.openstack.org
> *Subject:* Re: [Openstack] [Nova] KVM Windows Guest disk hot plugging
> support.
>
>
>
> By the way, it's Havana release.
>
> We first found this problem in Ubuntu 12.04 LTS guest, after loading
> "acpiphp" kernel module at instance boot time, the problem solved.
>
> Then we tested using CentOS 6.x guest, it seems the code of "acpiphp"
> module has been integrated into Linux kernel at compilation time. Nothing
> needs to been done, it just works very well. You can freely attach and
> detach volumes when instance is running.
>
> But this does not work for Windows guest, you can attach volumes, and you
> can detach, but it seems still some information of disk remain in Windows
> guest, and you can not attach a second time.
>
> A reboot do cleanup those remained infomation, and we know this. I am
> wondering if this attach/detach can be all done when Windows guest is
> running, just like it is done in Linux guest.
>
>
>
>
>
> 2014-02-26 15:07 GMT+08:00 Gangur, Hrushikesh (R & D HP Cloud) <
> hrushikesh.gangur at hp.com>:
>
> I have seen this issue on Linux VMs too. A reboot of the VM instance helps
> workaround this.
>
>
>
> *From:* Zuo Changqian [mailto:dummyhacker85 at gmail.com]
> *Sent:* Tuesday, February 25, 2014 10:34 PM
> *To:* Openstack at lists.openstack.org
> *Subject:* [Openstack] [Nova] KVM Windows Guest disk hot plugging support.
>
>
>
> Hi
>
> Currently we use Cpeh RBD as cinder volume. According to
> http://www.linux-kvm.org/page/Hotadd_pci_devices, we have Linux KVM guest
> (both CentOS 6.x and Ubuntu 12.04) support disk hot plugging, it works well.
>
> But there is problem with Windows 2008 guest (2003 not tested). Described
> below:
>
> 1) Launch an Windows 2008 instance (with RedHat Virtio Driver installed),
> and attach a volume (newly created with nothing inside) to it, the volume
> would be successfully attached to /dev/vdb.
>
> 2) In Windows (guest machine), format this newly added disk. After
> formatting, it will show up in "My Computer" windows. Create any file
> (readme.txt with some text in it for example) inside the new disk. Then
> deatch the volume.
>
> After about one or two minute, a message box would show up in Windows,
> saying that the device not properly removed, and the newly added disk would
> still show in "My Computer" window. But with "cinder list" command, we can
> see that the volume was successfully detached.
>
> 3) Now reattach to volume to instance, it would failed.
>
>
>
> Libvirt log shows:
>
> error : qemuMonitorJSONCheckError:357 : internal error unable to execute
> QEMU command '__com.redhat_drive_add': Duplicate ID 'drive-virtio-disk1'
> for drive
>
> I googled yesterday afternoon, didn't find useful information. Would any
> one tell me whether Windows 2003/2008 as kvm fully virtualized guest
> supports disk hot plugging and removing or not? Or any possibility I have
> got something wrong?
>
>
> Thanks for help!
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20140227/899e96a4/attachment.html>


More information about the Openstack mailing list