The cinder.scheduler.host_manager
Module¶
Manage hosts in the current zone.
-
class
HostManager
¶ Bases:
object
Base HostManager class.
-
get_all_host_states
(context)¶ Returns a dict of all the hosts the HostManager knows about.
Each of the consumable resources in HostState are populated with capabilities scheduler received from RPC.
- For example:
- {‘192.168.1.100’: HostState(), ...}
-
get_filtered_hosts
(hosts, filter_properties, filter_class_names=None)¶ Filter hosts and return only ones passing all filters.
-
get_pools
(context)¶ Returns a dict of all pools on all hosts HostManager knows about.
-
get_weighed_hosts
(hosts, weight_properties, weigher_class_names=None)¶ Weigh the hosts.
-
has_all_capabilities
()¶
-
update_service_capabilities
(service_name, host, capabilities)¶ Update the per-service capabilities based on this notification.
-
-
class
HostState
(host, capabilities=None, service=None)¶ Bases:
object
Mutable and immutable information tracked for a volume backend.
-
consume_from_volume
(volume)¶ Incrementally update host state from an volume.
-
update_backend
(capability)¶
-
update_capabilities
(capabilities=None, service=None)¶
-
update_from_volume_capability
(capability, service=None)¶ Update information about a host from its volume_node info.
‘capability’ is the status info reported by volume backend, a typical capability looks like this:
- capability = {
‘volume_backend_name’: ‘Local iSCSI’, # ‘vendor_name’: ‘OpenStack’, # backend level ‘driver_version’: ‘1.0’, # mandatory/fixed ‘storage_protocol’: ‘iSCSI’, #- stats&capabilities
‘active_volumes’: 10, # ‘IOPS_provisioned’: 30000, # optional custom ‘fancy_capability_1’: ‘eat’, # stats & capabilities ‘fancy_capability_2’: ‘drink’, #/
- ‘pools’: [
- {‘pool_name’: ‘1st pool’, # ‘total_capacity_gb’: 500, # mandatory stats for
‘free_capacity_gb’: 230, # pools ‘allocated_capacity_gb’: 270, # | ‘QoS_support’: ‘False’, # | ‘reserved_percentage’: 0, #/
‘dying_disks’: 100, # ‘super_hero_1’: ‘spider-man’, # optional custom ‘super_hero_2’: ‘flash’, # stats & capabilities ‘super_hero_3’: ‘neoncat’ #/ },
- {‘pool_name’: ‘2nd pool’,
‘total_capacity_gb’: 1024, ‘free_capacity_gb’: 1024, ‘allocated_capacity_gb’: 0, ‘QoS_support’: ‘False’, ‘reserved_percentage’: 0,
‘dying_disks’: 200, ‘super_hero_1’: ‘superman’, ‘super_hero_2’: ‘ ‘, ‘super_hero_2’: ‘Hulk’, }
]
}
-
update_pools
(capability, service)¶ Update storage pools information from backend reported info.
-
-
class
PoolState
(host, capabilities, pool_name)¶ Bases:
cinder.scheduler.host_manager.HostState
-
update_from_volume_capability
(capability, service=None)¶ Update information about a pool from its volume_node info.
-
update_pools
(capability)¶
-