[openstack-dev] [nova] volume affinity filter for nova scheduler

Álvaro López García alvaro.lopez.garcia at cern.ch
Thu Jul 4 07:56:59 UTC 2013

On Wed 03 Jul 2013 (18:24), Alexey Ovchinnikov wrote:
> Hi everyone,

Hi Alexey.

> for some time I have been working on an implementation of a filter that
> would allow to force instances to hosts which contain specific volumes.
> A blueprint can be found here:
> https://blueprints.launchpad.net/nova/+spec/volume-affinity-filter
> and an implementation here:
> https://review.openstack.org/#/c/29343/

This is something we were eager to see and that we were also aiming to
implement in the future, so, great job!

> The filter works for LVM driver and now it picks either a host containing
> specified volume
> or nothing (thus effectively failing instance scheduling). Now it fails
> primarily when it can't find the volume. It has been
> pointed to me that sometimes it may be desirable not to fail instance
> scheduling but to run it anyway. However this softer behaviour fits better
> for weighter function. Thus I have registered a blueprint for the
> weighter function:
> https://blueprints.launchpad.net/nova/+spec/volume-affinity-weighter-function
> I was thinking about both the filter and the weighter working together. The
> former
> could be used in cases when we strongly need storage space associated with
> an
> instance and need them placed on the same host. The latter could be used
> when
> storage space is nice to have and preferably on the same host
> with an instance, but not so crucial as to have the instance running.
> During reviewing a question appeared whether we need the filter and
> wouldn't things be better
> if we removed it and had only the weighter function instead. I am not yet
> convinced
> that the filter is useless and needs to be replaced with the weighter,
> so I am asking for your opinion on this matter. Do you see usecases for the
> filter,
> or the weighter will answer all needs?

I'd go with the weigher. We have some use cases for this volume
affinity, but they always require to access to their data rather than
failing. Moreover, the filter implies that the user has some knowledge
on the infrastructure (i.e. that volumes and instances can be
coallocated) and it is only available for LVM drivers, whereas the
weigher should work transparently in all situations.

Álvaro López García                              aloga at ifca.unican.es
Instituto de Física de Cantabria         http://alvarolopez.github.io
Ed. Juan Jordá, Campus UC                      tel: (+34) 942 200 969
Avda. de los Castros s/n
39005 Santander (SPAIN)
"If you haven't used grep, you've missed one of the simple pleasures of
 life." -- Brian Kernighan

More information about the OpenStack-dev mailing list