scheduler的调度流程
注: 源码可以从~/nava/scheduler/managert.py (select_destinations)开始
scheduler从接受到rpc调用开始,所经历的流程大概如下图所示:
- 对rpc传过来的request_spec参数进行优化(这一步是S版后才有的,为了配合nova-api表中的聚合关系,进行预先的筛选,减少后边查找的范围)
if self.driver.USES_ALLOCATION_CANDIDATES and not is_rebuild:
# Only process the Placement request spec filters when Placement
# is used.
try:
request_filter.process_reqspec(ctxt, spec_obj)
except exception.RequestFilterFailed as e:
raise exception.NoValidHost(reason=e.message)
def process_reqspec(ctxt, request_spec):
"""Process an objects.ReqestSpec before ca