[openstack-dev] [Nova][Heat] Custom Nova Flavor creation through Heat (pt.2)

Solly Ross sross at redhat.com
Mon May 5 15:23:41 UTC 2014


Just to expand a bit on this, flavors are supposed to be the lowest level of granularity,
and the general idea is to round to the nearest flavor (so if you have a VM that requires
3GB of RAM, go with a 4GB flavor).  Hence, in my mind, it doesn't make any sense to create
flavors on the fly; you should have enough flavors to suit your needs, but I can't really
think of a situation where you'd need so much granularity that you'd need to create new
flavors on the fly (assuming, of course, that you planned ahead and created enough flavors
that you don't have VMs that are extremely over-allocated).

Best Regards,
Solly Ross

----- Original Message -----
From: "Serg Melikyan" <smelikyan at mirantis.com>
To: "OpenStack Development Mailing List (not for usage questions)" <openstack-dev at lists.openstack.org>
Sent: Monday, May 5, 2014 2:18:21 AM
Subject: Re: [openstack-dev] [Nova][Heat] Custom Nova Flavor creation through Heat (pt.2)

> Having project-scoped flavors will rid us of the identified issues, and will allow a more fine-grained way of managing physical resources. 

Flavors concept was introduced in clouds to solve issue with effective physical resource usage: 8Gb physical memory can be effectively splitted to two m2.my_small with 4Gb RAM or to eight m1.my_tiny with 1 GB. 

Let's consider example when your cloud have only 2 compute nodes with 8GB RAM: 
vm1 (m1.my_tiny) -> node1 
vm2 (m1.my_tiny) -> node1 
vm3 (m2.my_small) -> node1 
vm4 (m2.my_small) -> node2 (since we could not spawn on node1) 

This leaves ability to spawn predictable 2 VMs with m1.my_tiny flavor on node1, and 2 VMs m1.my_tiny or 1 VM m2.my_small on node2. If user has ability to create any flavor that he likes, he can create flavor like mx.my_flavor with 3GB of RAM that could not be spawned on node1 at all, and leaves 1GB under-used on node2 when spawned there. If you will multiply number of nodes to 100 or even 1000 (like some of the OpenStack deployments) you will have very big memory under-usage. 

Do we really need to have ability to allocate any number of physical resources for VM? If yes, I suggest to make two ways to define number of physical resource allocation for VMs: with flavors and dynamically. Leaving to cloud admins/owners to decide which way they prefer they cloud resources to be allocated. Since small clouds may prefer flavors, and big clouds may have dynamic resource allocation (impact from under-usage will be not so big). As transition plan project-scoped flavors may do the job. 


On Fri, May 2, 2014 at 5:35 PM, Dimitri Mazmanov < dimitri.mazmanov at ericsson.com > wrote: 



This topic has already been discussed last year and a use-case was described (see [1]). 
Here's a Heat blueprint for a new OS::Nova::Flavor resource: [2]. 
Several issues have been brought up after posting my implementation for review [3], all related to how flavors are defined/implemented in nova: 


    * Only admin tenants can manage flavors due to the default admin rule in policy.json. 
    * Per-stack flavor creation will pollute the global flavor list 
    * If two stacks create a flavor with the same name, collision will occur, which will lead to the following error: ERROR (Conflict): Flavor with name dupflavor already exists. (HTTP 409) 
These and the ones described by Steven Hardy in [4] are related to the flavor scoping in Nova. 

Is there any plan/discussion to allow project scoped flavors in nova, similar to the Steven’s proposal for role-based scoping (see [4])? 
Currently the only purpose of the is_public flag is to hide the flavor from users without the admin role, but it’s still visible in all projects. Any plan to change this? 

Having project-scoped flavors will rid us of the identified issues, and will allow a more fine-grained way of managing physical resources. 

Dimitri 

[1] http://lists.openstack.org/pipermail/openstack-dev/2013-November/018744.html 
[2] https://wiki.openstack.org/wiki/Heat/Blueprints/dynamic-flavors 
[3] https://review.openstack.org/#/c/90029 
[4] http://lists.openstack.org/pipermail/openstack-dev/2013-November/019099.html 

_______________________________________________ 
OpenStack-dev mailing list 
OpenStack-dev at lists.openstack.org 
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev 




-- 
Serg Melikyan, Senior Software Engineer at Mirantis, Inc. 
http://mirantis.com | smelikyan at mirantis.com 

+7 (495) 640-4904, 0261 
+7 (903) 156-0836 

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev at lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev



More information about the OpenStack-dev mailing list