====================================================================================================================
-OPNFV Installation instruction for the AArch64 Brahmaputra 3.0 release of OPNFV when using Fuel as a deployment tool
+OPNFV Installation instruction for the AArch64 Colorado 1.0 release of OPNFV when using Fuel as a deployment tool
====================================================================================================================
License
Abstract
========
-This document describes how to install the Brahmaputra 3.0 release of
-OPNFV when using Fuel as a deployment tool, with an AArch64 (only) target node pool.
+This document describes how to install the Colorado 1.0 release of
+OPNFV when using Fuel as a deployment tool, with an AArch64 (only) target
+node pool.
Introduction
============
This document provides guidelines on how to install and
-configure the Brahmaputra 3.0 release of OPNFV when using Fuel as a
+configure the Colorado 1.0 release of OPNFV when using Fuel as a
deployment tool, with an AArch64 (only) target node pool,
including required software and hardware configurations.
freedom in how the system is set-up, including architecture, services
and features, etc., said permutations may not provide an OPNFV
compliant reference architecture. This instruction provides a
-step-by-step guide that results in an OPNFV Brahmaputra compliant
+step-by-step guide that results in an OPNFV Colorado compliant
deployment.
The audience of this document is assumed to have good knowledge in
Preface
=======
-Before starting the installation of the AArch64 Brahmaputra 3.0 release of
+Before starting the installation of the AArch64 Colorado 1.0 release of
OPNFV, using Fuel as a deployment tool, some planning must be
done.
------------------------
First of all, the Fuel deployment ISO image needs to be retrieved, the
-Fuel .iso image of the AArch64 Brahmaputra release can be found at *Reference: 2*
+ArmbandFuel .iso image of the AArch64 Colorado release can be found
+at *Reference: 2*
Building the ISO image
----------------------
-Alternatively, you may build the .iso from source by cloning the
-opnfv/armband git repository. To retrieve the repository for the AArch64 Brahmaputra 3.0 release use the following command:
+Alternatively, you may build the ArmbandFuel .iso from source by cloning the
+opnfv/armband git repository. To retrieve the repository for the AArch64
+Colorado 1.0 release use the following command:
-$git clone https://<linux foundation uid>@gerrit.opnf.org/gerrit/armband
+.. code-block:: bash
-Check-out the Brahmaputra stable branch to set the branch to the
-baseline required to replicate the Brahmaputra release:
+ $ git clone https://gerrit.opnfv.org/gerrit/armband
-$ git checkout stable/brahmaputra
+Check-out the Colorado release tag to set the HEAD to the
+baseline required to replicate the Colorado release:
+
+.. code-block:: bash
+
+ $ git checkout colorado.1.0
Go to the armband directory and build the .iso:
-$ cd armband; make release
+.. code-block:: bash
+
+ $ cd armband
+ $ make release
For more information on how to build, please see *Reference: 14*
Other preparations
------------------
-
Next, familiarize yourself with Fuel by reading the following documents:
- Fuel planning guide, please see *Reference: 8*
=====================
The following minimum hardware requirements must be met for the
-installation of Brahmaputra using Fuel:
+installation of AArch64 Colorado 1.0 using Fuel:
+--------------------+------------------------------------------------------+
| **HW Aspect** | **Requirement** |
| | |
+====================+======================================================+
-| **# of nodes** | Minimum 5 (3 for non redundant deployment): |
-| | |
-| | - 1 Fuel deployment master (may be virtualized) |
+| **AArch64 nodes** | Minimum 5 (3 for non redundant deployment): |
| | |
| | - 3(1) Controllers (1 colocated mongo/ceilometer |
| | role, 2 Ceph-OSD roles) |
| | - 1 Compute (1 co-located Ceph-OSD role) |
| | |
+--------------------+------------------------------------------------------+
-| **CPU** | Minimum 1 socket x86_AMD64 with Virtualization |
+| **CPU** | Minimum 1 socket AArch64 (ARMv8) with Virtualization |
| | support |
+--------------------+------------------------------------------------------+
| **RAM** | Minimum 16GB/server (Depending on VNF work load) |
| **Disk** | Minimum 256GB 10kRPM spinning disks |
| | |
+--------------------+------------------------------------------------------+
+| **Firmware** | UEFI compatible (e.g. EDK2) with PXE support |
++--------------------+------------------------------------------------------+
| **Networks** | 4 Tagged VLANs (PUBLIC, MGMT, STORAGE, PRIVATE) |
| | |
| | 1 Un-Tagged VLAN for PXE Boot - ADMIN Network |
| | or spread out over multiple NICs as your hardware |
| | supports. |
+--------------------+------------------------------------------------------+
+| **1 x86_64 node** | - 1 Fuel deployment master, x86 (may be virtualized) |
++--------------------+------------------------------------------------------+
Help with Hardware Requirements
===============================
Calculate hardware requirements:
-For information on compatible hardware types available for use, please see *Reference: 11*.
-
When choosing the hardware on which you will deploy your OpenStack
environment, you should think about:
infrastructure as well as the provider networks and the private tenant
VLANs needs to be manually configured.
-Manual configuration of the Brahmaputra hardware platform should
+Manual configuration of the Colorado hardware platform should
be carried out according to the OPNFV Pharos specification:
-<https://wiki.opnfv.org/pharos/pharos_specification>
+<https://wiki.opnfv.org/display/pharos/Pharos+Specification>
OPNFV Software installation and deployment
==========================================
Install Fuel master
-------------------
-#. Mount the Brahmaputra Fuel ISO file/media as a boot device to the jump host server.
+#. Mount the Colorado Fuel ISO file/media as a boot device to the jump host server.
#. Reboot the jump host to establish the Fuel server.
#. 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).
- - Configuration of ETH1 interface for connectivity into your corporate/lab network is mandatory. You need to have internet access over this interface.
- Due to the architecture of ports.ubuntu.com mirror, currently Fuel cannot create a full local mirror of all required AArch64 packages. Internet access is needed to deploy with Fuel on AArch64 nodes.
+ - **NOTE**: ArmbandFuel@OPNFV requires internet connectivity during bootstrap
+ image building, due to missing arm64 (AArch64) packages in the partial
+ local Ubuntu mirror (consequence of ports.ubuntu.com mirror architecture).
+
+ - Configuration of ETH1 interface for connectivity into your corporate/lab
+ network is mandatory, as internet connection is required during deployment.
.. figure:: img/fuelmenu2.png
.. figure:: img/fuelmenu4.png
+#. **DO NOT CHANGE** anything in "Bootstrap Image" section (see figure below).
-#. 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)
-
- - Navigate to "HTTP proxy" and enter your http proxy address
+ In ArmbandFuel@OPNFV, this data is **NOT** actually used for bootstrap
+ image building. Any change here will replace the configuration from
+ the OPNFV bootstrap build scripts and will lead to a failed bootstrap
+ image build.
- - Select <Check> and press [Enter]
+ **NOTE:** Cannot be used in tandem with local repository support.
.. figure:: img/fuelmenu5.png
#. Start the installation.
- - Select Quit Setup and press Save and Quit.
+ - Press <F8> or select Quit Setup and press Save and Quit.
- Installation starts, wait until the login screen is shown.
Compute/Control/Storage blades (nested or real) with a PXE booting
scheme so that the FUEL Master can pick them up for control.
+**NOTE**: AArch64 target nodes are expected to support PXE booting an
+EFI binary, i.e. an EFI-stubbed GRUB2 bootloader.
+
+**NOTE**: UEFI (EDK2) firmware is **highly** recommended, becoming
+the **de facto** standard for ARMv8 nodes.
+
#. Enable PXE booting
- - 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.
+ - For every controller and compute server: enable PXE Booting as the first boot device in the UEFI (EDK2) boot order menu and hard disk as the second boot device in the same menu.
#. Reboot all the control and compute blades.
.. figure:: img/nodes.png
-Target specific configuration
------------------------------
-
-#. AMD Softiron
-
- 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).
- For now this setting cannot be toggled from Fuel GUI, so it has to be done form the console.
+Install additional Plugins/Features on the FUEL node
+----------------------------------------------------
- - From Fuel master console identify target nodes admin IPs (see figure below).
+#. SSH to your FUEL node (e.g. root@10.20.0.2 pwd: r00tme)
- .. figure:: img/fuelconsole1.png
+#. Select wanted plugins/features from the /opt/opnfv/ directory.
- - SSH into each of the target nodes and disable rx-vlan-filter on the physical interface allocated for OpenStack traffic (see figure below).
+#. Install the wanted plugin with the command:
- .. figure:: img/softiron1.png
+ .. code-block:: bash
- - Repeat the step above for all AMD Softiron nodes in the POD.
+ $ fuel plugins --install /opt/opnfv/<plugin-name>-<version>.<arch>.rpm
+ Expected output (see figure below):
-Install additional Plugins/Features on the FUEL node
-----------------------------------------------------
-
-#. SSH to your FUEL node (e.g. root@10.20.0.2 pwd: r00tme)
+ .. code-block:: bash
-#. Select wanted plugins/features from the /opt/opnfv/ directory.
+ Plugin ....... was successfully installed.
-#. Install the wanted plugin with the command "fuel plugins --install /opt/opnfv/<plugin-name>-<version>.<arch>.rpm"
- Expected output: "Plugin ....... was successfully installed." (see figure below)
+ **NOTE**: Not all plugins are ported to AArch64 Colorado 1.0
+ see *Reference 15*.
.. figure:: img/plugin_install.png
.. figure:: img/newenv.png
-#. Select "<Liberty on Ubuntu 14.04 (aarch64)>" and press <Next>
+#. Select "<Mitaka on Ubuntu 14.04 (aarch64)>" and press <Next>
#. Select "compute virtulization method".
- Select "Neutron with ML2 plugin"
- - Select "Neutron with tunneling segmentation" (Required when using the ODL or ONOS plugins)
+ - Select "Neutron with tunneling segmentation" (Required when using the ODL plugin)
- Press <Next>
#. Select "additional services" you wish to install.
- - Check option "Install Celiometer (OpenStack Telemetry)" and press <Next>
+ - Check option "Install Ceilometer (OpenStack Telemetry)" and press <Next>
#. Create the new environment.
- Enable and configure the plugins of your choice
- .. figure:: img/plugins.png
+ .. figure:: img/plugins_aarch64.png
Allocate nodes to environment and assign functional roles
---------------------------------------------------------
- Click on the <+Add Nodes> button
- - Check <Controller>, <Telemetry - MongoDB> and optionally an SDN Controller role (OpenDaylight controller/ONOS) in the Assign Roles Section.
+ - Check <Controller>, <Telemetry - MongoDB> and optionally an SDN Controller role (OpenDaylight controller) in the Assign Roles Section.
- Check one node which you want to act as a Controller from the bottom half of the screen
.. figure:: img/interfaceconf.png
-
-OPTIONAL - Set Local Mirror Repos
+OPTIONAL - UNTESTED - Set Local Mirror Repos
---------------------------------
+**NOTE**: AArch64 Colorado 1.0 does not fully support local Ubuntu mirrors,
+or at least does not ship with arm64 packages in local repos by default.
+In order to use local (partial) Ubuntu mirrors, one should add arm64 packages
+by hand to the existing amd64 mirrors and re-generate repo metadata.
+Local MOS/Auxiliary repos contain packages for both amd64 and arm64.
+
+**NOTE**: Below instruction assume you already added (by hand) arm64
+Ubuntu necessary packages to the local repository!
+
The following steps can be executed if you are in an environment with
no connection to the Internet. The Fuel server delivers a local repo
that can be used for installation / deployment of openstack.
- "ubuntu-updates" URI="deb http://<ip-of-fuel-server>:8080/mirrors/ubuntu/ trusty-updates main"
- - "mos" URI="deb http://<ip-of-fuel-server>::8080/liberty-8.0/ubuntu/x86_64 mos8.0 main restricted"
+ - "mos" URI="deb http://<ip-of-fuel-server>::8080/mitaka-8.0/ubuntu/x86_64 mos8.0 main restricted"
- - "Auxiliary" URI="deb http://<ip-of-fuel-server>:8080/liberty-8.0/ubuntu/auxiliary auxiliary main restricted"
+ - "Auxiliary" URI="deb http://<ip-of-fuel-server>:8080/mitaka-8.0/ubuntu/auxiliary auxiliary main restricted"
- Click <Save Settings> at the bottom to Save your changes
+Target specific configuration
+-----------------------------
+
+#. [AArch64 specific] Configure MySQL WSREP SST provider
+
+ **NOTE**: This option is only available for ArmbandFuel@OPNFV, since it
+ currently only affects AArch64 targets (see *Reference 15*).
+
+ When using some AArch64 platforms as controller nodes, WSREP SST
+ synchronisation using default backend provider (xtrabackup-v2) might fail,
+ so a mechanism that allows selecting a different WSREP SST provider
+ has been introduced.
+
+ In the FUEL UI of your Environment, click the <Settings> tab, click
+ <OpenStack Services> on the left side pane (see figure below), then
+ select one of the following options:
+
+ - xtrabackup-v2 (default provider, AArch64 stability issues);
+
+ - rsync (AArch64 validated, better or comparable speed to xtrabackup,
+ takes the donor node offline during state transfer);
+
+ - mysqldump (untested);
+
+ .. figure:: img/fuelwsrepsst.png
+
+#. Set up targets for provisioning with non-default "Offloading Modes"
+
+ Some target nodes may require additional configuration after they are
+ PXE booted (bootstrapped); the most frequent changes are in defaults
+ for ethernet devices' "Offloading Modes" settings (e.g. some targets'
+ ethernet drivers may strip VLAN traffic by default).
+
+ If your target ethernet drivers have wrong "Offloading Modes" defaults,
+ in "Configure interfaces" page (described above), expand affected
+ interface's "Offloading Modes" and [un]check the relevant settings
+ (see figure below):
+
+ .. figure:: img/offloadingmodes.png
+
+#. Set up targets for "Verify Networks" with non-default "Offloading Modes"
+
+ **NOTE**: Check *Reference 15* for an updated and comprehensive list of
+ known issues and/or limitations, including "Offloading Modes" not being
+ applied during "Verify Networks" step.
+
+ Setting custom "Offloading Modes" in Fuel GUI will only apply those settings
+ during provisiong and **not** during "Verify Networks", so if your targets
+ need this change, you have to apply "Offloading Modes" settings by hand
+ to bootstrapped nodes.
+
+ **E.g.**: Our driver has "rx-vlan-filter" default "on" (expected "off") on
+ the Openstack interface(s) "eth1", preventing VLAN traffic from passing
+ during "Verify Networks".
+
+ - From Fuel master console identify target nodes admin IPs (see figure below):
+
+ .. code-block:: bash
+
+ $ fuel nodes
+
+ .. figure:: img/fuelconsole1.png
+
+ - SSH into each of the target nodes and disable "rx-vlan-filter" on the
+ affected physical interface(s) allocated for OpenStack traffic (eth1):
+
+ .. code-block:: bash
+
+ $ ssh root@10.20.0.6 ethtool -K eth1 rx-vlan-filter off
+
+ - Repeat the step above for all affected nodes/interfaces in the POD.
+
Verify Networks
---------------
- Allow tests to run and investigate results where appropriate
+ - Check *Reference 15* for known issues / limitations on AArch64, like
+ unsupported migration tests when using a GICv3 interrupt controller
+
.. figure:: img/health.png
References
OPNFV
-----
-1) `OPNFV Home Page <www.opnfv.org>`_
+1) `OPNFV Home Page <http://www.opnfv.org>`_
2) `OPNFV documentation- and software downloads <https://www.opnfv.org/software/download>`_
OpenStack
---------
-3) `OpenStack Liberty Release artifacts <http://www.openstack.org/software/liberty>`_
+3) `OpenStack Mitaka Release artifacts <http://www.openstack.org/software/mitaka>`_
4) `OpenStack documentation <http://docs.openstack.org>`_
----
6) `The Fuel OpenStack project <https://wiki.openstack.org/wiki/Fuel>`_
-7) `Fuel documentation overview <https://docs.fuel-infra.org/openstack/fuel/fuel-8.0/>`_
+7) `Fuel documentation overview <https://docs.mirantis.com/openstack/fuel/fuel-9.0>`_
-8) `Fuel planning guide <https://docs.fuel-infra.org/openstack/fuel/fuel-8.0/mos-planning-guide.html>`_
+8) `Fuel planning guide <https://docs.mirantis.com/openstack/fuel/fuel-9.0/mos-planning-guide.html>`_
-9) `Fuel quick start guide <https://docs.mirantis.com/openstack/fuel/fuel-8.0/quickstart-guide.html>`_
+9) `Fuel quick start guide <https://docs.mirantis.com/openstack/fuel/fuel-9.0/quickstart-guide.html>`_
-10) `Fuel operations guide <https://docs.mirantis.com/openstack/fuel/fuel-8.0/operations.html>`_
+10) `Fuel user guide <http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide.html>`_
11) `Fuel Plugin Developers Guide <https://wiki.openstack.org/wiki/Fuel/Plugins>`_
-12) `Fuel OpenStack Hardware Compatibility List <https://www.mirantis.com/products/openstack-drivers-and-plugins/hardware-compatibility-list>`_
+12) `(N/A on AArch64) Fuel OpenStack Hardware Compatibility List <https://www.mirantis.com/products/openstack-drivers-and-plugins/hardware-compatibility-list>`_
Fuel in OPNFV
-------------
-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>`_
+13) `OPNFV Installation instruction for the AArch64 Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/armband/docs/installation-instruction.html>`_
-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>`_
+14) `OPNFV Build instruction for the AArch64 Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/armband/docs/build-instruction.html>`_
-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>`_
+15) `OPNFV Release Note for the AArch64 Colorado release of OPNFV when using Fuel as a deployment tool <http://artifacts.opnfv.org/armband/docs/release-notes.html>`_