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

Zuo Changqian dummyhacker85 at gmail.com
Thu Feb 27 03:24:59 UTC 2014


Much thanks, Wangpan, very helpful information.

I knew our "Windows 2008" image has Virtio disk and network interface
driver installed, but didn't know about PCI driver. In fact, when I opened
"device manager" window, I did see under "Other deivces", "PCI devices" is
tagged with a yellow exclamation sysmbol. That seems to be the unrecognised
"membaloon" device.

I will ask guys making Windows images and see if I could get some good news.


2014-02-27 10:21 GMT+08:00 Wangpan <hzwangpan at corp.netease.com>:

>  I have see this same error on my debian OS(2.6.X kernel) without acpiphp
> and pci_hotplug modules,
> after I insert these two modules, the re-attachment works ok.
>
> With Windows OS, do you have install the virtio drivers(pci and disk)?
> because in my windows 7 the re-attachment works ok, too.
> I thought windows 2008 has the same kernel with windows 7 (may be).
>
> 2014-02-27
>  ------------------------------
>  Wangpan
>  ------------------------------
>  *发件人:*Zuo Changqian <dummyhacker85 at gmail.com>
> *发送时间:*2014-02-27 09:53
> *主题:*Re: [Openstack] [Nova] KVM Windows Guest disk hot plugging support.
> *收件人:*"Zhangleiqiang"<zhangleiqiang at huawei.com>
> *抄送:*"Openstack at lists.openstack.org"<openstack at lists.openstack.org>
>
>  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/ff8d6f25/attachment.html>


More information about the Openstack mailing list