summaryrefslogtreecommitdiffstats
path: root/docs/configguide/installation.rst
blob: 5072dee0f41915a927fc1971259b47a81dbdb014 (plain)
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