cinder/cinder/scheduler/simple.py

67 lines
2.9 KiB
Python

# Copyright (c) 2010 OpenStack Foundation
# Copyright 2010 United States Government as represented by the
# Administrator of the National Aeronautics and Space Administration.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""
Chance and Simple Scheduler are DEPRECATED.
Chance and Simple scheduler implementation have been deprecated, as their
functionality can be implemented using the FilterScheduler, here's how:
If one would like to have scheduler randomly picks available back-end
(like ChanceScheduler did), use FilterScheduler with following combination
of filters and weighers.
scheduler_driver = cinder.scheduler.filter_scheduler.FilterScheduler
scheduler_default_filters = ['AvailabilityZoneFilter', 'CapacityFilter',
'CapabilitiesFilter']
scheduler_default_weighers = 'ChanceWeigher'
If one prefers the scheduler to pick up the back-end has most available
space that scheduler can see (like SimpleScheduler did), use following
combination of filters and weighers with FilterScheduler.
scheduler_driver = cinder.scheduler.filter_scheduler.FilterScheduler
scheduler_default_filters = ['AvailabilityZoneFilter', 'CapacityFilter',
'CapabilitiesFilter']
scheduler_default_weighers = 'AllocatedCapacityWeigher'
allocated_capacity_weight_multiplier = -1.0
Setting/leaving configure option
'scheduler_driver=cinder.scheduler.chance.ChanceScheduler' or
'scheduler_driver=cinder.scheduler.simple.SimpleScheduler' in cinder.conf
works exactly the same as described above since scheduler manager has been
updated to do the trick internally/transparently for users.
With that, FilterScheduler behaves mostly the same as Chance/SimpleScheduler,
with additional benefits of supporting volume types, volume encryption, QoS.
"""
from oslo.config import cfg
simple_scheduler_opts = [
cfg.IntOpt("max_gigabytes",
default=10000,
help="This configure option has been deprecated along with "
"the SimpleScheduler. New scheduler is able to gather "
"capacity information for each host, thus setting the "
"maximum number of volume gigabytes for host is no "
"longer needed. It's safe to remove this configure "
"from cinder.conf."), ]
CONF = cfg.CONF
CONF.register_opts(simple_scheduler_opts)