[openstack-dev] [nova] Moving storage placement out of the driver
Jay Pipes
jaypipes at gmail.com
Tue Nov 1 15:37:45 UTC 2016
On 11/01/2016 10:41 AM, Matthew Booth wrote:
> For context, this is a speculative: should we, shouldn't we?
>
> The VMware driver currently allows the user to specify what storage
> their instance will use, I believe using a flavor extra-spec. We've also
> got significant interest in adding the same to the libvirt driver, but
> we've got some additional plumbing work to do first to allow us to
> persist this metadata per-instance, independent of the host
> configuration. It was my intention to add this logic to the libvirt
> driver along similar lines.
>
> At the same time, we're adding resource providers. It's my layman's
> understanding that a storage pool (in the abstract, not referring to a
> particular implementation) will be modelled as a resource provider. A
> host can, theoretically at least, have arbitrarily many of these, and
> one may be attached to multiple hosts.
Yup, exactly correct.
> As it stands today, ComputeManager specifies what disks an instance
> should have, and how large they should be. Where to put them is down to
> the driver.
Yes, mostly. I don't think it's really the compute *manager* object that
specifies what disks an instance should have (it's this [1] code in the
Nova compute RPC server api layer that does this actually), but
regardless, yes, which target block device should be used for which
instance disk is up to the virt driver.
[1] https://github.com/openstack/nova/blob/master/nova/compute/api.py#L713
> If we're modelling this outside the driver and at least 2
> drivers are implementing it, I wonder if we shouldn't be implementing
> storage policy at a higher level than the driver.
Hmm, yes and no. I think it should be a higher-than-virt-driver layer
that determines what *amount* of total disk storage be used for an
instance and which resource provider(s) should provide this disk
storage, but I think it's up to the virt driver to determine which of
the instance's disks get created on which block device.
That make sense? It's more about keeping separate the process of
accounting for disk resource usage and the process of determining
instance disk to block device mapping.
Best,
-jay
> Thoughts?
>
> Matt
> --
> Matthew Booth
> Red Hat Engineering, Virtualisation Team
>
> Phone: +442070094448 (UK)
>
More information about the OpenStack-dev
mailing list