On Mon, Sep 02, 2013 at 05:38:39PM +0800, Guannan Ren wrote: > > BZ:https://bugzilla.redhat.com/show_bug.cgi?id=917702 > qemu patch:http://lists.gnu.org/archive/html/qemu-devel/2013-01/msg02200.html > > These patch aims to add usb-bot SCSI controller support for libvirt. > As usb-storage libvirt already supported, usb-bot only supports one > SCSI target with SCSI ID 0. > The difference is that usb-storage creates SCSI HBA and additionaly > either a scsi-disk or a scsi-generic device, usb-bot only creates the > SCSI HBA. we can attach a SCSI device to it with another -device. > > usb-bot supports a single target and a number of luns. The limit is > 15 luns (0~15 LUN ID) and they must be contiguous(using lun 0 and 2 > without 1 doesn't work). > > Athought usb-bot is a SCSI controller it needs to be attached to a > exsiting USB controller for work. So it has to use address of usb type. > > Libvirt XML: > > <devices> > ... > <disk type='file' device='disk'> > <driver name='qemu' type='raw'/> > <source file='/var/lib/libvirt/images/disk.qcow2'/> > <target dev='sdc' bus='scsi'/> > <address type='drive' controller='0' bus='0' target='0' unit='0'/> > </disk> > <controller type='usb' index='0'/> > <controller type='scsi' index='0' model='usb-bot'> > <address type='usb' bus='0' port='1'/> > </controller> > ... > </devices> How does this work from a hotplug POV. With usb-storage you could just hotplug the <disk> device. Now it seems we need two separate hotplug calls one of the <controller> and one for the <disk> and the reverse. > > The QEMU commandline: > > qemu ${other_vm_args} \ > -device piix3-usb-uhci,id=usb \ > -device usb-bot,id=scsi0,bus=usb.0,port=1 \ > -drive file=/var/lib/libvirt/images/disk.qcow2,if=none,id=drive-scsi0-0-0-0,format=raw \ > -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0 > > As the usb-storage creates scsi disk automatically which doesn't let > you set scsi-disk properties such as vendor, product, wwn, channel, > scsi-id and lun. So QEMU guys prefer usb-bot to usb-storage. > So this is the first part of the whole work. Next step will replace > usb-storage with usb-bot when disk in xml uses usb bus like > <disk ...> > <...> > <target bus='usb'> > </disk> I'm not really a fan of introducing 2 different ways to configure the exact same device. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list