| title | OpenStack Cinder No Weighed Backends Available | ||||||
|---|---|---|---|---|---|---|---|
| slug | openstack-cinder-no-weighed-backends-available | ||||||
| technologies |
|
||||||
| severity | high | ||||||
| tags |
|
||||||
| related |
|
||||||
| last_reviewed | 2026-06-27 |
cinder-scheduler[3110]: ERROR cinder.scheduler.flows.create_volume [req-5e1d...] \
Failed to run task cinder.scheduler.flows.create_volume.ScheduleCreateVolumeTask;\
No valid backend was found. No weighed backends available
$ openstack volume show 91a2...
| status | error |
| error | No valid backend was found. No weighed backends.. |
This is Cinder's scheduling-stage failure β the analogue of Nova's NoValidHost.
cinder-scheduler filters and weighs all reporting backends against the volume
request (size, volume type, extra-specs, capabilities). When every backend is
filtered out, no backend remains to be weighed, so scheduling fails before any
backend even attempts provisioning and the volume goes straight to error.
- openstack (cinder-scheduler, cinder-volume backends)
high β no new volumes of the affected type/size can be provisioned; existing volumes are unaffected, but volume creation is broken for matching requests.
- Genuine capacity exhaustion β no backend has enough free space after
max_over_subscription_ratiofor the requested size. - Volume-type extra-specs (e.g.
volume_backend_name) match no live backend. cinder-volumebackend services aredown, so theCapacityFilter/AvailabilityZoneFilterhas nothing to weigh.- Backends are reporting stale or zero capacity (driver capability-report bug).
- Requested availability zone has no backend.
Each cinder-volume backend periodically reports capabilities/capacity to the
scheduler. On a create request, cinder-scheduler runs the filters in
scheduler_default_filters (Availability, Capacity, CapabilitiesFilter, etc.)
over those reports, then weighs survivors. If a filter eliminates all backends β
because none match the type's volume_backend_name, none have free space, or
none are reporting at all β the weighing set is empty and the task raises
No weighed backends available. The scheduler debug log shows which filter
removed the last backend.
# Are backend services up and which AZ/host?
openstack volume service list
# The volume type and its extra-specs that must be matched
openstack volume type show <type> -c properties
# Scheduler messages for the failed request
openstack volume message list --resource-uuid <volume-id>
# Scheduler filtering detail
journalctl -u devstack@c-sch --since "15 min ago" | grep -iE "filter|weighed|capacity"
# Backend free capacity (LVM example)
sudo vgs# volume service list
| Binary | Host | Status | State |
| cinder-volume | host@lvm-1 | enabled | down | <- backend down
# scheduler log
Filter CapacityFilter returned 0 hosts
A backend down, a CapacityFilter returned 0 hosts line, or a type whose
volume_backend_name matches nothing live identifies the cause.
- Capacity: add/free backend storage, or request a smaller volume. Review
max_over_subscription_ratioandreserved_percentage. - Type mismatch: correct the volume type's
volume_backend_name/ extra-specs to match a live backend, or point requests at the right type. - Down backend: restart
cinder-volumeand confirm it reportsup:openstack volume service list
- Stale capacity: restart the offending backend so it re-reports capabilities.
openstack volume create --size 1 --type <type> sched-test
openstack volume show sched-test -c status -f value # Expect: available
openstack volume delete sched-test- Alert on backend free capacity and on any
cinder-volumegoingdown. - Keep volume types' extra-specs in sync with deployed backends.
- Review over-subscription ratios so reported capacity is honest.
- Audit AZ-to-backend mapping when adding/removing storage hosts.
openstack Β· cinder Β· scheduler Β· capacity Β· volume-type Β· production