All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: Dor Laor <dlaor@redhat.com>
Cc: kwolf@redhat.com, Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>,
	qemu-devel@nongnu.org, fujita.tomonori@lab.ntt.co.jp,
	Paolo Bonzini <pbonzini@redhat.com>,
	hch@lst.de
Subject: Re: [Qemu-devel] [PATCH] This patch adds a new block driver : iSCSI
Date: Thu, 15 Sep 2011 10:44:46 +0100	[thread overview]
Message-ID: <20110915094446.GH29309@redhat.com> (raw)
In-Reply-To: <4E71BBE3.5000207@redhat.com>

On Thu, Sep 15, 2011 at 11:48:35AM +0300, Dor Laor wrote:
> On 09/15/2011 09:04 AM, Paolo Bonzini wrote:
> >On 09/15/2011 01:08 AM, ronnie sahlberg wrote:
> >>I think it is reasonable to just not support iscsi at all for
> >>blocksize that is not multiple of 512 bytes
> >>since a read-modify-write cycle across a network would probably be
> >>prohibitively expensive.
> >
> >Agreed.
> >
> >>.bdrv_flush() I can easily add a synchronous implementation of this
> >>unless your patch is expected to be merged
> >>in the near future.
> >
> >We need the same patch for NBD, so I wouldn't bother with the
> >synchronous flush.
> >
> >Paolo
> >
> >
> 
> It seems to me that using a qemu external initiator/target pairs
> like Orit's original design in http://wiki.qemu.org/Features/LiveBlockMigration#ISCSI_for_non_shared_storage
> would be a simpler (in terms of qemu code..) and flexible solution.
> 
> I agree that embedding the iscsi initiation in qemu can simplify the
> end user life but since this scenario is expected to be used by
> higher level software it's not relevant here. The risk is to have to
> maintain more code that won't be as general as the tgtd/lio
> solutions out there.

This should not be considered an either/or decision really. There are
compelling benefits for having a iSCSI initiator inside QEMU which Ronnie
outlined in the first mail in this thread. The enablement for non-root
users is, on its own, enough justification IMHO.

  * Privacy: The iSCSI LUNs are private to the guest and are not
    visible either to the host, nor to any processes running on the host.

  * Ease of managment : If you have very many guests and very many,
    thousands of, iSCSI LUNs. It is inconvenient to have to expose
    all LUNs to the underlying host.

  * No root requirement. Since the iSCSI LUNs are not mounted as
    devices on the host, ordinary users can set up and use iSCSI
    resources without the need for root privilege on the host to
    map the devices to local scsi devices.

There are several other benefits too

  * Since the network I/O for the iSCSI LUN is now done by the
    QEMU process instead of the kernel, each VM's iSCSI I/O
    traffic can be insolated & controlled via the cgroups network
    contorller / tc network classifier.

  * Portable across OS. Each OS has different tools for setting
    up iSCSI usage. A native driver lets QEMU users setup iSCSI
    in the same way regardless of the level of OS support for
    iSCSI.

Finally experiance integrating with the Linux iscsiadm command line
tools in libvirt, has shown that they can be quite a PITA to integrate
with if your mgmt app wants reliable/predictable results from their
usage regardless of what an admin may have previously setup on the
host.

