summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiruna Paun <Miruna.Paun@enea.com>2017-10-02 19:27:25 +0200
committerMiruna Paun <Miruna.Paun@enea.com>2017-10-02 19:27:25 +0200
commit02e257b9f83f4919f21c898f7d15ef20bdfd19a7 (patch)
treeda2d535999a980c33d8d232d5f81998e1fe5c8e4
parent24f09fb531b41a7ecb7df915cb4c7cd8df77f3ad (diff)
downloaddoc-enea-nfv-02e257b9f83f4919f21c898f7d15ef20bdfd19a7.tar.gz
Added another round of edits from Cip
USERDOCAP-240 Signed-off-by: Miruna Paun <Miruna.Paun@enea.com>
-rw-r--r--book-enea-nfv-core-installation-guide/doc/book.xml2
-rw-r--r--book-enea-nfv-core-installation-guide/doc/high_availability.xml28
-rw-r--r--book-enea-nfv-core-installation-guide/doc/images/dns.pngbin11639 -> 10997 bytes
-rw-r--r--book-enea-nfv-core-installation-guide/doc/images/dns.svg2
-rw-r--r--book-enea-nfv-core-installation-guide/doc/installation_instructions.xml169
-rw-r--r--book-enea-nfv-core-installation-guide/doc/post_deploy_config.xml119
6 files changed, 79 insertions, 241 deletions
diff --git a/book-enea-nfv-core-installation-guide/doc/book.xml b/book-enea-nfv-core-installation-guide/doc/book.xml
index 62d46f6..fcba092 100644
--- a/book-enea-nfv-core-installation-guide/doc/book.xml
+++ b/book-enea-nfv-core-installation-guide/doc/book.xml
@@ -10,7 +10,7 @@
10 <xi:include href="../../s_docbuild/template/docsrc_common/bookinfo_userdoc.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 10 <xi:include href="../../s_docbuild/template/docsrc_common/bookinfo_userdoc.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
11 <xi:include href="about_release.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 11 <xi:include href="about_release.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
12 <xi:include href="installation_instructions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 12 <xi:include href="installation_instructions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
13 <xi:include href="post_deploy_config.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 13<!-- <xi:include href="post_deploy_config.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> -->
14 <xi:include href="hw_features.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 14 <xi:include href="hw_features.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
15 <xi:include href="high_availability.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 15 <xi:include href="high_availability.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
16 <xi:include href="use_cases_per_target_node.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 16 <xi:include href="use_cases_per_target_node.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
diff --git a/book-enea-nfv-core-installation-guide/doc/high_availability.xml b/book-enea-nfv-core-installation-guide/doc/high_availability.xml
index 4fe02fe..6d1a9c7 100644
--- a/book-enea-nfv-core-installation-guide/doc/high_availability.xml
+++ b/book-enea-nfv-core-installation-guide/doc/high_availability.xml
@@ -305,7 +305,7 @@
305 305
306 <para>The Zabbix configuration dashboard is available at the same IP 306 <para>The Zabbix configuration dashboard is available at the same IP
307 address where OpenStack can be reached, e.g. 307 address where OpenStack can be reached, e.g.
308 <literal>http://&lt;vip__zbx_vip_mgmt&gt;/zabbix</literal>.</para> 308 <literal>http://10.0.6.42/zabbix</literal>.</para>
309 309
310 <para>To forward zabbix events to Vitrage, a new media script needs to 310 <para>To forward zabbix events to Vitrage, a new media script needs to
311 be created and associated with a user. Follow the steps below as a 311 be created and associated with a user. Follow the steps below as a
@@ -550,8 +550,8 @@ root@node-6:~# systemctl restart vitrage-graph</programlisting>
550 <title>Pacemaker High Availability</title> 550 <title>Pacemaker High Availability</title>
551 551
552 <para>Many of the OpenStack solutions which offer High Availability 552 <para>Many of the OpenStack solutions which offer High Availability
553 characteristics employ pacemaker for achieving highly available OpenStack 553 characteristics employ Pacemaker for achieving highly available OpenStack
554 services. Traditionally pacemaker has been used for managing only the 554 services. Traditionally Pacemaker has been used for managing only the
555 control plane services, so it can effectively provide redundancy and 555 control plane services, so it can effectively provide redundancy and
556 recovery for the Controller nodes only. A reason for this is that 556 recovery for the Controller nodes only. A reason for this is that
557 Controller nodes and Compute nodes essentially have very different High 557 Controller nodes and Compute nodes essentially have very different High
@@ -572,9 +572,9 @@ root@node-6:~# systemctl restart vitrage-graph</programlisting>
572 understood and experimented with, and the basis for this is Pacemaker 572 understood and experimented with, and the basis for this is Pacemaker
573 using Corosync underneath.</para> 573 using Corosync underneath.</para>
574 574
575 <para>Extending the use of pacemaker to Compute nodes was thought as a 575 <para>Extending the use of Pacemaker to Compute nodes was thought as a
576 possible solution for providing VNF high availability, but the problem 576 possible solution for providing VNF high availability, but the problem
577 turned out to be more complicated. On one hand, pacemaker as a clustering 577 turned out to be more complicated. On one hand, Pacemaker as a clustering
578 tool, can only scale properly up to a limited number of nodes, usually 578 tool, can only scale properly up to a limited number of nodes, usually
579 less than 128. This poses a problem for large scale deployments where 579 less than 128. This poses a problem for large scale deployments where
580 hundreds of compute nodes are required. On the other hand, Compute node 580 hundreds of compute nodes are required. On the other hand, Compute node
@@ -584,20 +584,20 @@ root@node-6:~# systemctl restart vitrage-graph</programlisting>
584 <section id="pm_remote"> 584 <section id="pm_remote">
585 <title>Pacemaker Remote</title> 585 <title>Pacemaker Remote</title>
586 586
587 <para>As mentioned earlier, pacemaker and corosync do not scale well 587 <para>As mentioned earlier, Pacemaker and corosync do not scale well
588 over a large cluster, since each node has to talk to every other, 588 over a large cluster, since each node has to talk to every other,
589 essentially creating a mesh configuration. A solution to this problem 589 essentially creating a mesh configuration. A solution to this problem
590 could be partitioning the cluster into smaller groups, but this has its 590 could be partitioning the cluster into smaller groups, but this has its
591 limitations and it is generally difficult to manage.</para> 591 limitations and it is generally difficult to manage.</para>
592 592
593 <para>A better solution is using <literal>pacemaker-remote</literal>, a 593 <para>A better solution is using <literal>pacemaker-remote</literal>, a
594 feature of pacemaker, which allows for extending the cluster beyond the 594 feature of Pacemaker, which allows for extending the cluster beyond the
595 usual limits by using the pacemaker monitoring capabilities. It 595 usual limits by using the Pacemaker monitoring capabilities. It
596 essentially creates a new type of resource which enables adding light 596 essentially creates a new type of resource which enables adding light
597 weight nodes to the cluster. More information about pacemaker-remote can 597 weight nodes to the cluster. More information about pacemaker-remote can
598 be found on the official clusterlabs website.</para> 598 be found on the official clusterlabs website.</para>
599 599
600 <para>Please note that at this moment pacemaker remote must be 600 <para>Please note that at this moment Pacemaker remote must be
601 configured manually after deployment. Here are the manual steps for 601 configured manually after deployment. Here are the manual steps for
602 doing so:</para> 602 doing so:</para>
603 603
@@ -629,7 +629,7 @@ controller, vitrage | | 1 | 1</programlisting>
629 </listitem> 629 </listitem>
630 630
631 <listitem> 631 <listitem>
632 <para>Each controller has a unique pacemaker authkey. One needs to 632 <para>Each controller has a unique Pacemaker authkey. One needs to
633 be kept and propagated to the other servers. Assuming node-1, node-2 633 be kept and propagated to the other servers. Assuming node-1, node-2
634 and node-3 are the controllers, execute the following from the Fuel 634 and node-3 are the controllers, execute the following from the Fuel
635 console:</para> 635 console:</para>
@@ -711,7 +711,7 @@ RemoteOnline: [ node-4.domain.tld node-5.domain.tld ]</programlisting>
711 <title>Pacemaker Fencing</title> 711 <title>Pacemaker Fencing</title>
712 712
713 <para>ENEA NFV Core 1.0 makes use of the fencing capabilities of 713 <para>ENEA NFV Core 1.0 makes use of the fencing capabilities of
714 pacemaker to isolate faulty nodes and trigger recovery actions by means 714 Pacemaker to isolate faulty nodes and trigger recovery actions by means
715 of power cycling the failed nodes. Fencing is configured by creating 715 of power cycling the failed nodes. Fencing is configured by creating
716 <literal>STONITH</literal> type resources for each of the servers in the 716 <literal>STONITH</literal> type resources for each of the servers in the
717 cluster, both Controller nodes and Compute nodes. The 717 cluster, both Controller nodes and Compute nodes. The
@@ -756,7 +756,7 @@ controller, vitrage | | 1 | 1</programlisting>
756 </listitem> 756 </listitem>
757 757
758 <listitem> 758 <listitem>
759 <para>Configure pacemaker fencing resources. This needs to be done 759 <para>Configure Pacemaker fencing resources. This needs to be done
760 once on one of the controllers. The parameters will vary, depending 760 once on one of the controllers. The parameters will vary, depending
761 on the BMC addresses of each node and credentials.</para> 761 on the BMC addresses of each node and credentials.</para>
762 762
@@ -779,7 +779,7 @@ ipaddr=10.0.100.155 login=ADMIN passwd=ADMIN op monitor interval="60s"</programl
779 779
780 <listitem> 780 <listitem>
781 <para>Activate fencing by enabling the <literal>stonith</literal> 781 <para>Activate fencing by enabling the <literal>stonith</literal>
782 property in pacemaker (disabled by default). This also needs to be 782 property in Pacemaker (disabled by default). This also needs to be
783 done only once, on one of the controllers.</para> 783 done only once, on one of the controllers.</para>
784 784
785 <programlisting>[root@node-1:~]# pcs property set stonith-enabled=true</programlisting> 785 <programlisting>[root@node-1:~]# pcs property set stonith-enabled=true</programlisting>
@@ -805,7 +805,7 @@ ipaddr=10.0.100.155 login=ADMIN passwd=ADMIN op monitor interval="60s"</programl
805 <para>The work for Compute node High Availability is captured in an 805 <para>The work for Compute node High Availability is captured in an
806 OpenStack user story and documented upstream, showing proposed solutions, 806 OpenStack user story and documented upstream, showing proposed solutions,
807 summit talks and presentations. A number of these solutions make use of 807 summit talks and presentations. A number of these solutions make use of
808 OpenStack Resource Agents, which are a set of specialized pacemaker 808 OpenStack Resource Agents, which are a set of specialized Pacemaker
809 resources capable of identifying failures in compute nodes and can perform 809 resources capable of identifying failures in compute nodes and can perform
810 automatic evacuation of the instances affected by these failures.</para> 810 automatic evacuation of the instances affected by these failures.</para>
811 811
diff --git a/book-enea-nfv-core-installation-guide/doc/images/dns.png b/book-enea-nfv-core-installation-guide/doc/images/dns.png
index f6467bb..b3b08ba 100644
--- a/book-enea-nfv-core-installation-guide/doc/images/dns.png
+++ b/book-enea-nfv-core-installation-guide/doc/images/dns.png
Binary files differ
diff --git a/book-enea-nfv-core-installation-guide/doc/images/dns.svg b/book-enea-nfv-core-installation-guide/doc/images/dns.svg
index 1da972e..a7d3459 100644
--- a/book-enea-nfv-core-installation-guide/doc/images/dns.svg
+++ b/book-enea-nfv-core-installation-guide/doc/images/dns.svg
@@ -1,3 +1,3 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 2<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid meet" viewBox="-95.85148514851477 180.58126056508095 833.7029702970294 280.83747886983815" width="829.7" height="276.84"><defs><path d="M-94.85 181.58L734.85 181.58L734.85 458.42L-94.85 458.42L-94.85 181.58Z" id="c1pLuhuAjA"></path><clipPath id="clipbIpSVUFK3"><use xlink:href="#c1pLuhuAjA" opacity="1"></use></clipPath></defs><g><g><g clip-path="url(#clipbIpSVUFK3)" opacity="1"><image xlink:href="data:image/png;base64,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" x="0" y="0" width="829.7" height="276.84" transform="matrix(1 0 0 1 -94.85148514851477 181.58126056508095)"></image></g></g></g></svg> \ No newline at end of file 3<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid meet" viewBox="-54.50000000000006 153 751 336" width="747" height="332"><defs><path d="M-53.5 154L693.5 154L693.5 486L-53.5 486L-53.5 154Z" id="acA2kJSb8"></path><clipPath id="clipe2txL8P71P"><use xlink:href="#acA2kJSb8" opacity="1"></use></clipPath></defs><g><g><g clip-path="url(#clipe2txL8P71P)" opacity="1"><image xlink:href="data:image/png;base64,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" x="0" y="0" width="747" height="332" transform="matrix(1 0 0 1 -53.50000000000006 154)"></image></g></g></g></svg> \ No newline at end of file
diff --git a/book-enea-nfv-core-installation-guide/doc/installation_instructions.xml b/book-enea-nfv-core-installation-guide/doc/installation_instructions.xml
index 2b89490..fe93e1a 100644
--- a/book-enea-nfv-core-installation-guide/doc/installation_instructions.xml
+++ b/book-enea-nfv-core-installation-guide/doc/installation_instructions.xml
@@ -19,8 +19,9 @@
19 Armband project is out of the scope of this document but information is 19 Armband project is out of the scope of this document but information is
20 available online on the OPNFV wiki.</para> 20 available online on the OPNFV wiki.</para>
21 21
22 <para>The OPNFV download page provides general instructions for building and 22 <para>The <ulink url="https://www.opnfv.org/software/downloads">OPNFV
23 installing the Fuel Installer .iso and also on how to deploy OPNFV Danube 23 download page</ulink> provides general instructions for building and
24 installing the Fuel Installer ISO and also on how to deploy OPNFV Danube
24 using Fuel on a Pharos compliant test lab.</para> 25 using Fuel on a Pharos compliant test lab.</para>
25 26
26 <note> 27 <note>
@@ -43,8 +44,8 @@
43 <section id="other-preparations"> 44 <section id="other-preparations">
44 <title>Other Preparations</title> 45 <title>Other Preparations</title>
45 46
46 <para>Reading the following addition and optional documents aides in 47 <para>Reading the following documents aides in familiarizing yourself with
47 familiarizing yourself with Fuel:</para> 48 Fuel:</para>
48 49
49 <itemizedlist> 50 <itemizedlist>
50 <listitem> 51 <listitem>
@@ -62,13 +63,13 @@
62 <listitem> 63 <listitem>
63 <para><ulink 64 <para><ulink
64 url="https://docs.openstack.org/fuel-docs/latest/devdocs/develop.html">Fuel 65 url="https://docs.openstack.org/fuel-docs/latest/devdocs/develop.html">Fuel
65 Developer Guide</ulink></para> 66 Developer Guide</ulink> (optional)</para>
66 </listitem> 67 </listitem>
67 68
68 <listitem> 69 <listitem>
69 <para><ulink 70 <para><ulink
70 url="http://docs.openstack.org/developer/fueldocs/plugindocs/fuel-plugin-sdk-guide.html">Fuel 71 url="http://docs.openstack.org/developer/fueldocs/plugindocs/fuel-plugin-sdk-guide.html">Fuel
71 Plugin Developers Guide</ulink></para> 72 Plugin Developers Guide</ulink> (optional)</para>
72 </listitem> 73 </listitem>
73 74
74 <listitem> 75 <listitem>
@@ -101,7 +102,8 @@
101 </listitem> 102 </listitem>
102 103
103 <listitem> 104 <listitem>
104 <para>Network overlay you plan to deploy (VLAN, VXLAN, FLAT)</para> 105 <para>Network overlay planned for deployment (VLAN, VXLAN, FLAT). Only
106 VLAN is supported in this release.</para>
105 </listitem> 107 </listitem>
106 108
107 <listitem> 109 <listitem>
@@ -306,7 +308,7 @@
306 308
307 <mediaobject> 309 <mediaobject>
308 <imageobject> 310 <imageobject>
309 <imagedata contentwidth="600" fileref="images/dns.svg" /> 311 <imagedata contentwidth="610" fileref="images/dns.svg" />
310 </imageobject> 312 </imageobject>
311 </mediaobject> 313 </mediaobject>
312 </listitem> 314 </listitem>
@@ -331,23 +333,14 @@
331 </listitem> 333 </listitem>
332 334
333 <listitem> 335 <listitem>
334 <para>Enable Experimental features:</para> 336 <para>In the <literal>Feature groups</literal> section, enable the
335 337 checkbox for <literal>Experimental</literal> features. Move to the
336 <itemizedlist> 338 &lt;Apply&gt; button and press &lt;Enter&gt;</para>
337 <listitem>
338 <para>In the <literal>Feature groups</literal> section, enable the
339 checkbox for <literal>Experimental</literal> features.</para>
340 </listitem>
341
342 <listitem>
343 <para>Move to the &lt;Apply&gt; button and press
344 &lt;Enter&gt;</para>
345 </listitem>
346 </itemizedlist>
347 339
348 <mediaobject> 340 <mediaobject>
349 <imageobject> 341 <imageobject>
350 <imagedata contentwidth="600" fileref="images/experimental.svg" /> 342 <imagedata contentwidth="600" fileref="images/experimental.svg"
343 format="SVG" />
351 </imageobject> 344 </imageobject>
352 </mediaobject> 345 </mediaobject>
353 </listitem> 346 </listitem>
@@ -385,8 +378,8 @@
385 <para>Enable PXE booting:</para> 378 <para>Enable PXE booting:</para>
386 379
387 <para>For every controller and compute server, enable PXE Booting as 380 <para>For every controller and compute server, enable PXE Booting as
388 the first boot device in the UEFI (EDK2) boot order menu, with the 381 the first boot device in the BIOS boot menu (for x86) or UEFI boot
389 hard disk as the second boot device in the same menu.</para> 382 order menu (for aarch64).</para>
390 </listitem> 383 </listitem>
391 384
392 <listitem> 385 <listitem>
@@ -394,21 +387,18 @@
394 </listitem> 387 </listitem>
395 388
396 <listitem> 389 <listitem>
390 <para>Connect to the FUEL UI via the URL provided in the Console
391 (default: https://10.20.0.2:8443)</para>
392 </listitem>
393
394 <listitem>
397 <para>Wait for the availability of nodes to appear in the Fuel 395 <para>Wait for the availability of nodes to appear in the Fuel
398 GUI.</para> 396 GUI.</para>
397 </listitem>
399 398
400 <itemizedlist> 399 <listitem>
401 <listitem> 400 <para>Wait until all nodes are displayed in top right corner of the
402 <para>Connect to the FUEL UI via the URL provided in the Console 401 Fuel GUI: Total nodes and Unallocated nodes (see figure below).</para>
403 (default: https://10.20.0.2:8443)</para>
404 </listitem>
405
406 <listitem>
407 <para>Wait until all nodes are displayed in top right corner of
408 the Fuel GUI: Total nodes and Unallocated nodes (see figure
409 below).</para>
410 </listitem>
411 </itemizedlist>
412 402
413 <mediaobject> 403 <mediaobject>
414 <imageobject role="fo"> 404 <imageobject role="fo">
@@ -441,6 +431,10 @@
441 <listitem> 431 <listitem>
442 <para>Tacker VNF Manager</para> 432 <para>Tacker VNF Manager</para>
443 </listitem> 433 </listitem>
434
435 <listitem>
436 <para>KVM For NFV Plugin</para>
437 </listitem>
444 </itemizedlist> 438 </itemizedlist>
445 439
446 <para>Login to the Fuel Master via <literal>ssh</literal> using the 440 <para>Login to the Fuel Master via <literal>ssh</literal> using the
@@ -449,7 +443,8 @@
449 443
450 <programlisting>$ fuel plugins --install /opt/opnfv/vitrage-1.0-1.0.4-1.noarch.rpm 444 <programlisting>$ fuel plugins --install /opt/opnfv/vitrage-1.0-1.0.4-1.noarch.rpm
451$ fuel plugins --install zabbix_monitoring-2.5-2.5.3-1.noarch.rpm 445$ fuel plugins --install zabbix_monitoring-2.5-2.5.3-1.noarch.rpm
452$ fuel plugins --install tacker-1.0-1.0.0-1.noarch.rpm</programlisting> 446$ fuel plugins --install tacker-1.0-1.0.0-1.noarch.rpm
447$ fuel plugins --install /opt/opnfv/fuel-plugin-kvm-1.0-1.0.0-1.noarch.rpm</programlisting>
453 448
454 <para>Expected output: <programlisting>Plugin ....... was successfully installed.</programlisting></para> 449 <para>Expected output: <programlisting>Plugin ....... was successfully installed.</programlisting></para>
455 </section> 450 </section>
@@ -472,8 +467,10 @@ $ fuel plugins --install tacker-1.0-1.0.0-1.noarch.rpm</programlisting>
472 </listitem> 467 </listitem>
473 468
474 <listitem> 469 <listitem>
475 <para>Select &rdquor;aarch64 or x86_64&rdquo; and press 470 <para>Only Debian 9 is supported in this release. Select
476 &lt;Next&gt;</para> 471 <filename>Newton on Debian 9 (x86_64)</filename> or <filename>Newton
472 on Debian 9 (aarch64)</filename> depending on your
473 configuration:</para>
477 474
478 <mediaobject> 475 <mediaobject>
479 <imageobject> 476 <imageobject>
@@ -489,23 +486,10 @@ $ fuel plugins --install tacker-1.0-1.0.0-1.noarch.rpm</programlisting>
489 </listitem> 486 </listitem>
490 487
491 <listitem> 488 <listitem>
492 <para>Select <literal>network mode</literal>:</para> 489 <para>Select <filename>Neutron With VLAN segmenation</filename>.
493 490 <filename>Neutron with tunneling segmentation</filename> is available
494 <itemizedlist> 491 but not supported in this release. DPDK scenarios only work with VLAN
495 <listitem> 492 segmentation.</para>
496 <para>Select <literal>Neutron with ML2 plugin</literal></para>
497 </listitem>
498
499 <listitem>
500 <para>Select <literal>Neutron with VLAN segmentation</literal>
501 (needed when enabling DPDK). VXLAN is available but not
502 supported.</para>
503 </listitem>
504
505 <listitem>
506 <para>Press [Next]</para>
507 </listitem>
508 </itemizedlist>
509 493
510 <mediaobject> 494 <mediaobject>
511 <imageobject> 495 <imageobject>
@@ -516,7 +500,12 @@ $ fuel plugins --install tacker-1.0-1.0.0-1.noarch.rpm</programlisting>
516 500
517 <listitem> 501 <listitem>
518 <para>Select <literal>Storage Back-ends</literal>, then <filename>Ceph 502 <para>Select <literal>Storage Back-ends</literal>, then <filename>Ceph
519 for block storage</filename> and press [Next]</para> 503 for block storage</filename>. <literal></literal></para>
504
505 <para><literal>Ceph</literal> for <filename>Image Storage</filename>,
506 <literal>Object storage</literal> and <literal>Ephemeral
507 storage</literal> have not been validated for this release. It is
508 advisable to only use the option mentioned above.</para>
520 509
521 <mediaobject> 510 <mediaobject>
522 <imageobject> 511 <imageobject>
@@ -548,8 +537,8 @@ $ fuel plugins --install tacker-1.0-1.0.0-1.noarch.rpm</programlisting>
548 <section id="config_net_env"> 537 <section id="config_net_env">
549 <title>Configure the Network Environment</title> 538 <title>Configure the Network Environment</title>
550 539
551 <para>To configure the network environment specifically to a DPDK based 540 <para>To configure the network environment, please follow these
552 scenario, please follow these steps:</para> 541 steps:</para>
553 542
554 <orderedlist> 543 <orderedlist>
555 <listitem> 544 <listitem>
@@ -655,34 +644,6 @@ $ fuel plugins --install tacker-1.0-1.0.0-1.noarch.rpm</programlisting>
655 </listitem> 644 </listitem>
656 645
657 <listitem> 646 <listitem>
658 <para>Update the Private Network information:</para>
659
660 <itemizedlist>
661 <listitem>
662 <para>It is recommended to keep the default CIDR</para>
663 </listitem>
664
665 <listitem>
666 <para>Set IP Range Start to an appropriate value (default
667 192.168.2.1)</para>
668 </listitem>
669
670 <listitem>
671 <para>Set IP Range End to an appropriate value (default
672 192.168.2.254)</para>
673 </listitem>
674
675 <listitem>
676 <para>Check &lt;VLAN tagging&gt;</para>
677 </listitem>
678
679 <listitem>
680 <para>Set an appropriate VLAN tag (default 103)</para>
681 </listitem>
682 </itemizedlist>
683 </listitem>
684
685 <listitem>
686 <para>Select the <literal>Neutron L3</literal> Node Networks group on 647 <para>Select the <literal>Neutron L3</literal> Node Networks group on
687 the left pane:</para> 648 the left pane:</para>
688 649
@@ -780,24 +741,19 @@ $ fuel plugins --install tacker-1.0-1.0.0-1.noarch.rpm</programlisting>
780 <section id="add_rm_repos"> 741 <section id="add_rm_repos">
781 <title>Adding/Removing Repositories</title> 742 <title>Adding/Removing Repositories</title>
782 743
783 <para>Fuel by default, uses a set of repositories as package sources, that 744 <para>Enea NFV Core has been validated for complete offline deployment. To
784 hold both OpenStack components as well as other needed packages. In order 745 this end, two repositories are defined and used. The first,
785 to speed up the deployment process, Fuel will create two mirrors. The 746 <literal>debian-testing-local</literal> (<filename>deb
786 first, a local mirror, reachable on the Admin interface (e.g. 747 http://10.20.0.2:8080/mirrors/debian testing main</filename>), contains a
787 <literal>10.20.0.2:8080/newton-10.0/ubuntu/x86-64</literal>), will add 748 snapshot of the Debian base OS, while the second, <literal>mos</literal>,
788 additional repositories that need external connections. The second, a 749 (<literal>deb http://10.20.0.2:8080/newton-10.0/ubuntu/x86_64 mos10.0 main
789 debian testing main: 750 restricted</literal>), stores the Enea NFV Core specific Openstack and
790 <literal>http://10.20.0.2:8080/mirrors/debian</literal>, requires no other 751 Openstack related packages.</para>
791 repositories to be added that need external connections, having only (even 752
792 for offline): <filename>debian-testing-local</filename> and 753 <para>These repositories provide only the minimum necessary packages, but
793 <literal>mos</literal>.</para> 754 it is possible to add extra repositories as needed. It is recommended
794 755 however, that the first deployment be performed without extra
795 <para>It is possible to avoid using external repositories and make the 756 repositories.</para>
796 entire process completely offline. In this way only the most basic
797 packages will be installed, but the process will be more efficient and not
798 depend on an Internet connection. To do this, just make sure that the
799 Repositories list contains only <filename>ubuntu-local</filename>,
800 <literal>mos</literal> and <literal>Auxilliary</literal>.</para>
801 757
802 <itemizedlist> 758 <itemizedlist>
803 <listitem> 759 <listitem>
@@ -827,7 +783,8 @@ $ fuel plugins --install tacker-1.0-1.0.0-1.noarch.rpm</programlisting>
827 <para>In the FUEL UI of your Environment, click the 783 <para>In the FUEL UI of your Environment, click the
828 <literal>Settings</literal> tab and select <literal>OpenStack 784 <literal>Settings</literal> tab and select <literal>OpenStack
829 Services</literal> on the left side pane, make sure Tacker is NOT enabled 785 Services</literal> on the left side pane, make sure Tacker is NOT enabled
830 and save your settings:</para> 786 and save your settings. Tacker functionality will be enabled after
787 deployment is performed.</para>
831 788
832 <mediaobject> 789 <mediaobject>
833 <imageobject> 790 <imageobject>
diff --git a/book-enea-nfv-core-installation-guide/doc/post_deploy_config.xml b/book-enea-nfv-core-installation-guide/doc/post_deploy_config.xml
deleted file mode 100644
index 9875f58..0000000
--- a/book-enea-nfv-core-installation-guide/doc/post_deploy_config.xml
+++ /dev/null
@@ -1,119 +0,0 @@
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<chapter id="post_deploy_config">
3 <title>Post-Deploy Configurations</title>
4
5 <para>For running DPDK applications it is useful to isolate the available
6 CPUs between the Linux kernel, <literal>ovs-dpdk</literal> and
7 <literal>nova-compute</literal>.</para>
8
9 <para>All of the Hardware nodes can be accessed through
10 <literal>ssh</literal> from the Fuel console. Simply create an
11 <literal>ssh</literal> connection to Fuel (e.g. root@10.20.0.2 pwd: r00tme)
12 and run the following command to get a list of the servers and the IPs where
13 they can be reached.</para>
14
15 <programlisting>[root@fuel ~]# fuel node
16id | status | name | cluster | ip | mac | roles /
17 | pending_roles | online | group_id
18---+--------+------------------+---------+-----------+-------------------+----------/
19-----------------+---------------+--------+---------
20 4 | ready | Untitled (8c:c2) | 1 | 10.20.0.6 | 68:05:ca:46:8c:c2 | ceph-osd,/
21 compute | | 1 | 1
22 2 | ready | Untitled (8c:45) | 1 | 10.20.0.5 | 68:05:ca:46:8c:45 | controller,/
23 mongo, tacker | | 1 | 1
24 1 | ready | Untitled (8c:d4) | 1 | 10.20.0.4 | 68:05:ca:46:8c:d4 | ceph-osd,/
25 controller | | 1 | 1
26 5 | ready | Untitled (8c:c9) | 1 | 10.20.0.7 | 68:05:ca:46:8c:c9 | ceph-osd,/
27 compute | | 1 | 1
28 3 | ready | Untitled (8b:64) | 1 | 10.20.0.3 | 68:05:ca:46:8b:64 | controller,/
29 vitrage | | 1 | 1
30[root@fuel ~]# | | 1 | 2
31[root@fuel ~]# ssh node-3
32Warning: Permanently added 'node-3' (ECDSA) to the list of known hosts.
33
34The programs included with the Debian GNU/Linux system are free software;
35the exact distribution terms for each program are described in the
36individual files in /usr/share/doc/*/copyright.
37
38Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
39permitted by applicable law.
40Last login: Thu Aug 24 19:40:06 2017 from 10.20.0.2
41root@node-3:~#</programlisting>
42
43 <section id="cpu_isolation_config">
44 <title>CPU isolation configuration</title>
45
46 <para>It is a good idea to isolate the cores that will perform packet
47 processing and run QEMU. The example below shows how to set
48 <literal>isolcpus</literal> on a compute node that has one Intel Xeon
49 processor E5-2660 v4, 14 cores, and 28 hyper-threaded cores.</para>
50
51 <programlisting>root@node-3:~# cat /etc/default/grub | head -n 10
52# If you change this file, run 'update-grub' afterwards to update
53# /boot/grub/grub.cfg.
54# For full documentation of the options in this file, see:
55# info -f grub -n 'Simple configuration'
56
57GRUB_DEFAULT="Advanced options for Ubuntu, with Linux 4.4.50-rt62nfv"
58GRUB_TIMEOUT=10
59GRUB_DISTRIBUTOR='lsb_release -i -s 2 /dev/null || echo Debian'
60GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
61GRUB_CMDLINE_LINUX=" console=tty0 net.ifnames=1 biosdevname=0 rootdelay=90 /
62nomodeset hugepagesz=2M hugepages=1536 isolcpus=10-47,58-95"
63root@node-6:~# update-grub
64Generating grub configuration file ...
65Found linux image: /boot/vmlinuz- 4.10.0-9924-generic
66Found initrd image: /boot/initrd.img- 4.10.0-9924-generic
67done
68root@node-3:~# reboot
69Connection to node-3 closed by remote host.
70Connection to node-3 closed.</programlisting>
71 </section>
72
73 <section id="nova_config">
74 <title>Nova Compute configurations</title>
75
76 <para>In order to isolate the OpenStack instances on dedicated CPUs, nova
77 must be configured with <literal>vcpu_pin_set</literal>. Please refer to
78 the Nova configuration guide for more information.</para>
79
80 <para>The example below applies again, to an Intel Xeon processor E5-2660
81 v4. Here the <literal>vcpu_pin_set</literal> is configured so that a pair
82 of thread siblings are chosen.</para>
83
84 <programlisting>root@node-3:~# cat /etc/nova/nova.conf | grep vcpu_pin_set
85vcpu_pin_set = "16-47,64-95"
86root@node-3:~#</programlisting>
87
88 <para>After modifying Nova configuration options on the Compute nodes, it
89 is necessary to restart <literal>nova-compute</literal> to put them into
90 effect.</para>
91
92 <programlisting>root@node-3:~# systemctl restart nova-compute
93root@node-3:~#</programlisting>
94 </section>
95
96 <section id="ovs_dpdk">
97 <title>OpenvSwitch with DPDK configuration</title>
98
99 <para>Enea NFV Core 1.0 comes with OpenvSwitch as the virtual switch
100 option. In the selected scenario, OpenvSwitch also uses DPDK for passing
101 traffic to and from the VMs. One of the features that comes with
102 OpenvSwitch v2.7.0 is the ability to set <literal>pmd-cpu-mask</literal>.
103 This effectively isolates userspace PMD (poll-mode-drivers) on the
104 specified set of CPUs.</para>
105
106 <para>By default, the OpenvSwitch that comes installed on the compute
107 nodes has no <literal>pmd-cpu-mask</literal>. There is an option to set it
108 from the Fuel menu before deploy, but it can always be manually set
109 post-deploy as follows:</para>
110
111 <programlisting>root@node-3:~# ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=7e0
112root@node-3:~# ovs-vsctl get Open_vSwitch . other_config:pmd-cpu-mask
113"7e0"
114root@node-3:~#</programlisting>
115
116 <para>No restart is required, OpenvSwitch automatically spawns new pmd
117 threads and sets the affinity as necessary.</para>
118 </section>
119</chapter> \ No newline at end of file