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