From d3f2c29a6337874c9a73d6ecd641f738e1591bc7 Mon Sep 17 00:00:00 2001 From: Miruna Paun Date: Tue, 25 Sep 2018 12:29:27 +0200 Subject: USERDOCAP-351 Document Provider Networks for NFV Core --- book-enea-nfv-core-installation-guide/doc/book.xml | 2 +- .../doc/images/network1-overview.png | Bin 0 -> 97636 bytes .../doc/images/network1-overview.svg | 1615 ++++++++++++++++++++ .../doc/post_deploy_scripts.xml | 217 +++ .../doc/provider_scripts.xml | 177 --- 5 files changed, 1833 insertions(+), 178 deletions(-) create mode 100755 book-enea-nfv-core-installation-guide/doc/images/network1-overview.png create mode 100755 book-enea-nfv-core-installation-guide/doc/images/network1-overview.svg create mode 100644 book-enea-nfv-core-installation-guide/doc/post_deploy_scripts.xml delete mode 100644 book-enea-nfv-core-installation-guide/doc/provider_scripts.xml diff --git a/book-enea-nfv-core-installation-guide/doc/book.xml b/book-enea-nfv-core-installation-guide/doc/book.xml index 0308e84..8b76a7a 100644 --- a/book-enea-nfv-core-installation-guide/doc/book.xml +++ b/book-enea-nfv-core-installation-guide/doc/book.xml @@ -16,6 +16,6 @@ - + diff --git a/book-enea-nfv-core-installation-guide/doc/images/network1-overview.png b/book-enea-nfv-core-installation-guide/doc/images/network1-overview.png new file mode 100755 index 0000000..0a27ddc Binary files /dev/null and b/book-enea-nfv-core-installation-guide/doc/images/network1-overview.png differ diff --git a/book-enea-nfv-core-installation-guide/doc/images/network1-overview.svg b/book-enea-nfv-core-installation-guide/doc/images/network1-overview.svg new file mode 100755 index 0000000..e4ff889 --- /dev/null +++ b/book-enea-nfv-core-installation-guide/doc/images/network1-overview.svg @@ -0,0 +1,1615 @@ + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/book-enea-nfv-core-installation-guide/doc/post_deploy_scripts.xml b/book-enea-nfv-core-installation-guide/doc/post_deploy_scripts.xml new file mode 100644 index 0000000..c4668e4 --- /dev/null +++ b/book-enea-nfv-core-installation-guide/doc/post_deploy_scripts.xml @@ -0,0 +1,217 @@ + + + + Post Deploy Scripts + + The Post Deploy Scripts is a collection of ENEA specific software that + can be used to easily modify existing environments. These projects can be + used in many situations, from installing new components to configuring + existing ones in a fast and efficient way. They are located on the Fuel + Master in /opt/enea/postdeployscripts/. + +
+ Post Deploy Provider Networks + + OpenStack Networking allows you to create and manage network objects + such as networks, subnets, and ports, which other OpenStack services can + use. + + Provider networks offer layer-2 connectivity to instances, with + optional support for DHCP and metadata services. These networks connect or + map, to existing layer-2 networks within the data center, typically using + VLAN (802.1q) tagging to identify and separate them. Provider networks + generally offer simplicity, performance, and reliability at the cost of + flexibility. + + + Provider networks only handle layer-2 connectivity for instances, + lacking support for features such as routers and floating IP addresses. + Please refer to the Openstack + documentation for examples on using provider networks. + + + In the example provided here, an instance uses a provider (external) + network that connects to the physical network infrastructure via layer-2 + (bridging/switching). This network includes a DHCP server that provides IP + addresses to instances. + + + + + + + + + + + + DPDK acceleration is automatically enabled based on the setting of + the Private Network in Fuel (See chapter 2.13, bullet 4 - + Configure Compute nodes interfaces). + + If DPDK is enabled on one of the nodes, the playbook will configure + the interface connected to the provider network as type + DPDKOVSPort. Otherwise the interface will be configured + as type OVSPort. You can check the port type by looking + at the configuration files in /etc/network/interfaces.d + on the corresponding node. + + For best results, it is recommended to run this playbook right after + the deployment process has completed successfully. It can also be run at a + later time, but in this case it is best to leave the neutron and + OpenVSwitch configuration untouched. + + How to run the Provider Networks + Playbook + + + + Log into the Fuel master. + + + + Install Ansible: yum install ansible + + + + Run the initialization script:cd /opt/enea/postdeployscripts/provider-net +./init.sh + + This will create a hosts file that will be used by Ansible to + associate the nodes into groups and to access them. + + It will also create a file named + samplenetworks.json, which will contain a single + network in which all nodes (computes and controllers) are plugged in. + The samplenetworks.json file will have the + following content: { + "networks": [ + { + "name": "prov-net", + "nodes": [ + { + "interfaces": [], + "name": "node-1" + }, + [...] # all other controller and compute nodes: node-X + ] + } + } + + + The interface list is empty and has to be populated by the + user. If the interface lists are left empty the node will simply not + be processed, though the script/playbook will attempt to perform + certain checks. + + + + + Populate the networks.json file (located in + /opt/enea/postdeployscripts/provider-net/files/networks.json). + + The networks.json file will be used in the + playbook to map the interfaces on the nodes to the corresponding + provider networks to which they are connected. The + samplenetworks.json file generated during step 3 + can be used as a base for this file. + + Below is an example of the + samplenetworks.json file as seen in step 3. with + some interfaces included: { + "networks":[ + { + "name":"prov-net", + "nodes":[ + { + "name":"node-4", + "interfaces":[ + "em2p1s0f5" + ] + }, + { + "name":"node-5", + "interfaces":[ + "em2p1s0f5" + ] + } + ] + } + ] + } + + cp samplenetworks.json /opt/enea/postdeployscripts/provider-net/files/networks.jsonThe + snippet shown above infers the following: + + + + An Openstack provider network called + prov-net will be created. + + + + Two nodes (node-4 and node-5) each have an interface + connected to the underlying physical network associated with the + provider network. + + + + + All of these components are lists in terms of json format, and + can be extended accordingly, making it possible for there to be + potentially X networks with Y nodes with Z interfaces. + + + + + Final checklist: + + + + Verify that the node names in the file match the actual + hostnames of the nodes. + + + + Check that the interfaces in the file exist on the + nodes. + + + + + + Run the playbook:ansible-playbook deploy.yamlVarious + checks are in place to minimize user error. + deploy.yaml is located at + /opt/enea/postdeployscripts/provider-net/deploy.yaml. + + + After the playbook is executed the nodes will be + rebooted. + + + On the processed nodes there should be new OVS bridges, + connecting the physical interfaces to br-int. For + example, on a non-DPDK enabled setup, the new configuration will look + like the following: + + Bridge br-prov-net + Controller "tcp:127.0.0.1:6633" + is_connected: true + fail_mode: secure + Port phy-br-prov-net + Interface phy-br-prov-net + type: patch + options: {peer=int-br-prov-net} + Port br-prov-net + Interface br-prov-net + type: internal + ovs_version: "2.9.0" + + +
+
\ No newline at end of file diff --git a/book-enea-nfv-core-installation-guide/doc/provider_scripts.xml b/book-enea-nfv-core-installation-guide/doc/provider_scripts.xml deleted file mode 100644 index 2ba9b39..0000000 --- a/book-enea-nfv-core-installation-guide/doc/provider_scripts.xml +++ /dev/null @@ -1,177 +0,0 @@ - - - - Provider Scripts - - INSERT INTRO TEXT HERE AND REPLACE THIS - -
- Provider Networks - - For the best results it is recommended to run this playbook as soon - as the deploy+provision segments in Fuel successfully finish or if there - are no modifications made to the networking/neutron/openvswitch components - on the POD. - - Things to consider: - - - - All node types (computes and controllers) are viable and can - sustain a provider network. - - - - DPDK is not mandatory. If a DPDK is not detected on a node, the - interface type will be OVSPort for the provider - network bridge, therefore DPDK is not checked during the pre-run - Ansible stages. - - - - How to run the Provider Networks - Playbook - - - - Log into the Fuel master. - - - - Install ansible: yum install ansible - - - - Run the initial script: > cd /opt/enea/postdeployscripts/provider-net -> ./init.sh - - This will create a hosts file that will be used by Ansible to - associate the nodes into groups and to access them. It will also - create a file named samplenetworks.json, which - will contain a single network in which all nodes (computes and - controllers) are plugged in. - - The samplenetworks.json file will have the - following content: { - "networks": [ - { - "name": "prov-net", - "nodes": [ - { - "interfaces": [], - "name": "node-1" - }, - [...] # all other controller and compute nodes: node-X - ] - } - } - - - The interface list is empty and has to be populated by the - user. If the interface lists are left empty the node will simply not - be processed, though it will attempt to pass any checks. - - - To use this file the user has to copy its contents into the - following location:mv samplenetworks.json /opt/enea/postdeployscripts/provider-net/files/networks.json - - - - Populate the networks.json file which is - located in - /opt/enea/postdeployscripts/provider-net/files/networks.json. - - The networks.json file will be used in the - playbook to know which interfaces on which nodes are used in which - networks. Various checks are in place to minimize user error. - - Below you can see a sample networks.json - file, similar to step 2, with some interfaces - included: { - "networks":[ - { - "name":"prov-net", - "nodes":[ - { - "name":"node-4", - "interfaces":[ - "em2p1s0f5" - ] - }, - { - "name":"node-5", - "interfaces":[ - "em2p1s0f5" - ] - } - ] - } - ] - }The snippet shown above infers the following: - - - - There is a provider network named - prov-net. - - - - Two nodes (node-4 and node-5) are connected to this - network. - - - - Each of these nodes have an interface plugged into said - network. - - - - All of these components are lists, and can be - scaled accordingly, making it possible for there to be potentially X - networks with Y nodes with Z interfaces. - - Make sure to check the following before the - networks.json file is populated: - - - - Check that the node names in the file match the actual - hostnames of the nodes. - - - - Check that the interfaces on the nodes in the file match the - ones on the actual machines and aren't using the DPDK - driver. - - - - - - Run the playbook:ansible-playbook deploy.yamldeploy.yaml - is located: - /opt/enea/postdeployscripts/provider-net/deploy.yaml. - - - After the playbook is executed the nodes will be - rebooted. - - - On the processed nodes there should be new OVS bridges with the - following interface(s):Bridge br-prov-net - Controller "tcp:127.0.0.1:6633" - is_connected: true - fail_mode: secure - Port phy-br-prov-net - Interface phy-br-prov-net - type: patch - options: {peer=int-br-prov-net} - Port br-prov-net - Interface br-prov-net - type: internal - ovs_version: "2.9.0" - - -
-
\ No newline at end of file -- cgit v1.2.3-54-g00ecf