[Openstack-operators] Quota Templates
Jay Pipes
jaypipes at gmail.com
Mon Apr 7 16:52:59 UTC 2014
Thanks for you response, Narayan, this is an interesting discussion. See
comments below inline.
On Mon, 2014-04-07 at 11:38 -0500, Narayan Desai wrote:
> On Sat, Apr 5, 2014 at 3:22 PM, Jay Pipes <jaypipes at gmail.com> wrote:
> On Fri, 2014-04-04 at 20:39 -0500, Narayan Desai wrote:
> >> If you're interested in quotas, we have a completely
> different problem
> > with quotas that is a real showstopper for us. We have a
> really large
> > dynamic range in resource quantities for our different
> instance types.
> > (for example, we have 3 orders of magnitudes in the range of
> memory
> > configurations). This makes quotas pretty useless for us as
> they are
> > currently implemented, since you can't represent limits for
> these
> > different kinds of resources in the same quota.
>
>
> Why can't you? The resource is the memory, CPU, and disk used,
> not the instance type.
>
> Honestly, I think that this is a user-interface thing, not a
> quota
> management thing. In other words, have the quota-management UI
> show some translation help-text. For the user, it would be
> something like "you have room for X m2.xlarge instances left".
> For an admin it would be something like "this quota allocation
> represents X m2.xlarge instances".
>
>
> I think that this assumption is the reason that we have the quota
> system that we do. A resource like 1GB of memory isn't comparable
> across all kinds of resources. It is if you have a simple hardware
> configuration with relatively uniform hardware configurations, but
> heterogeneity causes this not to work.
>
> For example, 1GB of memory on a 24 GB system is way different than 1GB
> of memory on a 2TB system.
How so? If you said that 1GB of some super-fast RAM is different than
1GB of normal RAM, I would agree with you (and point you to the
discussion of weighting factors in my full previous ML response). But I
don't see any difference between 1GB of memory on systems with different
overall amounts of the same type of memory.
> The costs are different, the resource allocation considerations are
> different, etc.
No, the costs are the same. The resource allocation considerations are
only different in that the things providing the resource (the hosts)
have different available amounts of RAM. But that's not what quotas are
about. That's what scheduling/placement is about. It's two different
things.
> A model that assumes uniformity means that you can't do anything
> sensible when resource costs and considerations aren't uniform across
> your system.
A model that assumes uniformity of the basic resource types is essential
here. A single CPU unit is the same as any other CPU unit. A GB of RAM
is the same as any other GB of RAM. With weighting factors for given
extra specs, you can influence the overall resource used (see my full
response for how weighting factors could be used). But if you don't have
uniformity of the base resources, you have no foundation from which to
apply quota management.
> While keying off of instance types isn't perfect, and certainly
> doesn't give you the model that you'd like, you can make things work
> based on an implicit resource model when using instances that you
> can't do through resource reductionism.
Two problems with using the instance type for the model, instead of the
base resource types that the instance type has (and the weighting
factors of its extra specs):
1) Instance types can and do change over time. Unless you've decomposed
the instance type into its base resource types, you don't have any way
to adjust quotas properly that reflect the usage of the underlying
resources.
2) Quota setting based on instance types would require a human making
decisions about capacity based on that human's (often flawed)
understanding of how many of that instance type can "fit" into their
deployment. Things that humans do are unreliable compared with an
algorithmic approach to quota determination.
Best,
-jay
More information about the OpenStack-operators
mailing list