Merge "[specs] Fix specs according implementation"

This commit is contained in:
Jenkins 2016-05-25 15:43:42 +00:00 committed by Gerrit Code Review
commit bd432f2870
2 changed files with 67 additions and 76 deletions

View File

@ -84,32 +84,32 @@ available Huge Pages and RAM per NUMA node [3]_:
Huge Pages User's configuration will be stored in node.attributes as:
.. code-block:: json
.. code-block:: yaml
node.attributes = {
...
'nova_hugepages': {
'weight': 20,
'description': "Nova Huge Pages configuration",
'label': "Nova Huge Pages",
'type': 'custom_hugepages',
'value': {
'<size>': <count>,
'1G': 10
}
},
'dpdk_hugepages': {
'weight': 20,
'description': "DPDK Huge Pages per NUMA node in MB",
'label': "DPDK Huge Pages",
'type': 'text',
'value': '128',
'regex': {
'source': "^\d+$",
'error': "Incorrect value"
}
...
}
node_attributes:
hugepages:
metadata:
group: "nfv"
label: "Huge Pages"
weight: 20
restrictions:
- condition: "settings:common.libvirt_type.value != 'kvm'"
action: "hide"
nova:
weight: 10
description: "Nova Huge Pages configuration"
label: "Nova Huge Pages"
type: "custom_hugepages"
value: {}
dpdk:
weight: 20
description: "DPDK Huge Pages per NUMA node in MB"
label: "DPDK Huge Pages"
type: "text"
value: "0"
regex:
source: '^\d+$'
error: "Incorrect value"
Where `<size>` can only be one of the available Huge Pages sizes. For all
remaining memory will be used default 4K page size.
@ -123,6 +123,11 @@ astute.yaml will be extended as
.. code-block:: yaml
network_metadata:
nodes:
node-1:
nova_hugepages_enabled: True
...
nova:
...
enable_hugepages: true
@ -130,8 +135,12 @@ astute.yaml will be extended as
...
ovs_socket_mem: 128,128,128,128
hugepages:
- {count: 512, numa_id: 0, size: 2M}
- {count: 8, numa_id: 1, size: 1G}
- {count: 512, numa_id: 0, size: 2048}
- {count: 8, numa_id: 1, size: 1048576}
Section of `nodes` will be moved from `network_metadata` out to root in the
next releases. `nova_hugepages_enabled` will be used by controllers to
know whether appropriate filter should be enabled for nova-scheduler.
`ovs_socket_mem` contains information about Huge Pages size in MB per
NUMA node. DPDK driver needs only total amount of memory on each NUMA

View File

@ -97,19 +97,19 @@ Collected information should be passed to nailgun in the next format:
.. code-block:: json
'numa_topology': {
'supported_hugepages': ['2048', '1048576']
'numa_nodes': [
{'id': 0,
'cpus': [0, 1, ..., 5, 12, 13, ..., 17],
'memory: 135171932160},
{'id': 1,
'cpus': [6, 7, ..., 11, 18, 19, ..., 23],
'memory': 135289372672}]
"numa_topology": {
"supported_hugepages": [2048, 1048576]
"numa_nodes": [
{"id": 0,
"cpus": [0, 1, ..., 5, 12, 13, ..., 17],
"memory: 135171932160},
{"id": 1,
"cpus": [6, 7, ..., 11, 18, 19, ..., 23],
"memory": 135289372672}]
],
'distances': [
[1.0, 2.1],
[2.1, 1.0]
"distances": [
["1.0", "2.1"],
["2.1", "1.0"]
]
}
@ -130,7 +130,7 @@ This information will be stored in node metadata
node.metadata = {
...
'numa_topology': {
"numa_topology": {
...
}
...
@ -176,29 +176,6 @@ where User's CPUs configuration will be stored as
regex:
source: '^\d+$'
error: "Incorrect value"
hugepages:
metadata:
group: "nfv"
label: "Huge Pages"
weight: 20
restrictions:
- condition: "settings:common.libvirt_type.value != 'kvm'"
action: "hide"
nova:
weight: 10
description: "Nova Huge Pages configuration"
label: "Nova Huge Pages"
type: "custom_hugepages"
value: {}
dpdk:
weight: 20
description: "DPDK Huge Pages per NUMA node in MB"
label: "DPDK Huge Pages"
type: "text"
value: "0"
regex:
source: '^\d+$'
error: "Incorrect value"
All values will be '0' by default.
Nailgun will specify CPU ids for each Nova and DPDK accordingly to User
@ -206,21 +183,27 @@ configuration and pass this information to astute.yaml:
.. code-block:: yaml
network_metadata:
nodes:
node-1:
nova_cpu_pinning_enabled: True
...
nova:
...
cpu_pinning: [0, 1, 18, 19]
enable_cpu_pinning: true
dpdk:
...
enabled: True
ovs_core_mask: 0x4
ovs_pmd_core_mask: 0x6
`cpu_pinning` will be generated per compute node.
`enable_cpu_pinning` will be true in case there are some
compute with pinned CPU. It's global (is generated for all nodes).
Section of `nodes` will be moved from `network_metadata` out to root in the
next releases. `nova_cpu_pinning_enabled` will be used by controllers to
know whether appropriate filter should be enabled for nova-scheduler.
DPDK `enable` will be taken from appropriate NIC info [2]_.
`cpu_pinning` will be generated per compute node.
DPDK `enabled` will be taken from appropriate NIC info [2]_.
Nailgun will calculate cpu masks according to User configuration -
`dpdk_cpu_pinning`
@ -267,27 +250,26 @@ None
Fuel Client
===========
Fuel Client have to show node NUMA topology. New command should be added:
Fuel Client have to show node NUMA topology. Node show command will be
extended with new fields:
.. code-block:: console
fuel node --node-id 1 --numa-topology
fuel2 node show 1
User can use next commands to configure node attributes
.. code-block:: console
fuel node --node-id 1 --attributes --download/-d
fuel node --node-id 1 --attributes --upload/-u
fuel node --node-id 1 --attributes --download [--dir download-dir]
fuel node --node-id 1 --attributes --upload [--dir upload-dir]
Also, appropriate commands should be added to fuel2 client:
.. code-block:: console
fuel2 node show-numa-topology 1
fuel2 node download-attributes 1
fuel2 node upload-attributes 1
fuel2 node attributes-download 1
fuel2 node attributes-upload 1
Plugins