On 2023/4/18 21:50, wangjian (AN) wrote:
>
> On 4/15/23 15:48, wangjian (AN) wrote:
>> Hi Guys,
>>
>>
>>
>> Currently qemu and spdk already support vhost-user-scsi, but there is
>> no vhost-user-scsi configuration in libvirt.
>>
>> We hope that libvirt supports the following configurations to
>> facilitate docking with qemu.
>>
>>
>>
>> <controller type='scsi' index='0' model='vhost-user-scsi'>
>>
>> <driver queues='4'/>
>>
>> <source type='unix' path='/var/tmp/scsi'>
>>
>> <reconnect enabled='yes' timeout='3'/>
>>
>> </source>
>>
>> <address type='pci' domain='0x0000' bus='0x02' slot='0x02'
>> function='0x0'/>
>>
>> </controller>
>>
>>
>>
>> The usage in qemu like this:
>>
>> -chardev socket,id=chr-vu-virtio-disk10,path=/var/tmp/scsi,reconnect=3
>>
>> -device
>> vhost-user-blk-pci,num-queues=4,bus=pci.2,addr=0x0,chardev=chr-vu-virt
>> io-disk10,id=scsi0
>>
>>
>>
>> Could anyone give some suggestions?
>>
>
> That's very likely because nobody wrote patches for it. I do not think there
> was a discussion where we decided to deliberately not support it.
> But I guess, what advantage there is in letting an external helper manage a
> <controller/> ? I though, vhost-user-* is ideal for individual devices rather
> than controllers.
>
> Meanwhile, for testing purposes (definitely NOT production), you can use
> qemu:command line passthrough:
>
> https://libvirt.org/kbase/qemu-passthrough-security.html
>
> Michal
>
In spdk, a vhost-user-blk controller will only be associated with one disk, and
a vhost-user-blk controller will only be associated with one socket file.
Therefore, for the vhost-user-blk disk, it is appropriate to use the
vhost-user-blk disk associated socket file configuration in libvirt.
But in spdk, a vhost-user-scsi controller will be associated with multiple
disks, and a vhost-user-scsi controller will only be associated with one socket
file.
Therefore, we think that for vhost-user-scsi, it is appropriate to use the
controller to associate the socket file configuration in libvirt.