Re: [Qemu-devel] [PATCH 00/16] QEMU vhost-scsi support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

On Mon, Apr 23, 2012 at 7:33 PM, Stefan Hajnoczi <stefanha@xxxxxxxxx> wrote:
> On Sat, Apr 21, 2012 at 9:51 AM, Nicholas A. Bellinger
> <nab@xxxxxxxxxxxxxxx> wrote:
>> On Fri, 2012-04-20 at 12:09 +0100, Stefan Hajnoczi wrote:
>>> On Fri, Apr 20, 2012 at 8:46 AM, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:
>>> > Il 20/04/2012 09:00, Nicholas A. Bellinger ha scritto:
>> <SNIP>
>>> > - no support for migration (there can be pending SCSI requests at
>>> > migration time, that need to be restarted on the destination)
>>> Yes and it hasn't been thought through by me at least ;-).  So
>>> migration is indeed a challenge that needs to be worked through.
>>> > - no support for non-raw images (fix: use NBD on a Unix socket? perhaps
>>> > add an NBD backend to lio)
>>> For me this is the biggest issue with kernel-level storage for virtual
>>> machines.  We have NBD today but it goes through the network stack
>>> using a limited protocol and probably can't do zero-copy.
>>> The most promising option I found was dm-userspace
>>> (, which implements a
>>> device-mapper target with an in-kernel MMU-like lookup mechanism that
>>> calls out to userspace when block addresses need to be translated.
>>> It's not anywhere near to upstream and hasn't been pushed for several
>>> years.  On the plus side we could also write a userspace
>>> implementation of this so that QEMU image formats continue to be
>>> portable to other host OSes without duplicating code.
>>> If tcm_vhost only works with raw images then I don't see it as a
>>> realistic option given the effort it will require to complete and
>>> maintain.
>> So there has been interest in the past for creating a TCM backend that
>> allows for a userspace passthrough, but so far the code to do this has
>> not materialized yet..
>> There are pieces of logic from STGT that provide an interface for doing
>> something similar that still exist in the upstream kernel.  Allowing
>> different QEMU formats to be processed (in userspace) through a hybrid
>> TCM backend driver that fits into the existing HBA/DEV layout in
>> /sys/kernel/config/target/$HBA/$DEV/ is what would be required to really
>> do this properly..
> Could you point to the existing upstream code?
> I think the hybrid TCM backend driver means a way for a userspace
> process to execute SCSI Tasks from the target - implementing a subset
> of se_subsystem_api in userspace?
> If we solve the problem at the block driver level instead of inside
> the SCSI target then it's also possible for the host to inspect VM
> disk images similar to loopback devices (mount -o loop).  Do you think
> putting the userspace interface into the SCSI target has advantages
> over the block driver or device-mapper level?

Hi Stefan,

A little bit off-topic but

When you design the proper place and API to plug virt-scsi into an
external SCSI parser outside of qemu like the target in the kernel ...

It would be very nice if one could also plug virt-scsi into libiscsi
and pass the CDBs straight to the remote iSCSI target too.
Keep some thoughts on virt-scsi + libiscsi integration.

ronnie sahlberg
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at

[Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Photos]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

Add to Google Powered by Linux