On Fri, Oct 9, 2009 at 3:18 AM, Daniel P. Berrange <berrange(a)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