So, IMHO, from a QEMU POV it makes perfect sense to have a builtin
iSCSI initiator, as an alternative to using the OS' iSCSI tools
externally. Vendors of applications managing KVM/QEMU are then free
to decide which of the approaches they wish to support in their own
products.

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 :|

  parent reply	other threads:[~2011-09-15  9:45 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-10  4:23 [Qemu-devel] [PATCH] Add iSCSI support for QEMU Ronnie Sahlberg
2011-09-10  4:23 ` [Qemu-devel] [PATCH] This patch adds a new block driver : iSCSI Ronnie Sahlberg
2011-09-12  9:14   ` Stefan Hajnoczi
2011-09-14 14:36     ` Christoph Hellwig
2011-09-14 15:50       ` Stefan Hajnoczi
2011-09-16 15:53         ` Christoph Hellwig
2011-09-17  7:11           ` Stefan Hajnoczi
2011-09-14 22:51       ` ronnie sahlberg
2011-09-15  8:02         ` Daniel P. Berrange
2011-09-15  9:03         ` Kevin Wolf
2011-09-14 23:08     ` ronnie sahlberg
2011-09-15  6:04       ` Paolo Bonzini
2011-09-15  8:48         ` Dor Laor
2011-09-15  9:11           ` Paolo Bonzini
2011-09-15 11:27             ` ronnie sahlberg
2011-09-15 11:42             ` Dor Laor
2011-09-15 11:46               ` Christoph Hellwig
2011-09-15 12:01                 ` Dor Laor
2011-09-15 12:04                   ` Paolo Bonzini
2011-09-15 11:58               ` Paolo Bonzini
2011-09-15 12:34                 ` Orit Wasserman
2011-09-15 12:58                   ` Paolo Bonzini
2011-09-15 16:59                     ` Orit Wasserman
2011-09-15  9:44           ` Daniel P. Berrange [this message]
2011-09-15  9:10         ` Kevin Wolf
2011-09-15  9:39           ` Paolo Bonzini
2011-09-21  9:48     ` ronnie sahlberg
2011-09-23  9:15   ` Mark Wu
2011-09-23 10:16     ` Paolo Bonzini
2011-09-12  8:56 ` [Qemu-devel] [PATCH] Add iSCSI support for QEMU Kevin Wolf
2011-09-14 12:24   ` Orit Wasserman
2011-09-14 14:33     ` Christoph Hellwig
2011-09-14 14:37     ` Christoph Hellwig
2011-09-14 15:35       ` Stefan Hajnoczi
2011-09-14 15:40         ` Christoph Hellwig
2011-09-14 15:51           ` Stefan Hajnoczi
2011-09-14 16:36             ` Orit Wasserman
2011-09-15  6:06               ` Paolo Bonzini
2011-09-15  9:52                 ` Orit Wasserman
2011-09-15  9:55                   ` Paolo Bonzini
2011-09-15 10:10                     ` Kevin Wolf
2011-09-17 19:08                 ` Laurent Vivier
2011-09-18  7:43                   ` Paolo Bonzini
2011-09-14 16:37             ` Paolo Bonzini
2011-09-14 22:46     ` ronnie sahlberg
  -- strict thread matches above, loose matches on Subject: below --
2011-09-21  9:37 Ronnie Sahlberg
2011-09-21  9:37 ` [Qemu-devel] [PATCH] This patch adds a new block driver : iSCSI Ronnie Sahlberg
2011-09-21  9:45   ` Paolo Bonzini
2011-09-21  9:52     ` ronnie sahlberg
2011-09-27 20:08       ` ronnie sahlberg
2011-09-28  5:54         ` Paolo Bonzini
2011-09-29  6:54   ` Stefan Hajnoczi
2011-10-09 20:46     ` ronnie sahlberg
2011-10-13  9:46       ` ronnie sahlberg
2011-10-13  9:48         ` Paolo Bonzini
2011-10-13  9:54         ` Stefan Hajnoczi
2011-10-13 10:01         ` Daniel P. Berrange
2011-10-13 10:55           ` Daniel P. Berrange
2011-10-13 10:52         ` Kevin Wolf
2011-10-24 13:33   ` Kevin Wolf
2011-10-25  8:04     ` ronnie sahlberg
2011-10-25  8:17       ` Kevin Wolf
2011-10-25  8:23         ` ronnie sahlberg
2011-10-25  8:46           ` Kevin Wolf
2011-10-28 10:46   ` Zhi Yong Wu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110915094446.GH29309@redhat.com \
    --to=berrange@redhat.com \
    --cc=dlaor@redhat.com \
    --cc=fujita.tomonori@lab.ntt.co.jp \
    --cc=hch@lst.de \
    --cc=kwolf@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.