Manage backends in the current zone.
BackendState
(host, cluster_name, capabilities=None, service=None)¶Bases: object
Mutable and immutable information tracked for a volume backend.
backend_id
¶consume_from_volume
(volume, update_time=True)¶Incrementally update host state from a 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.
HostManager
¶Bases: object
Base HostManager class.
REQUIRED_KEYS
= frozenset(['pool_name', 'thick_provisioning_support', 'provisioned_capacity_gb', 'allocated_capacity_gb', 'thin_provisioning_support', 'free_capacity_gb', 'total_capacity_gb', 'reserved_percentage', 'max_over_subscription_ratio'])¶backend_state_cls
¶alias of BackendState
get_all_backend_states
(context)¶Returns a dict of all the backends the HostManager knows about.
Each of the consumable resources in BackendState are populated with capabilities scheduler received from RPC.
get_filtered_backends
(backends, filter_properties, filter_class_names=None)¶Filter backends and return only ones passing all filters.
get_pools
(context, filters=None)¶Returns a dict of all pools on all hosts HostManager knows about.
get_usage_and_notify
(capa_new, updated_pools, host, timestamp)¶get_weighed_backends
(backends, weight_properties, weigher_class_names=None)¶Weigh the backends.
has_all_capabilities
()¶notify_service_capabilities
(service_name, backend, capabilities, timestamp)¶Notify the ceilometer with updated volume stats
revert_volume_consumed_capacity
(pool_name, size)¶update_service_capabilities
(service_name, host, capabilities, cluster_name, timestamp)¶Update the per-service capabilities based on this notification.
PoolState
(host, cluster_name, capabilities, pool_name)¶Bases: cinder.scheduler.host_manager.BackendState
update_from_volume_capability
(capability, service=None)¶Update information about a pool from its volume_node info.
update_pools
(capability)¶Update storage pools information from backend reported info.
ReadOnlyDict
(source=None)¶Bases: _abcoll.Mapping
A read-only dict.
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.