Merge "[specs] Fix specs according implementation"
This commit is contained in:
commit
bd432f2870
|
@ -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:
|
Huge Pages User's configuration will be stored in node.attributes as:
|
||||||
|
|
||||||
.. code-block:: json
|
.. code-block:: yaml
|
||||||
|
|
||||||
node.attributes = {
|
node_attributes:
|
||||||
...
|
hugepages:
|
||||||
'nova_hugepages': {
|
metadata:
|
||||||
'weight': 20,
|
group: "nfv"
|
||||||
'description': "Nova Huge Pages configuration",
|
label: "Huge Pages"
|
||||||
'label': "Nova Huge Pages",
|
weight: 20
|
||||||
'type': 'custom_hugepages',
|
restrictions:
|
||||||
'value': {
|
- condition: "settings:common.libvirt_type.value != 'kvm'"
|
||||||
'<size>': <count>,
|
action: "hide"
|
||||||
'1G': 10
|
nova:
|
||||||
}
|
weight: 10
|
||||||
},
|
description: "Nova Huge Pages configuration"
|
||||||
'dpdk_hugepages': {
|
label: "Nova Huge Pages"
|
||||||
'weight': 20,
|
type: "custom_hugepages"
|
||||||
'description': "DPDK Huge Pages per NUMA node in MB",
|
value: {}
|
||||||
'label': "DPDK Huge Pages",
|
dpdk:
|
||||||
'type': 'text',
|
weight: 20
|
||||||
'value': '128',
|
description: "DPDK Huge Pages per NUMA node in MB"
|
||||||
'regex': {
|
label: "DPDK Huge Pages"
|
||||||
'source': "^\d+$",
|
type: "text"
|
||||||
'error': "Incorrect value"
|
value: "0"
|
||||||
}
|
regex:
|
||||||
...
|
source: '^\d+$'
|
||||||
}
|
error: "Incorrect value"
|
||||||
|
|
||||||
Where `<size>` can only be one of the available Huge Pages sizes. For all
|
Where `<size>` can only be one of the available Huge Pages sizes. For all
|
||||||
remaining memory will be used default 4K page size.
|
remaining memory will be used default 4K page size.
|
||||||
|
@ -123,6 +123,11 @@ astute.yaml will be extended as
|
||||||
|
|
||||||
.. code-block:: yaml
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
network_metadata:
|
||||||
|
nodes:
|
||||||
|
node-1:
|
||||||
|
nova_hugepages_enabled: True
|
||||||
|
...
|
||||||
nova:
|
nova:
|
||||||
...
|
...
|
||||||
enable_hugepages: true
|
enable_hugepages: true
|
||||||
|
@ -130,8 +135,12 @@ astute.yaml will be extended as
|
||||||
...
|
...
|
||||||
ovs_socket_mem: 128,128,128,128
|
ovs_socket_mem: 128,128,128,128
|
||||||
hugepages:
|
hugepages:
|
||||||
- {count: 512, numa_id: 0, size: 2M}
|
- {count: 512, numa_id: 0, size: 2048}
|
||||||
- {count: 8, numa_id: 1, size: 1G}
|
- {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
|
`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
|
NUMA node. DPDK driver needs only total amount of memory on each NUMA
|
||||||
|
|
|
@ -97,19 +97,19 @@ Collected information should be passed to nailgun in the next format:
|
||||||
|
|
||||||
.. code-block:: json
|
.. code-block:: json
|
||||||
|
|
||||||
'numa_topology': {
|
"numa_topology": {
|
||||||
'supported_hugepages': ['2048', '1048576']
|
"supported_hugepages": [2048, 1048576]
|
||||||
'numa_nodes': [
|
"numa_nodes": [
|
||||||
{'id': 0,
|
{"id": 0,
|
||||||
'cpus': [0, 1, ..., 5, 12, 13, ..., 17],
|
"cpus": [0, 1, ..., 5, 12, 13, ..., 17],
|
||||||
'memory: 135171932160},
|
"memory: 135171932160},
|
||||||
{'id': 1,
|
{"id": 1,
|
||||||
'cpus': [6, 7, ..., 11, 18, 19, ..., 23],
|
"cpus": [6, 7, ..., 11, 18, 19, ..., 23],
|
||||||
'memory': 135289372672}]
|
"memory": 135289372672}]
|
||||||
],
|
],
|
||||||
'distances': [
|
"distances": [
|
||||||
[1.0, 2.1],
|
["1.0", "2.1"],
|
||||||
[2.1, 1.0]
|
["2.1", "1.0"]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@ This information will be stored in node metadata
|
||||||
|
|
||||||
node.metadata = {
|
node.metadata = {
|
||||||
...
|
...
|
||||||
'numa_topology': {
|
"numa_topology": {
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
...
|
...
|
||||||
|
@ -176,29 +176,6 @@ where User's CPUs configuration will be stored as
|
||||||
regex:
|
regex:
|
||||||
source: '^\d+$'
|
source: '^\d+$'
|
||||||
error: "Incorrect value"
|
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.
|
All values will be '0' by default.
|
||||||
Nailgun will specify CPU ids for each Nova and DPDK accordingly to User
|
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
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
network_metadata:
|
||||||
|
nodes:
|
||||||
|
node-1:
|
||||||
|
nova_cpu_pinning_enabled: True
|
||||||
|
...
|
||||||
nova:
|
nova:
|
||||||
...
|
...
|
||||||
cpu_pinning: [0, 1, 18, 19]
|
cpu_pinning: [0, 1, 18, 19]
|
||||||
enable_cpu_pinning: true
|
|
||||||
dpdk:
|
dpdk:
|
||||||
...
|
...
|
||||||
enabled: True
|
enabled: True
|
||||||
ovs_core_mask: 0x4
|
ovs_core_mask: 0x4
|
||||||
ovs_pmd_core_mask: 0x6
|
ovs_pmd_core_mask: 0x6
|
||||||
|
|
||||||
`cpu_pinning` will be generated per compute node.
|
Section of `nodes` will be moved from `network_metadata` out to root in the
|
||||||
`enable_cpu_pinning` will be true in case there are some
|
next releases. `nova_cpu_pinning_enabled` will be used by controllers to
|
||||||
compute with pinned CPU. It's global (is generated for all nodes).
|
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 -
|
Nailgun will calculate cpu masks according to User configuration -
|
||||||
`dpdk_cpu_pinning`
|
`dpdk_cpu_pinning`
|
||||||
|
|
||||||
|
@ -267,27 +250,26 @@ None
|
||||||
Fuel Client
|
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
|
.. code-block:: console
|
||||||
|
|
||||||
fuel node --node-id 1 --numa-topology
|
fuel2 node show 1
|
||||||
|
|
||||||
User can use next commands to configure node attributes
|
User can use next commands to configure node attributes
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
fuel node --node-id 1 --attributes --download/-d
|
fuel node --node-id 1 --attributes --download [--dir download-dir]
|
||||||
fuel node --node-id 1 --attributes --upload/-u
|
fuel node --node-id 1 --attributes --upload [--dir upload-dir]
|
||||||
|
|
||||||
Also, appropriate commands should be added to fuel2 client:
|
Also, appropriate commands should be added to fuel2 client:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
fuel2 node show-numa-topology 1
|
fuel2 node attributes-download 1
|
||||||
|
fuel2 node attributes-upload 1
|
||||||
fuel2 node download-attributes 1
|
|
||||||
fuel2 node upload-attributes 1
|
|
||||||
|
|
||||||
|
|
||||||
Plugins
|
Plugins
|
||||||
|
|
Loading…
Reference in New Issue