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

Preston L. Bannister preston at bannister.us
Wed Jun 15 23:59:39 UTC 2016

QEMU has the ability to directly connect to iSCSI volumes. Running the
iSCSI connections through the nova-compute host *seems* somewhat

There is a spec/blueprint and implementation that landed in Kilo:


>From looking at the OpenStack Nova sources ... I am not entirely clear on
when this behavior is invoked (just for Ceph?), and how it might change in

Looking for a general sense where this is headed. (If anyone knows...)

If there is some problem with QEMU and directly attached iSCSI volumes,
that would explain why this is not the default. Or is this simple inertia?

I have a concrete concern. I work for a company (EMC) that offers backup
products, and we now have backup for instances in OpenStack. To make this
efficient, we need to collect changed-block information from instances.

1)  We could put an intercept in the Linux kernel of the nova-compute host
to track writes at the block layer. This has the merit of working for
containers, and potentially bare-metal instance deployments. But is not
guaranteed for instances, if the iSCSI volumes are directly attached to

2)  We could use the QEMU support for incremental backup (first bit landed
in QEMU 2.4). This has the merit of working with any storage, by only for
virtual machines under QEMU.

As our customers are (so far) only asking about virtual machine backup. I
long ago settled on (2) as most promising.

What I cannot clearly determine is where (1) will fail. Will all iSCSI
volumes connected to QEMU instances eventually become directly connected?

Xiao's unanswered query (below) presents another question. Is this a
site-choice? Could I require my customers to configure their OpenStack
clouds to always route iSCSI connections through the nova-compute host? (I
am not a fan of this approach, but I have to ask.)

To answer Xiao's question, can a site configure their cloud to *always*
directly connect iSCSI volumes to QEMU?

On Tue, Feb 16, 2016 at 4:54 AM, Xiao Ma (xima2) <xima2 at cisco.com> wrote:

> Hi, All
> I want to make the qemu communicate with iscsi target using libiscsi
> directly, and I
> followed https://review.openstack.org/#/c/135854/ to add
> 'volume_drivers = iscsi=nova.virt.libvirt.volume.LibvirtNetVolumeDriver’
>  in nova.conf
>  and then restarted nova services and cinder services, but still the
> volume configuration of vm is as bellow:
>     <disk type='block' device='disk'>
>       <driver name='qemu' type='raw' cache='none'/>
>       <source
> dev='/dev/disk/by-path/ip-'/>
>       <target dev='vdb' bus='virtio'/>
>       <serial>076bb429-67fd-4c0c-9ddf-0dc7621a975a</serial>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x06'
> function='0x0'/>
>     </disk>
> I use centos7 and Liberty version of OpenStack.
> Could anybody tell me how can I achieve it?
> Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160615/e14df37f/attachment.html>

More information about the OpenStack-dev mailing list