1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
heat_template_version: pike
description: >
Creates a port on the internal_api network.
parameters:
InternalApiNetName:
description: Name of the internal API neutron network
default: internal_api
type: string
PortName:
description: Name of the port
default: ''
type: string
ControlPlaneIP: # Here for compatability with noop.yaml
description: IP address on the control plane
default: ''
type: string
FixedIPs:
description: >
Control the IP allocation for the VIP port. E.g.
[{'ip_address':'1.2.3.4'}]
default: []
type: json
IPPool: # Here for compatibility with from_pool.yaml
default: {}
type: json
NodeIndex: # Here for compatibility with from_pool.yaml
default: 0
type: number
resources:
InternalApiPort:
type: OS::Neutron::Port
properties:
network: {get_param: InternalApiNetName}
name: {get_param: PortName}
fixed_ips: {get_param: FixedIPs}
replacement_policy: AUTO
outputs:
ip_address:
description: internal API network IP
value: {get_attr: [InternalApiPort, fixed_ips, 0, ip_address]}
ip_address_uri:
description: internal api network IP with brackets suitable for a URL
value:
list_join:
- ''
- - '['
- {get_attr: [InternalApiPort, fixed_ips, 0, ip_address]}
- ']'
ip_subnet:
description: IP/Subnet CIDR for the internal API network IP
value:
list_join:
- ''
- - {get_attr: [InternalApiPort, fixed_ips, 0, ip_address]}
- '/'
- {str_split: ['/', {get_attr: [InternalApiPort, subnets, 0, cidr]}, 1]}
ill install all the vsperf dependencies
in terms of system packages, Python 3.x and required Python modules.
In case of CentOS 7 it will install Python 3.3 from an additional repository
provided by Software Collections (`a link`_). In case of RedHat 7 it will
install Python 3.4 as an alternate installation in /usr/local/bin. Installation
script will also use `virtualenv`_ to create a vsperf virtual environment,
which is isolated from the default Python environment. This environment will
reside in a directory called **vsperfenv** in $HOME.
You will need to activate the virtual environment every time you start a
new shell session. Its activation is specific to your OS:
CentOS 7
========
.. code:: bash
$ scl enable python33 bash
$ cd $HOME/vsperfenv
$ source bin/activate
Fedora, RedHat and Ubuntu
=========================
.. code:: bash
$ cd $HOME/vsperfenv
$ source bin/activate
Gotcha
^^^^^^
.. code:: bash
$ source bin/activate
Badly placed ()'s.
Check what type of shell you are using
.. code:: bash
echo $shell
/bin/tcsh
See what scripts are available in $HOME/vsperfenv/bin
.. code:: bash
$ ls bin/
activate activate.csh activate.fish activate_this.py
source the appropriate script
.. code:: bash
$ source bin/activate.csh
Working Behind a Proxy
======================
If you're behind a proxy, you'll likely want to configure this before
running any of the above. For example:
.. code:: bash
export http_proxy=proxy.mycompany.com:123
export https_proxy=proxy.mycompany.com:123
.. _a link: http://www.softwarecollections.org/en/scls/rhscl/python33/
.. _virtualenv: https://virtualenv.readthedocs.org/en/latest/
.. _vloop-vnf-ubuntu-14.04_20160303: http://artifacts.opnfv.org/vswitchperf/vnf/vloop-vnf-ubuntu-14.04_20160303.qcow2
.. _vloop-vnf-ubuntu-14.04_20151216: http://artifacts.opnfv.org/vswitchperf/vnf/vloop-vnf-ubuntu-14.04_20151216.qcow2
Hugepage Configuration
----------------------
Systems running vsperf with either dpdk and/or tests with guests must configure
hugepage amounts to support running these configurations. It is recommended
to configure 1GB hugepages as the pagesize.
The amount of hugepages needed depends on your configuration files in vsperf.
Each guest image requires 4096 by default according to the default settings in
the ``04_vnf.conf`` file.
.. code:: bash
GUEST_MEMORY = ['4096', '4096']
The dpdk startup parameters also require an amount of hugepages depending on
your configuration in the ``02_vswitch.conf`` file.
.. code:: bash
VSWITCHD_DPDK_ARGS = ['-c', '0x4', '-n', '4', '--socket-mem 1024,1024']
VSWITCHD_DPDK_CONFIG = {
'dpdk-init' : 'true',
'dpdk-lcore-mask' : '0x4',
'dpdk-socket-mem' : '1024,1024',
}
Note: Option VSWITCHD_DPDK_ARGS is used for vswitchd, which supports --dpdk
parameter. In recent vswitchd versions, option VSWITCHD_DPDK_CONFIG will be
used to configure vswitchd via ovs-vsctl calls.
With the --socket-mem argument set to use 1 hugepage on the specified sockets as
seen above, the configuration will need 9 hugepages total to run all tests
within vsperf if the pagesize is set correctly to 1GB.
Depending on your OS selection configuration of hugepages may vary. Please refer
to your OS documentation to set hugepages correctly. It is recommended to set
the required amount of hugepages to be allocated by default on reboots.
Information on hugepage requirements for dpdk can be found at
http://dpdk.org/doc/guides/linux_gsg/sys_reqs.html
You can review your hugepage amounts by executing the following command
.. code:: bash
cat /proc/meminfo | grep Huge
|