[openstack-dev] [cinder][oslo]Getting filter scheduler into Olso?

Russell Bryant rbryant at redhat.com
Wed Nov 21 19:51:09 UTC 2012


On 11/21/2012 02:15 PM, Huang Zhiteng wrote:
> Hi,
> 
> I've been trying to port filter scheduler (as well as host_manager(),
> host_state(), filters, cost functions stuff) from Nova to Cinder.
> While we are trying to get the change to land in G1, Russell raised
> point that since majority of the code is shared between Nova and
> Cinder, then we should get filter scheduler into Olso. IMO, this is
> doable but it may take more effort to refactor the scheduler to adopt
> the need of two projects than simply porting.  From Cinder's
> perspective, it really needs this feature to allow real/sophisticated
> placement decision to be made in order to support board choice of
> storage back-ends, due to the fact that chance/simple scheduler are
> just toys.
> 
> If this is the right thing to do, let's discuss how should we do it
> and make sure we can land it before G2 since we were targeting this
> feature to G1 for Cinder.  Any thought/comment/suggestion?  Thanks.

I agree that it's going to take more work than just copying the code
into oslo-incubator.  However, it's the right thing to do and no
artificial deadline should be used to lower the quality of the work we do.

The code in nova has already diverged from what is in the cinder patch.
 If the code goes into cinder, that problem will only get worse and
trying to reconcile the copied code will get more and more difficult.

So let's focus on how we can make this happen and get it done ASAP.  :-)
 I think the G2 time frame is doable, but it's going to take some pushing.

We need to take a look at this and figure out what is common and what
isn't.  Here's a start ...

I think the easiest part is the filters, so:

patch idea #1) move nova/loadables.py to oslo-inclubator

patch idea #2) move base filter (nova/filters.py) to oslo-incubator

patch ideas #3..N) host filter base code, shared host filters

It looks like the base host filter code in
nova/scheduler/filters/__init__.py is pretty generic already.  Then we
can also move the host filters that are used by both cinder and nova.

That would be a *great* start and would cut down quite a bit on the
copied code.

The next steps after that are looking at putting a base scheduler
abstraction, and a base filter scheduler that could be shared between
the two projects.  That's going to take more refactoring than what I
outlined above.

-- 
Russell Bryant



More information about the OpenStack-dev mailing list