[openstack-dev] [nova][cinder][oslo][scheduler] How to leverage oslo schduler/filters for nova and cinder

Khanh-Toan Tran khanh-toan.tran at cloudwatt.com
Sun Nov 17 16:36:13 UTC 2013



Dear all, 



There is a need for a scheduler that can scheduling a group of resources as a whole, which is difficult to realize due to the separation of Nova, Cinder –scheduler. Thus I’m in favor of a dedicated scheduler component. 




However, before talking about API or implementation, wouldn't it be better to see if the nova/cinder scheduler is independent enough to be separated from the core, in particular the data that the require to make a proper scheduling decision? It is reasonable to look again at the current architecture of Nova and Cinder to see which relation that nova-scheduler and cinder-scheduler have with the rest of nova/cinder components, and which data they take from nova/cinder DB and whether these data can be separated from Nova/Cinder. If we’re trying to separate Nova/Cinder-scheduler from the rest, better to cut all ties between them and the rest. 

> 4) Drop cinder, and nova tables that store host states (as we don't 
> need them) 

Is it really OK to drop these tables? Could Nova can work without them (e.g. rollback)? And if Ceilometer is about to ask nova for host state metrics ? 



De : Boris Pavlovic [mailto:bpavlovic at mirantis.com] 
Envoyé : vendredi 15 novembre 2013 16:57 
À : OpenStack Development Mailing List (not for usage questions) 
Objet : Re: [openstack-dev] [nova][cinder][oslo][scheduler] How to leverage oslo schduler/filters for nova and cinder 




Alex, 





(*sorry for long reply from vocation*) 





>> How do you envision the life cycle of such a scheduler in terms of code repository, build, test, etc? 





As a first step we could just make it inside nova, when we finish and prove that this approach works well we could split it out the nova in separated project and integrate with devstack and so on so on... 








>> What kind of changes to provisioning APIs do you envision to 'feed' such a scheduler? 





At this moment nova.scheduler is already separated service with amqp queue, what we need at this moment is to add 1 new rpc method to it. That will update state of some host. 








>> Any particular reason you didn't mention Neutron? 





Yes, I am not familiar with Neutron architecture =) 








>> Also, there are some interesting technical challenges (e.g., state management across potentially large number of instances of memcached). 





10-100k keys-values is nothing for memcached. So what kind of instances? 








Best regards, 


Boris Pavlovic 

















On Sun, Nov 10, 2013 at 4:20 PM, Alex Glikson < GLIKSON at il.ibm.com > wrote: 

Hi Boris, 



This is a very interesting approach. 
How do you envision the life cycle of such a scheduler in terms of code repository, build, test, etc? 
What kind of changes to provisioning APIs do you envision to 'feed' such a scheduler? 
Any particular reason you didn't mention Neutron? 
Also, there are some interesting technical challenges (e.g., state management across potentially large number of instances of memcached). 



Thanks, 
Alex 




Boris Pavlovic < bpavlovic at mirantis.com > wrote on 10/11/2013 07:05:42 PM: 



> From: Boris Pavlovic < bpavlovic at mirantis.com > 
> To: "OpenStack Development Mailing List (not for usage questions)" 
> < openstack-dev at lists.openstack.org >, 
> Date: 10/11/2013 07:07 PM 
> Subject: Re: [openstack-dev] [nova][cinder][oslo][scheduler] How to 
> leverage oslo schduler/filters for nova and cinder 


> 
> Jay, 
> 
> Hi Jay, yes we were working about putting all common stuff in oslo- 
> scheduler. (not only filters) 
> 
> As a result of this work we understood, that this is wrong approach. 
> Because it makes result code very complex and unclear. And actually 
> we didn't find the way to put all common stuff inside oslo. Instead 
> of trying to make life too complex we found better approach. 
> Implement scheduler aaS that can scale (current solution has some 
> scale issues) & store all data from nova, cinder & probably other places. 
> 
> To implement such approach we should change a bit current architecture: 
> 1) Scheduler should store all his data (not nova.db & cinder.db) 
> 2) Scheduler should always have own snapshot of "wold" state, and 
> sync it with another schedulers using something that is quite fast 
> (e.g. memcached) 
> 3) Merge schedulers rpc methods from nova & cinder in one scheduler 
> (it is possbile if we store all data from cinder & nova in one sceduler). 
> 4) Drop cinder, and nova tables that store host states (as we don't 
> need them) 
> 
> We implemented already base start (mechanism that store snapshot of 
> world state & sync it between different schedulers): 
> 
> https://review.openstack.org/#/c/45867/ (it is still bit in WIP) 
> 
> Best regards, 
> Boris Pavlovic 
> --- 
> Mirantis Inc. 
> 
> 

> On Sun, Nov 10, 2013 at 1:59 PM, Jay Lau < jay.lau.513 at gmail.com > wrote: 
> I noticed that there is already a bp in oslo tracing what I want to do: 
> https://blueprints.launchpad.net/oslo/+spec/oslo-scheduler 

> Thanks, 

> Jay 

> 

> 2013/11/9 Jay Lau < jay.lau.513 at gmail.com > 
> Greetings, 
> 
> Now in oslo, we already put some scheduler filters/weights logic 
> there and cinder is using oslo scheduler filters/weights logic, 
> seems we want both nova&cinder use this logic in future. 
> 
> Found some problems as following: 
> 1) In cinder, some filters/weight logic reside in cinder/openstack/ 
> common/scheduler and some filter/weight logic in cinder/scheduler, 
> this is not consistent and also will make some cinder hackers 
> confused: where shall I put the scheduler filter/weight. 
> 2) Nova is not using filter/weight from oslo and also not using 
> entry point to handle all filter/weight. 
> 3) There is not enough filters in oslo, we may need to add more 
> there: such as same host filter, different host filter, retry filter etc. 
> 
> So my proposal is as following: 
> 1) Add more filters to oslo, such as same host filter, different 
> host filter, retry filter etc. 
> 2) Move all filters/weight logic in cinder from cinder/scheduler to 
> cinder/openstack/common/scheduler 
> 3) Enable nova use filter/weight logic from oslo (Move all filter 
> logic to nova/openstack/common/scheduler) and also use entry point 
> to handle all filters/weight logic. 
> 
> Comments? 
> 
> Thanks, 
> 
> Jay 
> 
> 
> _______________________________________________ 
> OpenStack-dev mailing list 
> OpenStack-dev at lists.openstack.org 
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev 

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



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






Aucun virus trouvé dans ce message. 
Analyse effectuée par AVG - www.avg.fr 
Version: 2014.0.4158 / Base de données virale: 3629/6837 - Date: 14/11/2013 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131117/9f9f83c5/attachment.html>


More information about the OpenStack-dev mailing list