
On Fri, Oct 9, 2009 at 3:18 AM, Daniel P. Berrange <berrange@redhat.com> wrote:
On Thu, Oct 08, 2009 at 10:57:55PM -0500, Dustin Kirkland wrote:
Now, all of that said, it is actually possible to hot-add a second scsi device. However, as far as I can tell, this method is not yet supported by libvirt. It looks to me that with modern qemu, you have to do it this way:
Drop to a qemu console with ctrl-alt-2. Get the address of the current scsi bus: (qemu) info pci Look for "SCSI Controller". In my case, it's on Bus 0, device 4, function 0
Now instead of pci_add, use drive_add (qemu) drive_add 0:4 file=/tmp/foo,if=scsi OK bus 0, unit 1
That is correct - the SCSI driver hotplug in libvirt is not implemented in the right way. If you specify multiple SCSI devices at boot, they all get on one controller, if you hotplug multiple SCSI devices, we're hotplugging a new SCSI controller per disk. This is clearly not good, because when you then reboot, all those controllers are merged back into one.
Okay, in our previous usage of this, rebooting didn't matter very much.
There is a guy who is working on implementing the correct SCSI hotplug approach for libvirt, that is still work in progress though. The most recent patches were here:
http://www.redhat.com/archives/libvir-list/2009-September/msg00551.html
We will ultimately support hotplug of both drives, and drive controllers independantly, giving apps/users the flexibility they need.
Thanks. I'll track those patches with interest. :-Dustin