This is not a bug. By definition, instances with the 'shared' have no
awareness of the requirements of those with 'dedicated'. You should use
host aggregates to separate instances using 'dedicated' policies from
the other. Refer to the documentation for more info (the caution)

    http://docs.openstack.org/admin-guide/compute-cpu-topologies.html
#customizing-instance-cpu-pinning-policies

** Description changed:

  1. version
+ ==========
+ 
  kilo 2015.1.0
  
  3. Reproduce steps:
+ ===================
  
- 3.1  environment described
+ 3.1 environment described
+ --------------------------
  
- I have one compute node  with 32 cpus,
+ I have one compute node  with 32 CPUs. Its NUMA topology is as follows:
  
- It’s numa_topology is as follows:
- 2 sockets * 8 cores * 2 thread = 32
+     2 sockets * 8 cores * 2 thread = 32
  
- set cpu_allocation_ratio=2 in nova.conf
+ I have configured cpu_allocation_ratio=2 in 'nova.conf'.
  
- 3.2 create a flavor  with 32 cpus:
+ 3.2 create a flavor with 32 CPUs
+ --------------------------------
  
- [root@nail-SBCJ-5-3-13 nova(keystone_admin)]# nova flavor-show 30cpu
- +----------------------------+-------+
- | Property                   | Value |
- +----------------------------+-------+
- | OS-FLV-DISABLED:disabled   | False |
- | OS-FLV-EXT-DATA:ephemeral  | 0     |
- | disk                       | 1     |
- | extra_specs                | {}    |
- | id                         | 7     |
- | name                       | 32cpu |
- | os-flavor-access:is_public | True  |
- | ram                        | 512   |
- | rxtx_factor                | 1.0   |
- | swap                       |       |
- | vcpus                      | 32    |
- +----------------------------+-------+
+ Create a flavor and set NUMA properties as follows:
  
- 3.2 Set the numa properties as follows,then,create vm use the flavor
- nova flavor-key 32cpu  set hw:numa_nodes=2 hw:numa_cpus.0="0-15" 
hw:numa_mem.0=256 hw:numa_cpus.1="16-31" hw:numa_mem.1=256 
hw:cpu_policy=dedicated
+     $ nova flavor-key 32cpu set hw:numa_nodes=2 \
+       hw:numa_cpus.0="0-15" hw:numa_mem.0=256 \
+       hw:numa_cpus.1="16-31" hw:numa_mem.1=256 \
+       hw:cpu_policy=dedicated
  
- 3.3 create another flavor with 20 cpus ,Set the numa properties as 
follows,then,create vm use the flavor
- nova flavor-key 20cpu  set hw:numa_nodes=2 hw:numa_cpus.0="0-9" 
hw:numa_mem.0=256 hw:numa_cpus.1="10-19" hw:numa_mem.1=256 hw:cpu_policy=share
+     $ nova flavor-show 32cpu
+     +----------------------------+-------+
+     | Property                   | Value |
+     +----------------------------+-------+
+     | OS-FLV-DISABLED:disabled   | False |
+     | OS-FLV-EXT-DATA:ephemeral  | 0     |
+     | disk                       | 1     |
+     | extra_specs                | {}    |
+     | id                         | 7     |
+     | name                       | 32cpu |
+     | os-flavor-access:is_public | True  |
+     | ram                        | 512   |
+     | rxtx_factor                | 1.0   |
+     | swap                       |       |
+     | vcpus                      | 32    |
+     +----------------------------+-------+
+ 
+ Create a VM using this flavor.
+ 
+ 3.3 create another flavor with 20 cpus
+ --------------------------------------
+ 
+ Create another flavor and set NUMA properties as follows:
+ 
+     $ nova flavor-key 20cpu set hw:numa_nodes=2 \
+       hw:numa_cpus.0="0-9" hw:numa_mem.0=256 \
+       hw:numa_cpus.1="10-19" hw:numa_mem.1=256 \
+       hw:cpu_policy=share
+ 
+ Create another VM using this flavor.
+ 
+ 4 Expected Results
+ ==================
+ 
  Expected result: create failed
  Actual result : create success
  
