Well, I don't know what John means by "modify the over-commit calculation in 
the scheduler", so I cannot comment. 

The idea of choosing free host for Hadoop on the fly is rather complicated and 
contains several operations, namely: (1) assuring the host never get pass 100% 
CPU load; (2) identifying a host that already has a Hadoop VM running on it, or 
already 100% CPU commitment; (3) releasing the host from 100% CPU commitment 
once the Hadoop VM stops; (4) possibly avoiding other applications to use the 
host (to economy the host resource). 

- You'll need (1) because otherwise your Hadoop VM would come short of 
resources after the host gets overloaded. 
- You'll need (2) because you don't want to restrict a new host while one of 
your 100% CPU commited hosts still has free resources. 
- You'll need (3) because otherwise you host would be forerever restricted, and 
that is no longer "on the fly". 
- You'll may need (4) because otherwise it'd be a waste of resources. 

The problem of changing CPU overcommit on the fly is that when your Hadoop VM 
is still running, someone else can add another VM in the same host with a 
higher CPU overcommit (e.g. 200%), (violating (1) ) thus effecting your Hadoop 
VM also. 
The idea of putting the host in the aggregate can give you (1) and (2). (4) is 
done by AggregateInstanceExtraSpecsFilter. However, it does not give you (3); 
which can be done with pCloud. 


----- Original Message -----

From: "Alexander Kuznetsov" <akuznet...@mirantis.com> 
To: "OpenStack Development Mailing List (not for usage questions)" 
<openstack-dev@lists.openstack.org> 
Sent: Wednesday, November 13, 2013 3:09:40 PM 
Subject: Re: [openstack-dev] [nova] Configure overcommit policy 

Toan and Alex. Having separate computes pools for Hadoop is not suitable if we 
want to use an unused power of OpenStack cluster to run Hadoop analytic jobs. 
Possibly in this case it is better to modify the over-commit calculation in the 
scheduler according John suggestion. 


On Tue, Nov 12, 2013 at 7:16 PM, Khanh-Toan Tran < 
khanh-toan.t...@cloudwatt.com > wrote: 



FYI, by default Openstack overcommit CPU 1:16, meaning it can host 16 times 
number of cores it possesses. As mentioned Alex, you can change it by enabling 
AggregateCoreFilter in nova.conf: 
scheduler_default_filters = <list of your filters, adding AggregateCoreFilter 
here> 

and modifying the overcommit ratio by adding: 
cpu_allocation_ratio=1.0 

Just a suggestion, think of isolating the host for the tenant that uses Hadoop 
so that it will not serve other applications. You have several filters at your 
disposal: 
AggregateInstanceExtraSpecsFilter 
IsolatedHostsFilter 
AggregateMultiTenancyIsolation 

Best regards, 

Toan 


From: "Alex Glikson" < glik...@il.ibm.com > 

To: "OpenStack Development Mailing List (not for usage questions)" < 
openstack-dev@lists.openstack.org > 
Sent: Tuesday, November 12, 2013 3:54:02 PM 

Subject: Re: [openstack-dev] [nova] Configure overcommit policy 

You can consider having a separate host aggregate for Hadoop, and use a 
combination of AggregateInstanceExtraSpecFilter (with a special flavor mapped 
to this host aggregate) and AggregateCoreFilter (overriding 
cpu_allocation_ratio for this host aggregate to be 1). 

Regards, 
Alex 




From: John Garbutt < j...@johngarbutt.com > 
To: "OpenStack Development Mailing List (not for usage questions)" < 
openstack-dev@lists.openstack.org >, 
Date: 12/11/2013 04:41 PM 
Subject: Re: [openstack-dev] [nova] Configure overcommit policy 




On 11 November 2013 12:04, Alexander Kuznetsov < akuznet...@mirantis.com > 
wrote: 
> Hi all, 
> 
> While studying Hadoop performance in a virtual environment, I found an 
> interesting problem with Nova scheduling. In OpenStack cluster, we have 
> overcommit policy, allowing to put on one compute more vms than resources 
> available for them. While it might be suitable for general types of 
> workload, this is definitely not the case for Hadoop clusters, which usually 
> consume 100% of system resources. 
> 
> Is there any way to tell Nova to schedule specific instances (the ones which 
> consume 100% of system resources) without overcommitting resources on 
> compute node? 

You could have a flavor with "no-overcommit" extra spec, and modify 
the over-commit calculation in the scheduler on that case, but I don't 
remember seeing that in there. 

John 

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



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


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






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

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

Reply via email to