[openstack-dev] [cinder] No middle-man - when does/will Nova directly connect iSCSI volumes?

Daniel P. Berrange berrange at redhat.com
Fri Jun 24 14:13:01 UTC 2016

On Fri, Jun 24, 2016 at 08:05:38AM -0600, John Griffith wrote:
> On Fri, Jun 24, 2016 at 2:19 AM, Daniel P. Berrange <berrange at redhat.com>
> wrote:
> > On Thu, Jun 23, 2016 at 09:09:44AM -0700, Walter A. Boring IV wrote:
> > >
> > > volumes connected to QEMU instances eventually become directly connected?
> > >
> > > > Our long term goal is that 100% of all network storage will be
> > connected
> >
> ​Oh, didn't know this at all.  Is this something Nova has been working on
> for a while?  I'd love to hear more about the reasoning, the plan etc.  It
> would also be really neat to have an opportunity to participate.

There's no currently open Nova blueprint around this. The last time we
really discussed this in context of a spec was in relation to the request
to add LUKS support over RBD, which would have involved switching away
from using QEMU and back to in-kernel RBD.

Out of this, came work on QEMU over the last 6 months which added native
QEMU support for LUKS in QEMU 2.6. Libvirt is now integrating this and
when that's done we'll look to using it in Nova. That's like Ocata blueprint

> ​This all sounds like it could be a good direction to go in.  I'd love to
> see more info on the plan, how it works, and how to test it out a bit.
> Didn't find a spec, any links, reviews or config info available?

The iSCSI stuff was originally added a several releases back:

commit f987bf1a641ffc8b26c06c920a32b8556c18e845
Author: Akira Yoshiyama <akirayoshiyama at gmail.com>
Date:   Mon Jan 12 12:11:56 2015 +0000

    libvirt: add QEMU built-in iSCSI initiator support
    This patch allows nova-compute to use QEMU iSCSI built-in
    initiator for Cinder iSCSI volume drivers. It doesn't provide
    iSCSI multipath capability, but host OS doesn't have to handle
    iSCSI connection for volume because QEMU does it directly with
    To use this, you have to write a parameter at nova.conf:
      volume_drivers = iscsi=nova.virt.libvirt.volume.LibvirtNetVolumeDriver,iser=nova.virt.libvirt.volume.LibvirtISERVolumeDriver,...
    or just
      volume_drivers = iscsi=nova.virt.libvirt.volume.LibvirtNetVolumeDriver
    Note that qemu-system-x86 in Ubuntu has no iSCSI built-in
    initiator support because libiscsi isn't in main repository
    but universe. I've tested qemu-system-x86 built with libiscsi2
    package of Debian on Ubuntu 14.04.
    Change-Id: Ieb9a03d308495be4e8c54b5c6c0ff781ea7f0559
    Implements: blueprint qemu-built-in-iscsi-initiator

Note that since that time though, I see we've lost ability to enable this,
since we removed the "volume_drivers" config parameter. We ought to re-add
an explicit config param to turn this on, rather than doing it indirectly
via the volume driver class choice.

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

More information about the OpenStack-dev mailing list