- 4
- 4.1
- if cpu_policy=dedicated  mean the vm has exclusive rights to the specified 
CPU,
- Then the above phenomenon is not reasonable.
- because Even with cpu_allocation, the vm create with share cpu policy is sure 
to use the compute node's CPU.
- so, the vm should create failed when exist vm with dedicated take up all cpu 
on compute node
- 
- 4.2
- if cpu_policy=dedicated  mean the vm Can only use he specified CPU。
- then, The following phenomenon is not reasonable:
- In the same environment
- create flavor with 20 cpus ,Set the numa properties as follows,then,create 2 
vm use the flavor
- nova flavor-key 20cpu hw:numa_nodes=2 hw:numa_cpus.0="0-9" hw:numa_mem.0=256 
hw:numa_cpus.1="10-19" hw:numa_mem.1=256 hw:cpu_policy=dedicated
- Result : one create success, one create failed
- 
- In a word, no matter how to explain ,the 4.1 and 4.2 must have one is
- not reasonable
+ If 'cpu_policy=dedicated' is configured, this should mean the VM has
+ exclusive rights to the specified CPU(s). Even with cpu_allocation, a VM
+ created with the 'shared' CPU policy is sure to use the compute node's
+ CPU resources. As such, the above should not be possible and the VM
+ should fail when exist to schedule.

** Changed in: nova
       Status: Incomplete => Invalid

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1515536

Title:
  create vm with share cpu_policy  breaks exist vm with dedicated
  cpu_policy when use cpu_allocation

Status in OpenStack Compute (nova):
  Invalid

Bug description:
  1. version
  ==========

  kilo 2015.1.0

  3. Reproduce steps:
  ===================

  3.1 environment described
  --------------------------

  I have one compute node  with 32 CPUs. Its NUMA topology is as
  follows:

      2 sockets * 8 cores * 2 thread = 32

  I have configured cpu_allocation_ratio=2 in 'nova.conf'.

  3.2 create a flavor with 32 CPUs
  --------------------------------

  Create a flavor and set NUMA properties as follows:

      $ nova flavor-key 32cpu set hw:numa_nodes=2 \
        hw:numa_cpus.0="0-15" hw:numa_mem.0=256 \
        hw:numa_cpus.1="16-31" hw:numa_mem.1=256 \
        hw:cpu_policy=dedicated

      $ nova flavor-show 32cpu
      +----------------------------+-------+
      | Property                   | Value |
      +----------------------------+-------+
      | OS-FLV-DISABLED:disabled   | False |
      | OS-FLV-EXT-DATA:ephemeral  | 0     |
      | disk                       | 1     |
      | extra_specs                | {}    |
      | id                         | 7     |
      | name                       | 32cpu |
      | os-flavor-access:is_public | True  |
      | ram                        | 512   |
      | rxtx_factor                | 1.0   |
      | swap                       |       |
      | vcpus                      | 32    |
      +----------------------------+-------+

  Create a VM using this flavor.

  3.3 create another flavor with 20 cpus
  --------------------------------------

  Create another flavor and set NUMA properties as follows:

      $ nova flavor-key 20cpu set hw:numa_nodes=2 \
        hw:numa_cpus.0="0-9" hw:numa_mem.0=256 \
        hw:numa_cpus.1="10-19" hw:numa_mem.1=256 \
        hw:cpu_policy=share

  Create another VM using this flavor.

  4 Expected Results
  ==================

  Expected result: create failed
  Actual result : create success

  If 'cpu_policy=dedicated' is configured, this should mean the VM has
  exclusive rights to the specified CPU(s). Even with cpu_allocation, a
  VM created with the 'shared' CPU policy is sure to use the compute
  node's CPU resources. As such, the above should not be possible and
  the VM should fail when exist to schedule.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1515536/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to