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@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@nova02 temp]# cat newdisk.xml <disk type='file' device='disk'> <source file='/home/temp/newdisk.img'/> <target dev='vdb' bus='virtio'/> </disk> [root@nova02 temp]# virsh attach-device instance-0000000d newdisk.xml Device attached successfully [root@nova02 temp]# virsh detach-device instance-0000000d newdisk.xml Device detached successfully [root@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@nova02 temp]# virsh attach-disk instance-0000000d /home/temp/newdisk.img vdb Disk attached successfully [root@nova02 temp]# virsh detach-disk instance-0000000d vdb Disk detached successfully [root@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 <[email protected]>: > 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:[email protected]] > *Sent:* Wednesday, February 26, 2014 3:49 PM > *To:* Gangur, Hrushikesh (R & D HP Cloud) > *Cc:* [email protected] > *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) < > [email protected]>: > > I have seen this issue on Linux VMs too. A reboot of the VM instance helps > workaround this. > > > > *From:* Zuo Changqian [mailto:[email protected]] > *Sent:* Tuesday, February 25, 2014 10:34 PM > *To:* [email protected] > *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! > > >
_______________________________________________ Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack Post to : [email protected] Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
