Update committers for KVM4NFV
[kvmfornfv.git] / docs / release / scenarios / os-nosdn-kvm_ovs_dpdk-ha / os-nosdn-kvm_ovs_dpdk-ha.description.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2
3 .. http://creativecommons.org/licenses/by/4.0
4
5 =========================================
6 os-nosdn-kvm_ovs_dpdk-ha Description
7 =========================================
8
9 Introduction
10 ------------
11
12 .. In this section explain the purpose of the scenario and the
13    types of capabilities provided
14
15 The purpose of os-nosdn-kvm_ovs_dpdk-ha scenario testing is to test the
16 High Availability deployment and configuration of OPNFV software suite
17 with OpenStack and without SDN software. This OPNFV software suite
18 includes OPNFV KVM4NFV latest software packages for Linux Kernel and
19 QEMU patches for achieving low latency. High Availability feature is achieved
20 by deploying OpenStack multi-node setup with 3 controllers and 2 computes nodes.
21
22 KVM4NFV packages will be installed on compute nodes as part of deployment.
23 This scenario testcase deployment is happening on multi-node by using OPNFV Fuel
24 and Apex deployer.
25
26
27 **Using Fuel Installer**
28
29 Scenario Components and Composition
30 -----------------------------------
31 .. In this section describe the unique components that make up the scenario,
32 .. what each component provides and why it has been included in order
33 .. to communicate to the user the capabilities available in this scenario.
34
35 This scenario deploys the High Availability OPNFV Cloud based on the
36 configurations provided in ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml.
37 This yaml file contains following configurations and is passed as an
38 argument to deploy.py script
39
40 * ``scenario.yaml:`` This configuration file defines translation between a
41   short deployment scenario name(os-nosdn-kvm_ovs_dpdk-ha) and an actual deployment
42   scenario configuration file(ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml)
43
44 * ``deployment-scenario-metadata:`` Contains the configuration metadata like
45   title,version,created,comment.
46
47 .. code:: bash
48
49    deployment-scenario-metadata:
50       title: NFV KVM and OVS-DPDK HA deployment
51       version: 0.0.1
52       created: Dec 20 2016
53       comment: NFV KVM and OVS-DPDK
54
55 * ``stack-extensions:`` Stack extentions are opnfv added value features in form
56   of a fuel-plugin.Plugins listed in stack extensions are enabled and
57   configured. os-nosdn-kvm_ovs_dpdk-ha scenario currently uses KVM-1.0.0 plugin.
58
59 .. code:: bash
60
61    stack-extensions:
62       - module: fuel-plugin-kvm
63         module-config-name: fuel-nfvkvm
64         module-config-version: 1.0.0
65         module-config-override:
66           # Module config overrides
67
68 * ``dea-override-config:`` Used to configure the HA mode,network segmentation
69   types and role to node assignments.These configurations overrides
70   corresponding keys in the dea_base.yaml and dea_pod_override.yaml.
71   These keys are used to deploy multiple nodes(``3 controllers,2 computes``)
72   as mention below.
73
74   * **Node 1**:
75      - This node has MongoDB and Controller roles
76      - The controller node runs the Identity service, Image Service, management portions of
77        Compute and Networking, Networking plug-in and the dashboard
78      - Uses VLAN as an interface
79
80   * **Node 2**:
81      - This node has Ceph-osd and Controller roles
82      - The controller node runs the Identity service, Image Service, management portions of
83        Compute and Networking, Networking plug-in and the dashboard
84      - Ceph is a massively scalable, open source, distributed storage system
85      - Uses VLAN as an interface
86
87   * **Node 3**:
88      - This node has Controller role in order to achieve high availability.
89      - Uses VLAN as an interface
90
91   * **Node 4**:
92      - This node has compute and Ceph-osd roles
93      - Ceph is a massively scalable, open source, distributed storage system
94      - By default, Compute uses KVM as the hypervisor
95      - Uses DPDK as an interface
96
97   * **Node 5**:
98      - This node has compute and Ceph-osd roles
99      - Ceph is a massively scalable, open source, distributed storage system
100      - By default, Compute uses KVM as the hypervisor
101      - Uses DPDK as an interface
102
103   The below is the ``dea-override-config`` of the ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml file.
104
105 .. code:: bash
106
107    dea-override-config:
108      fuel:
109        FEATURE_GROUPS:
110        - experimental
111      nodes:
112      - id: 1
113        interfaces: interfaces_1
114        role: controller
115      - id: 2
116        interfaces: interfaces_1
117        role: mongo,controller
118      - id: 3
119        interfaces: interfaces_1
120        role: ceph-osd,controller
121      - id: 4
122        interfaces: interfaces_dpdk
123        role: ceph-osd,compute
124        attributes: attributes_1
125      - id: 5
126        interfaces: interfaces_dpdk
127        role: ceph-osd,compute
128        attributes: attributes_1
129
130      attributes_1:
131        hugepages:
132          dpdk:
133            value: 1024
134          nova:
135            value:
136              '2048': 1024
137
138      settings:
139        editable:
140          storage:
141            ephemeral_ceph:
142              description: Configures Nova to store ephemeral volumes in RBD. This works best if Ceph
143              is enabled for volumes and images, too. Enables live migration of all types of Ceph
144              backed VMs (without this option, live migration will only work with VMs launched from
145              Cinder volumes).
146              label: Ceph RBD for ephemeral volumes (Nova)
147              type: checkbox
148              value: true
149              weight: 75
150            images_ceph:
151              description: Configures Glance to use the Ceph RBD backend to store images. If enabled,
152              this option will prevent Swift from installing.
153              label: Ceph RBD for images (Glance)
154              restrictions:
155              - settings:storage.images_vcenter.value == true: Only one Glance backend could be selected.
156              type: checkbox
157              value: true
158              weight: 30
159
160 * ``dha-override-config:`` Provides information about the VM definition and
161   Network config for virtual deployment.These configurations overrides
162   the pod dha definition and points to the controller,compute and
163   fuel definition files.
164
165   The below is the ``dha-override-config`` of the ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml file.
166
167 .. code:: bash
168
169    dha-override-config:
170      nodes:
171      - id: 1
172        libvirtName: controller1
173        libvirtTemplate: templates/virtual_environment/vms/controller.xml
174      - id: 2
175        libvirtName: controller2
176        libvirtTemplate: templates/virtual_environment/vms/controller.xml
177      - id: 3
178        libvirtName: controller3
179        libvirtTemplate: templates/virtual_environment/vms/controller.xml
180      - id: 4
181        libvirtName: compute1
182        libvirtTemplate: templates/virtual_environment/vms/compute.xml
183      - id: 5
184        libvirtName: compute2
185        libvirtTemplate: templates/virtual_environment/vms/compute.xml
186      - id: 6
187        libvirtName: fuel-master
188        libvirtTemplate: templates/virtual_environment/vms/fuel.xml
189        isFuel: yes
190        username: root
191        password: r00tme
192
193
194 * os-nosdn-kvm_ovs_dpdk-ha scenario is successful when all the 5 Nodes are accessible,
195   up and running.
196
197 **Note:**
198
199 * In os-nosdn-kvm_ovs_dpdk-ha scenario, OVS is installed on the compute nodes with DPDK configured
200
201 * Hugepages for DPDK are configured in the attributes_1 section of the
202 no-ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml
203
204 * Hugepages are only configured for compute nodes
205
206 * This results in faster communication and data transfer among the compute nodes
207
208 Scenario Usage Overview
209 -----------------------
210 .. Provide a brief overview on how to use the scenario and the features available to the
211 .. user. This should be an "introduction" to the userguide document, and explicitly link to it,
212 .. where the specifics of the features are covered including examples and API's
213
214 * The high availability feature can be acheived by executing deploy.py with
215   ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml as an argument.
216 * Install Fuel Master and deploy OPNFV Cloud from scratch on Hardware
217   Environment:
218
219
220 Command to deploy the os-nosdn-kvm_ovs_dpdk-ha scenario:
221
222 .. code:: bash
223
224         $ cd ~/fuel/ci/
225         $ sudo ./deploy.sh -f -b file:///tmp/opnfv-fuel/deploy/config -l devel-pipeline -p default \
226         -s ha_nfv-kvm_nfv-ovs-dpdk_heat_ceilometer_scenario.yaml -i file:///tmp/opnfv.iso
227
228 where,
229     -b is used to specify the configuration directory
230
231     -i is used to specify the image downloaded from artifacts.
232
233 **Note:**
234
235 .. code:: bash
236
237           Check $ sudo ./deploy.sh -h for further information.
238
239 * os-nosdn-kvm_ovs_dpdk-ha scenario can be executed from the jenkins project
240   "fuel-os-nosdn-kvm_ovs_dpdk-ha-baremetal-daily-master"
241 * This scenario provides the High Availability feature by deploying
242   3 controller,2 compute nodes and checking if all the 5 nodes
243   are accessible(IP,up & running).
244 * Test Scenario is passed if deployment is successful and all 5 nodes have
245   accessibility (IP , up & running).
246
247
248 **Using Apex Installer**
249
250 Scenario Components and Composition
251 -----------------------------------
252 .. In this section describe the unique components that make up the scenario,
253 .. what each component provides and why it has been included in order
254 .. to communicate to the user the capabilities available in this scenario.
255
256 This scenario is composed of common OpenStack services enabled by default,
257 including Nova, Neutron, Glance, Cinder, Keystone, Horizon.  Optionally and
258 by default, Tacker and Congress services are also enabled.  Ceph is used as
259 the backend storage to Cinder on all deployed nodes.
260
261 All services are in HA, meaning that there are multiple cloned instances of
262 each service, and they are balanced by HA Proxy using a Virtual IP Address
263 per service.
264
265 The os-nosdn-kvm_ovs_dpdk-ha.yaml file contains following configurations and
266 is passed as an argument to deploy.sh script.
267
268 * ``global-params:`` Used to define the global parameter and there is only one
269   such parameter exists,i.e, ha_enabled
270
271 .. code:: bash
272
273    global-params:
274      ha_enabled: true
275
276 * ``deploy_options:`` Used to define the type of SDN controller, configure the
277   tacker, congress, service functioning chaining support(sfc) for ODL and ONOS,
278   configure ODL with SDNVPN support, which dataplane to use for overcloud
279   tenant networks, whether to run the kvm real time kernel (rt_kvm) in the
280   compute node(s) to reduce the network latencies caused by network function
281   virtualization and whether to install and configure fdio functionality in the
282   overcloud
283
284 .. code:: bash
285
286    deploy_options:
287      sdn_controller: false
288      tacker: true
289      congress: true
290      sfc: false
291      vpn: false
292      rt_kvm: true
293      dataplane: ovs_dpdk
294
295 * ``performance:`` Used to set performance options on specific roles. The valid
296   roles are 'Compute', 'Controller' and 'Storage', and the valid sections are
297   'kernel' and 'nova'
298
299 .. code:: bash
300
301    performance:
302      Controller:
303        kernel:
304          hugepages: 1024
305          hugepagesz: 2M
306      Compute:
307        kernel:
308          hugepagesz: 2M
309          hugepages: 2048
310          intel_iommu: 'on'
311          iommu: pt
312        ovs:
313          socket_memory: 1024
314          pmd_cores: 2
315          dpdk_cores: 1
316
317 Scenario Usage Overview
318 -----------------------
319 .. Provide a brief overview on how to use the scenario and the features available to the
320 .. user.  This should be an "introduction" to the userguide document, and explicitly link to it,
321 .. where the specifics of the features are covered including examples and API's
322
323 * The high availability feature can be acheived by executing deploy.sh with
324   os-nosdn-kvm_ovs_dpdk-ha.yaml as an argument.
325
326 * Build the undercloud and overcloud images as mentioned below:
327
328 .. code:: bash
329
330    cd ~/apex/build/
331    make images-clean
332    make images
333
334 * Command to deploy os-nosdn-kvm_ovs_dpdk-ha scenario:
335
336 .. code:: bash
337
338    cd ~/apex/ci/
339    ./clean.sh
340    ./dev_dep_check.sh
341    ./deploy.sh -v --ping-site <ping_ip-address> --dnslookup-site <dns_ip-address> -n \
342    ~/apex/config/network/intc_network_settings.yaml -d ~/apex/config/deploy/os-nosdn-kvm_ovs_dpdk-ha.yaml
343
344 where,
345     -v is used for virtual deployment
346     -n is used for providing the network configuration file
347     -d is used for providing the scenario configuration file
348
349 References
350 ----------
351
352 For more information on the OPNFV Euphrates release, please visit
353 http://www.opnfv.org/Euphrates