Considering a case,
When a compute with NUMA NODE 1 which has 4 VCPU and 16GB RAM available to use.
And when you to try to launch a instance with a flavor of 4 VCPU and 16GB RAM, it is failed to launch i.e "message": "No valid host was found. There are not enough hosts available."
Total Available VCPUS
1,3,5,7,9,11,13,15,17,19,21,25,27,29,31,33,35,37,39,41,43,45
Used VCPUS
3,5,7,9,11,13,15,17,19,21,27,29,33,35,37,39,41,43
Free VCPUS
1,25,31,45
1, 25 , 31 and 45 VCPUS are available to use but nova could not able to use them.
As 31 and 45 are not siblings , Nova is not considering them to boot the VM.
Because of Numa Topology Filter returns with 0 hosts available.
Steps to reproduce
==================
We have 22 VCPUS available for Pinning in NUMA NODE 1.
1. Launch an instance with 1 VCPU
2. Launch an instance with 1 VCPU
3. Launch an instance with 8 VCPU
4. Launch an instance with 8 VCPU
5. Launch an instance with 8 VCPU
Expected result
===============
Instance should be in active state
Actual result
=============
Instance is in Error state.
| fault | {"message": "No valid host was found. There are not enough hosts available.", "code": 500, "details": " File \"/usr/lib/python2.7/dist-packages/nova/conductor/manager.py\", line 397, in build_instances |
Environment
===========
1. Exact version of OpenStack you are running.
Mitaka Stable
2. Which hypervisor did you use?
Libvirt + KVM
2. Which storage type did you use?
None
3. Which networking type did you use?
Neutron with OpenVSwitch
Description
===========
CPU pinning fails when the sibling set consists of single VCPUS and a sibling set.
For example,
CoercedSet([45]), CoercedSet([31]), CoercedSet([1, 25])
Considering a case,
When a compute with NUMA NODE 1 which has 4 VCPU and 16GB RAM available to use.
And when you to try to launch a instance with a flavor of 4 VCPU and 16GB RAM, it is failed to launch i.e "message": "No valid host was found. There are not enough hosts available."
Total Available VCPUS 9,11,13, 15,17,19, 21,25,27, 29,31,33, 35,37,39, 41,43,45 11,13,15, 17,19,21, 27,29,33, 35,37,39, 41,43
1,3,5,7,
Used VCPUS
3,5,7,9,
Free VCPUS
1,25,31,45
VCPUS STATISTICS
Total : 22
Usage : 18
Free : 4
siblings= set([21, 45]),set( [7,31]) ,set([15, 39]),set( [11,35] ),set([ 17,41]) ,set([3, 27]),set( [13,37] ),set([ 9,33]), set([19, 43]),set( [5,29]) ,set([1, 25])])
1, 25 , 31 and 45 VCPUS are available to use but nova could not able to use them.
As 31 and 45 are not siblings , Nova is not considering them to boot the VM.
Because of Numa Topology Filter returns with 0 hosts available.
Steps to reproduce
==================
We have 22 VCPUS available for Pinning in NUMA NODE 1.
1. Launch an instance with 1 VCPU
2. Launch an instance with 1 VCPU
3. Launch an instance with 8 VCPU
4. Launch an instance with 8 VCPU
5. Launch an instance with 8 VCPU
Expected result
===============
Instance should be in active state
Actual result
=============
Instance is in Error state. lib/python2. 7/dist- packages/ nova/conductor/ manager. py\", line 397, in build_instances |
| fault | {"message": "No valid host was found. There are not enough hosts available.", "code": 500, "details": " File \"/usr/
Environment
===========
1. Exact version of OpenStack you are running.
Mitaka Stable
2. Which hypervisor did you use?
Libvirt + KVM
2. Which storage type did you use?
None
3. Which networking type did you use?
Neutron with OpenVSwitch