VM Deployment Failed Due to Insufficient Storage

Problem

VM deployment using Ephemeral storage fails with "No valid host was found" on ostackhost logs, and "insufficient resources or a temporary occurrence as compute nodes start up" error in Nova-scheduler logs.

INFO nova.scheduler.manager [None [Req-UUID] [Project-ID] [User-ID] - - default default] Got no allocation candidates from the Placement API. This could be due to insufficient resources or a temporary occurrence as compute nodes start up.

Environment

  • Self-Hosted Private Cloud Director Virtualization - v2025.4 and Higher

  • Self-Hosted Private Cloud Director Kubernetes - v2025.4 and Higher

Cause

VM deployment failed because the requested size surpassed the resource provider's max_unit allocation. Further details on [max_units] allocation.

Diagnostics

On underlying host:

  1. Get the VM disk storage path using command given below:

$ sudo virsh domblklist <VM_UUID>
$ sudo virsh domblklist <VM_UUID> Target Source ------------------------------------------------------------------------- vda /opt/data/instances/[VM_UUID]/disk
  1. Check where the VM disk storage path is mounted.

Note:

The OpenStack placement API takes Disk dev mapper size into account when calculating the resource provider's max unit value.

$ df -lh /opt/data/instances/<VM_UUID>/disk
$ sudo df -lh /opt/data/instances/[VM_UUID]/disk Filesystem Size Used Avail Use% Mounted on [Disk dev mapper path] 98G 69G 25G 74% /

Here,

  • VM disk storage path is mounted on "/".

  • The OpenStack consider this 98 GB size while calculating the resource provider's max unit value.

OpenStack CLI:

  1. List down all available resource providers. These resource providers are responsible for allocating the CPU, Memory and Storage to the VMs.

$ openstack resource provider list
  1. Check for max_unit for Disk_GB on all resource providers listed above.

Note:

Any VM requesting an ephemeral storage disk above the max_unit value will fail with "insufficient resources or a temporary occurrence as compute nodes start up" error in the nova-scheduler logs.

$ openstack resource provider inventory list <RESOURCE_PROVIDER_UUID>
$ openstack resource provider inventory list <RESOURCE_PROVIDER_UUID> +----------------+------------------+----------+----------+----------+-----------+--------+-------+ | resource_class | allocation_ratio | min_unit | max_unit | reserved | step_size | total | used | +----------------+------------------+----------+----------+----------+-----------+--------+-------+ | VCPU | 16.0 | 1 | 80 | 0 | 1 | 80 | 6 | | MEMORY_MB | 1.5 | 1 | 773663 | 512 | 1 | 773663 | 12288 | | DISK_GB | 9999.0 | 1 | 97 | 0 | 1 | 97 | 120 | +----------------+------------------+----------+----------+----------+-----------+--------+-------+

Here,

The DISK_GB for the resource provider is 97GB, a value determined by the VM's disk storage configured for the root (/) mount point.

Resolution

  1. Use image which has storage requirements less than the max_unit value from all available resource providers.

  2. It is recommended to use Cinder-backed volumes for VM deployments.

Validation

  1. How much storage is requested by the image used to deploy VM.

$ openstack image list --all | grep -i <IMAAGE_USED_BY_VM> $ openstack image show <IMAGE_UUID> --fit
+------------------+-----------------------------------------------------------------------+ | Field | Value | +------------------+-----------------------------------------------------------------------+ ... . . | disk_format | qcow2 | | file | /v2/images/[image_uuid]/file | | id | [image_uuid] | | min_disk | 80 <----- Image requires 80 GB disk, within max_unit value | | min_ram | 0 | | name | [image_name] | ... . . +------------------+-----------------------------------------------------------------------+
  1. If these steps prove insufficient to resolve the issue, reach out to the Platform9 Support Team for additional assistance.