2d6889bf8e871929073a6f314e9a3680b22af3af
[fuel.git] / docs / installationprocedure / installation.instruction.rst
1 .. This document is protected/licensed under the following conditions
2 .. (c) Jonas Bjurel (Ericsson AB)
3 .. Licensed under a Creative Commons Attribution 4.0 International License.
4 .. You should have received a copy of the license along with this work.
5 .. If not, see <http://creativecommons.org/licenses/by/4.0/>.
6
7 ========
8 Abstract
9 ========
10
11 This document describes how to install the Colorado release of
12 OPNFV when using Fuel as a deployment tool, covering its usage,
13 limitations, dependencies and required system resources.
14
15 ============
16 Introduction
17 ============
18
19 This document provides guidelines on how to install and
20 configure the Colorado release of OPNFV when using Fuel as a
21 deployment tool, including required software and hardware configurations.
22
23 Although the available installation options give a high degree of
24 freedom in how the system is set-up, including architecture, services
25 and features, etc., said permutations may not provide an OPNFV
26 compliant reference architecture. This instruction provides a
27 step-by-step guide that results in an OPNFV Colorado compliant
28 deployment.
29
30 The audience of this document is assumed to have good knowledge in
31 networking and Unix/Linux administration.
32
33 =======
34 Preface
35 =======
36
37 Before starting the installation of the Colorado release of
38 OPNFV, using Fuel as a deployment tool, some planning must be
39 done.
40
41 Retrieving the ISO image
42 ========================
43
44 First of all, the Fuel deployment ISO image needs to be retrieved, the
45 Fuel .iso image of the Colorado release can be found at *Reference: 2*
46
47 Building the ISO image
48 ======================
49
50 Alternatively, you may build the Fuel .iso from source by cloning the
51 opnfv/fuel git repository. To retrieve the repository for the Colorado
52 release use the following command:
53
54 .. code-block:: bash
55
56     $ git clone https://gerrit.opnfv.org/gerrit/fuel
57
58 Check-out the Colorado release tag to set the HEAD to the
59 baseline required to replicate the Colorado release:
60
61 .. code-block:: bash
62
63     $ git checkout colorado.1.0
64
65 Go to the fuel directory and build the .iso:
66
67 .. code-block:: bash
68
69     $ cd fuel/build; make all
70
71 For more information on how to build, please see *Reference: 14*
72
73 Other preparations
74 ==================
75
76 Next, familiarize yourself with Fuel by reading the following documents:
77
78 - Fuel Installation Guide, please see *Reference: 8*
79
80 - Fuel User Guide, please see *Reference: 9*
81
82 - Fuel Developer Guide, please see *Reference: 10*
83
84 - Fuel Plugin Developers Guide, please see *Reference: 11*
85
86 Prior to installation, a number of deployment specific parameters must be collected, those are:
87
88 #.     Provider sub-net and gateway information
89
90 #.     Provider VLAN information
91
92 #.     Provider DNS addresses
93
94 #.     Provider NTP addresses
95
96 #.     Network overlay you plan to deploy (VLAN, VXLAN, FLAT)
97
98 #.     How many nodes and what roles you want to deploy (Controllers, Storage, Computes)
99
100 #.     Monitoring options you want to deploy (Ceilometer, Syslog, etc.).
101
102 #.     Other options not covered in the document are available in the links above
103
104
105 This information will be needed for the configuration procedures
106 provided in this document.
107
108 =====================
109 Hardware requirements
110 =====================
111
112 The following minimum hardware requirements must be met for the
113 installation of Colorado using Fuel:
114
115 +--------------------+------------------------------------------------------+
116 | **HW Aspect**      | **Requirement**                                      |
117 |                    |                                                      |
118 +====================+======================================================+
119 | **# of nodes**     | Minimum 5 (3 for non redundant deployment):          |
120 |                    |                                                      |
121 |                    | - 1 Fuel deployment master (may be virtualized)      |
122 |                    |                                                      |
123 |                    | - 3(1) Controllers (1 colocated mongo/ceilometer     |
124 |                    |   role, 2 Ceph-OSD roles)                            |
125 |                    |                                                      |
126 |                    | - 1 Compute (1 co-located Ceph-OSD role)             |
127 |                    |                                                      |
128 +--------------------+------------------------------------------------------+
129 | **CPU**            | Minimum 1 socket x86_AMD64 with Virtualization       |
130 |                    | support                                              |
131 +--------------------+------------------------------------------------------+
132 | **RAM**            | Minimum 16GB/server (Depending on VNF work load)     |
133 |                    |                                                      |
134 +--------------------+------------------------------------------------------+
135 | **Disk**           | Minimum 256GB 10kRPM spinning disks                  |
136 |                    |                                                      |
137 +--------------------+------------------------------------------------------+
138 | **Networks**       | 4 Tagged VLANs (PUBLIC, MGMT, STORAGE, PRIVATE)      |
139 |                    |                                                      |
140 |                    | 1 Un-Tagged VLAN for PXE Boot - ADMIN Network        |
141 |                    |                                                      |
142 |                    | Note: These can be allocated to a single NIC -       |
143 |                    | or spread out over multiple NICs as your hardware    |
144 |                    | supports.                                            |
145 +--------------------+------------------------------------------------------+
146
147 ===============================
148 Help with Hardware Requirements
149 ===============================
150
151 Calculate hardware requirements:
152
153 For information on compatible hardware types available for use, please see *Reference: 11*.
154
155 When choosing the hardware on which you will deploy your OpenStack
156 environment, you should think about:
157
158 - CPU -- Consider the number of virtual machines that you plan to deploy in your cloud environment and the CPU per virtual machine.
159
160 - Memory -- Depends on the amount of RAM assigned per virtual machine and the controller node.
161
162 - Storage -- Depends on the local drive space per virtual machine, remote volumes that can be attached to a virtual machine, and object storage.
163
164 - Networking -- Depends on the Choose Network Topology, the network bandwidth per virtual machine, and network storage.
165
166 ================================================
167 Top of the rack (TOR) Configuration requirements
168 ================================================
169
170 The switching infrastructure provides connectivity for the OPNFV
171 infrastructure operations, tenant networks (East/West) and provider
172 connectivity (North/South); it also provides needed connectivity for
173 the Storage Area Network (SAN).
174 To avoid traffic congestion, it is strongly suggested that three
175 physically separated networks are used, that is: 1 physical network
176 for administration and control, one physical network for tenant private
177 and public networks, and one physical network for SAN.
178 The switching connectivity can (but does not need to) be fully redundant,
179 in such case it comprises a redundant 10GE switch pair for each of the
180 three physically separated networks.
181
182 The physical TOR switches are **not** automatically configured from
183 the Fuel OPNFV reference platform. All the networks involved in the OPNFV
184 infrastructure as well as the provider networks and the private tenant
185 VLANs needs to be manually configured.
186
187 Manual configuration of the Colorado hardware platform should
188 be carried out according to the OPNFV Pharos specification:
189 <https://wiki.opnfv.org/display/pharos/Pharos+Specification>
190
191 ==========================================
192 OPNFV Software installation and deployment
193 ==========================================
194
195 This section describes the installation of the OPNFV installation
196 server (Fuel master) as well as the deployment of the full OPNFV
197 reference platform stack across a server cluster.
198
199 Install Fuel master
200 ===================
201
202 #. Mount the Colorado Fuel ISO file/media as a boot device to the jump host server.
203
204 #. Reboot the jump host to establish the Fuel server.
205
206    - The system now boots from the ISO image.
207
208    - Select "Fuel Install (Static IP)" (See figure below)
209
210    - Press [Enter].
211
212    .. figure:: img/grub-1.png
213
214 #. Wait until the Fuel setup screen is shown (Note: This can take up to 30 minutes).
215
216 #. In the "Fuel User" section - Confirm/change the default password (See figure below)
217
218    - Enter "admin" in the Fuel password input
219
220    - Enter "admin" in the Confirm password input
221
222    - Select "Check" and press [Enter]
223
224    .. figure:: img/fuelmenu1.png
225
226 #. In the "Network Setup" section - Configure DHCP/Static IP information for your FUEL node - For example, ETH0 is 10.20.0.2/24 for FUEL booting and ETH1 is DHCP in your corporate/lab network (see figure below).
227
228    - Configure eth1 or other network interfaces here as well (if you have them present on your FUEL server).
229
230    .. figure:: img/fuelmenu2.png
231
232 #. In the "PXE Setup" section (see figure below) - Change the following fields to appropriate values (example below):
233
234    - DHCP Pool Start 10.20.0.3
235
236    - DHCP Pool End 10.20.0.254
237
238    - DHCP Pool Gateway  10.20.0.2 (IP address of Fuel node)
239
240    .. figure:: img/fuelmenu3.png
241
242 #. In the "DNS & Hostname" section (see figure below) - Change the following fields to appropriate values:
243
244    - Hostname
245
246    - Domain
247
248    - Search Domain
249
250    - External DNS
251
252    - Hostname to test DNS
253
254    - Select <Check> and press [Enter]
255
256    .. figure:: img/fuelmenu4.png
257
258
259 #. OPTION TO ENABLE PROXY SUPPORT - In the "Bootstrap Image" section (see figure below), edit the following fields to define a proxy. (**NOTE:** cannot be used in tandem with local repository support)
260
261    - Navigate to "HTTP proxy" and enter your http proxy address
262
263    - Select <Check> and press [Enter]
264
265    .. figure:: img/fuelmenu5.png
266
267 #. In the "Time Sync" section (see figure below) - Change the following fields to appropriate values:
268
269    - NTP Server 1 <Customer NTP server 1>
270
271    - NTP Server 2 <Customer NTP server 2>
272
273    - NTP Server 3 <Customer NTP server 3>
274
275    .. figure:: img/fuelmenu6.png
276
277 #. Start the installation.
278
279    - Select Quit Setup and press Save and Quit.
280
281    - The installation will now start, wait until the login screen is shown.
282
283 Boot the Node Servers
284 =====================
285
286 After the Fuel Master node has rebooted from the above steps and is at
287 the login prompt, you should boot the Node Servers (Your
288 Compute/Control/Storage blades, nested or real) with a PXE booting
289 scheme so that the FUEL Master can pick them up for control.
290
291 #. Enable PXE booting
292
293    - For every controller and compute server: enable PXE Booting as the first boot device in the BIOS boot order menu, and hard disk as the second boot device in the same menu.
294
295 #. Reboot all the control and compute blades.
296
297 #. Wait for the availability of nodes showing up in the Fuel GUI.
298
299    - Connect to the FUEL UI via the URL provided in the Console (default: https://10.20.0.2:8443)
300
301    - Wait until all nodes are displayed in top right corner of the Fuel GUI: Total nodes and Unallocated nodes (see figure below).
302
303    .. figure:: img/nodes.png
304
305 Install additional Plugins/Features on the FUEL node
306 ====================================================
307
308 #. SSH to your FUEL node (e.g. root@10.20.0.2  pwd: r00tme)
309
310 #. Select wanted plugins/features from the /opt/opnfv/ directory.
311
312 #. Install the wanted plugin with the command
313
314     .. code-block:: bash
315
316         $ fuel plugins --install /opt/opnfv/<plugin-name>-<version>.<arch>.rpm
317
318     Expected output (see figure below):
319
320     .. code-block:: bash
321
322         Plugin ....... was successfully installed.
323
324    .. figure:: img/plugin_install.png
325
326 Create an OpenStack Environment
327 ===============================
328
329 #. Connect to Fuel WEB UI with a browser (default: https://10.20.0.2:8443) (login: admin/admin)
330
331 #. Create and name a new OpenStack environment, to be installed.
332
333    .. figure:: img/newenv.png
334
335 #. Select "<Mitaka on Ubuntu 14.04>" and press <Next>
336
337 #. Select "compute virtulization method".
338
339    - Select "QEMU-KVM as hypervisor" and press <Next>
340
341 #. Select "network mode".
342
343    - Select "Neutron with ML2 plugin"
344
345    - Select "Neutron with tunneling segmentation" (Required when using the ODL or ONOS plugins)
346
347    - Press <Next>
348
349 #. Select "Storage Back-ends".
350
351    - Select "Ceph for block storage" and press <Next>
352
353 #. Select "additional services" you wish to install.
354
355    - Check option "Install Ceilometer and Aodh" and press <Next>
356
357 #. Create the new environment.
358
359    - Click <Create> Button
360
361 Configure the network environment
362 =================================
363
364 #. Open the environment you previously created.
365
366 #. Open the networks tab and select the "default" Node Networks group to on the left pane (see figure below).
367
368    .. figure:: img/network.png
369
370 #. Update the Public network configuration and change the following fields to appropriate values:
371
372    - CIDR to <CIDR for Public IP Addresses>
373
374    - IP Range Start to <Public IP Address start>
375
376    - IP Range End to <Public IP Address end>
377
378    - Gateway to <Gateway for Public IP Addresses>
379
380    - Check <VLAN tagging>.
381
382    - Set appropriate VLAN id.
383
384 #. Update the Storage Network Configuration
385
386    - Set CIDR to appropriate value  (default 192.168.1.0/24)
387
388    - Set IP Range Start to appropriate value (default 192.168.1.1)
389
390    - Set IP Range End to appropriate value (default 192.168.1.254)
391
392    - Set vlan to appropriate value  (default 102)
393
394 #. Update the Management network configuration.
395
396    - Set CIDR to appropriate value (default 192.168.0.0/24)
397
398    - Set IP Range Start to appropriate value (default 192.168.0.1)
399
400    - Set IP Range End to appropriate value (default 192.168.0.254)
401
402    - Check <VLAN tagging>.
403
404    - Set appropriate VLAN id. (default 101)
405
406 #. Update the Private Network Information
407
408    - Set CIDR to appropriate value (default 192.168.2.0/24
409
410    - Set IP Range Start to appropriate value (default 192.168.2.1)
411
412    - Set IP Range End to appropriate value (default 192.168.2.254)
413
414    - Check <VLAN tagging>.
415
416    - Set appropriate VLAN tag (default 103)
417
418 #. Select the "Neutron L3" Node Networks group on the left pane.
419
420    .. figure:: img/neutronl3.png
421
422 #. Update the Floating Network configuration.
423
424    - Set the Floating IP range start (default 172.16.0.130)
425
426    - Set the Floating IP range end (default 172.16.0.254)
427
428    - Set the Floating network name (default admin_floating_net)
429
430 #. Update the Internal Network configuration.
431
432    - Set Internal network CIDR to an appropriate value (default 192.168.111.0/24)
433
434    - Set Internal network gateway to an appropriate value
435
436    - Set the Internal network name (default admin_internal_net)
437
438 #. Update the Guest OS DNS servers.
439
440    - Set Guest OS DNS Server values appropriately
441
442 #. Save Settings.
443
444 #. Select the "Other" Node Networks group on the left pane (see figure below).
445
446    .. figure:: img/other.png
447
448 #. Update the Public network assignment.
449
450    - Check the box for "Assign public network to all nodes" (Required by OpenDaylight)
451
452 #. Update Host OS DNS Servers.
453
454    - Provide the DNS server settings
455
456 #. Update Host OS NTP Servers.
457
458    - Provide the NTP server settings
459
460 Select Hypervisor type
461 ======================
462
463 #. In the FUEL UI of your Environment, click the "Settings" Tab
464
465 #. Select "Compute" on the left side pane (see figure below)
466
467    - Check the KVM box and press "Save settings"
468
469    .. figure:: img/compute.png
470
471 Enable Plugins
472 ==============
473
474 #. In the FUEL UI of your Environment, click the "Settings" Tab
475
476 #. Select Other on the left side pane (see figure below)
477
478    - Enable and configure the plugins of your choice
479
480    .. figure:: img/plugins.png
481
482 Allocate nodes to environment and assign functional roles
483 =========================================================
484
485 #. Click on the "Nodes" Tab in the FUEL WEB UI (see figure below).
486
487     .. figure:: img/addnodes.png
488
489 #. Assign roles (see figure below).
490
491     - Click on the <+Add Nodes> button
492
493     - Check <Controller>, <Telemetry - MongoDB>  and optionally an SDN Controller role (OpenDaylight controller/ONOS) in the "Assign Roles" Section.
494
495     - Check one node which you want to act as a Controller from the bottom half of the screen
496
497     - Click <Apply Changes>.
498
499     - Click on the <+Add Nodes> button
500
501     - Check the <Controller> and <Storage - Ceph OSD> roles.
502
503     - Check the two next nodes you want to act as Controllers from the bottom half of the screen
504
505     - Click <Apply Changes>
506
507     - Click on <+Add Nodes> button
508
509     - Check the <Compute> and <Storage - Ceph OSD> roles.
510
511     - Check the Nodes you want to act as Computes from the bottom half of the screen
512
513     - Click <Apply Changes>.
514
515     .. figure:: img/computelist.png
516
517 #. Configure interfaces (see figure below).
518
519     - Check Select <All> to select all allocated nodes
520
521     - Click <Configure Interfaces>
522
523     - Assign interfaces (bonded) for mgmt-, admin-, private-, public- and storage networks
524
525     - Click <Apply>
526
527     .. figure:: img/interfaceconf.png
528
529 OPTIONAL - Set Local Mirror Repos
530 =================================
531
532 The following steps must be executed if you are in an environment with
533 no connection to the Internet. The Fuel server delivers a local repo
534 that can be used for installation / deployment of openstack.
535
536 #. In the Fuel UI of your Environment, click the Settings Tab and select General from the left pane.
537
538    - Replace the URI values for the "Name" values outlined below:
539
540    - "ubuntu" URI="deb http://<ip-of-fuel-server>:8080/mirrors/ubuntu/ trusty main universe multiverse"
541
542    - "ubuntu-security" URI="deb http://<ip-of-fuel-server>:8080/mirrors/ubuntu/ trusty-security main universe multiverse"
543
544    - "ubuntu-updates" URI="deb http://<ip-of-fuel-server>:8080/mirrors/ubuntu/ trusty-updates main universe multiverse"
545
546    - "mos" URI="deb http://<ip-of-fuel-server>::8080/mitaka-9.0/ubuntu/x86_64 mos9.0 main restricted"
547
548    - "Auxiliary" URI="deb http://<ip-of-fuel-server>:8080/mitaka-9.0/ubuntu/auxiliary auxiliary main restricted"
549
550    - Click <Save Settings> at the bottom to Save your changes
551
552 Target specific configuration
553 =============================
554
555 #. Set up targets for provisioning with non-default "Offloading Modes"
556
557    Some target nodes may require additional configuration after they are
558    PXE booted (bootstrapped); the most frequent changes are in defaults
559    for ethernet devices' "Offloading Modes" settings (e.g. some targets'
560    ethernet drivers may strip VLAN traffic by default).
561
562    If your target ethernet drivers have wrong "Offloading Modes" defaults,
563    in "Configure interfaces" page (described above), expand affected
564    interface's "Offloading Modes" and [un]check the relevant settings
565    (see figure below):
566
567    .. figure:: img/offloadingmodes.png
568
569 #. Set up targets for "Verify Networks" with non-default "Offloading Modes"
570
571    **NOTE**: Check *Reference 15* for an updated and comprehensive list of
572    known issues and/or limitations, including "Offloading Modes" not being
573    applied during "Verify Networks" step.
574
575    Setting custom "Offloading Modes" in Fuel GUI will only apply those settings
576    during provisiong and **not** during "Verify Networks", so if your targets
577    need this change, you have to apply "Offloading Modes" settings by hand
578    to bootstrapped nodes.
579
580    **E.g.**: Our driver has "rx-vlan-filter" default "on" (expected "off") on
581    the Openstack interface(s) "eth1", preventing VLAN traffic from passing
582    during "Verify Networks".
583
584    - From Fuel master console identify target nodes admin IPs (see figure below):
585
586      .. code-block:: bash
587
588          $ fuel nodes
589
590      .. figure:: img/fuelconsole1.png
591
592    - SSH into each of the target nodes and disable "rx-vlan-filter" on the
593      affected physical interface(s) allocated for OpenStack traffic (eth1):
594
595      .. code-block:: bash
596
597          $ ssh root@10.20.0.6 ethtool -K eth1 rx-vlan-filter off
598
599    - Repeat the step above for all affected nodes/interfaces in the POD.
600
601 Verify Networks
602 ===============
603
604 It is important that the Verify Networks action is performed as it will verify
605 that communicate works for the networks you have setup, as well as check that
606 packages needed for a successful deployment can be fetched.
607
608 #. From the FUEL UI in your Environment, Select the Networks Tab and select "Connectivity check" on the left pane (see figure below)
609
610    - Select <Verify Networks>
611
612    - Continue to fix your topology (physical switch, etc) until the "Verification Succeeded" and "Your network is configured correctly" message is shown
613
614    .. figure:: img/verifynet.png
615
616 Deploy Your Environment
617 =======================
618
619 #. Deploy the environment.
620
621     - In the Fuel GUI, click on the "Dashboard" Tab.
622
623     - Click on <Deploy Changes> in the "Ready to Deploy?" section
624
625     - Examine any information notice that pops up and click <Deploy>
626
627     Wait for your deployment to complete, you can view the "Dashboard"
628     Tab to see the progress and status of your deployment.
629
630 =========================
631 Installation health-check
632 =========================
633
634 #. Perform system health-check (see figure below)
635
636     - Click the "Health Check" tab inside your Environment in the FUEL Web UI
637
638     - Check <Select All> and Click <Run Tests>
639
640     - Allow tests to run and investigate results where appropriate
641
642     .. figure:: img/health.png
643
644 ==========
645 References
646 ==========
647
648 OPNFV
649 =====
650
651 1) `OPNFV Home Page <http://www.opnfv.org>`_: http://www.opnfv.org
652
653 2) `OPNFV documentation- and software downloads <https://www.opnfv.org/software/download>`_: https://www.opnfv.org/software/download
654
655 OpenStack
656 =========
657
658 3) `OpenStack Mitaka Release artifacts <http://www.openstack.org/software/mitaka>`_: http://www.openstack.org/software/mitaka
659
660 4) `OpenStack documentation <http://docs.openstack.org>`_: http://docs.openstack.org
661
662 OpenDaylight
663 ============
664
665 5) `OpenDaylight artifacts <http://www.opendaylight.org/software/downloads>`_: http://www.opendaylight.org/software/downloads
666
667 Fuel
668 ====
669
670 6) `The Fuel OpenStack project <https://wiki.openstack.org/wiki/Fuel>`_: https://wiki.openstack.org/wiki/Fuel
671
672 7) `Fuel documentation overview <http://docs.openstack.org/developer/fuel-docs>`_: http://docs.openstack.org/developer/fuel-docs
673
674 8) `Fuel Installation Guide <http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide.html>`_: http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-install-guide.html
675
676 9) `Fuel User Guide <http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide.html>`_: http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide.html
677
678 10) `Fuel Developer Guide <http://docs.openstack.org/developer/fuel-docs/devdocs/develop.html>`_: http://docs.openstack.org/developer/fuel-docs/devdocs/develop.html
679
680 11) `Fuel Plugin Developers Guide <http://docs.openstack.org/developer/fuel-docs/plugindocs/fuel-plugin-sdk-guide.html>`_: http://docs.openstack.org/developer/fuel-docs/plugindocs/fuel-plugin-sdk-guide.html
681
682 12) `Fuel OpenStack Hardware Compatibility List <https://www.mirantis.com/products/openstack-drivers-and-plugins/hardware-compatibility-list>`_: https://www.mirantis.com/products/openstack-drivers-and-plugins/hardware-compatibility-list
683
684 Fuel in OPNFV
685 =============
686
687 13) `OPNFV Installation instruction for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/installationprocedure/index.html>`_: http://artifacts.opnfv.org/fuel/colorado/docs/installationprocedure/index.html
688
689 14) `OPNFV Build instruction for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/buildprocedure/index.html>`_: http://artifacts.opnfv.org/fuel/colorado/docs/buildprocedure/index.html
690
691 15) `OPNFV Release Note for the Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/fuel/colorado/docs/releasenotes/index.html>`_: http://artifacts.opnfv.org/fuel/colorado/docs/releasenotes/index.html