1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
Triple-O Deployment Architecture
================================
Apex is based on the OpenStack Triple-O project as distributed by
the RDO Project. It is important to understand the basics
of a Triple-O deployment to help make decisions that will assist in
successfully deploying OPNFV.
Triple-O stands for OpenStack On OpenStack. This means that OpenStack
will be used to install OpenStack. The target OPNFV deployment is an
OpenStack cloud with NFV features built-in that will be deployed by a
smaller all-in-one deployment of OpenStack. In this deployment
methodology there are two OpenStack installations. They are referred
to as the undercloud and the overcloud. The undercloud is used to
deploy the overcloud.
The undercloud is the all-in-one installation of OpenStack that includes
baremetal provisioning capability. The undercloud will be deployed as a
virtual machine on a jumphost. This VM is pre-built and distributed as part
of the Apex RPM.
The overcloud is OPNFV. Configuration will be passed into undercloud and
the undercloud will use OpenStack's orchestration component, named Heat, to
execute a deployment that will provision the target OPNFV nodes.
Apex High Availability Architecture
===================================
Undercloud
----------
The undercloud is not Highly Available. End users do not depend on the
undercloud. It is only for management purposes.
Overcloud
---------
Apex will deploy three control nodes in an HA deployment. Each of these nodes
will run the following services:
- Stateless OpenStack services
- MariaDB / Galera
- RabbitMQ
- OpenDaylight
- HA Proxy
- Pacemaker & VIPs
- Ceph Monitors and OSDs
Stateless OpenStack services
All running stateless OpenStack services are load balanced by HA Proxy.
Pacemaker monitors the services and ensures that they are running.
Stateful OpenStack services
All running stateful OpenStack services are load balanced by HA Proxy.
They are monitored by pacemaker in an active/passive failover configuration.
MariaDB / Galera
The MariaDB database is replicated across the control nodes using Galera.
Pacemaker is responsible for a proper start up of the Galera cluster. HA
Proxy provides and active/passive failover methodology to connections to the
database.
RabbitMQ
The message bus is managed by Pacemaker to ensure proper start up and
establishment of clustering across cluster members.
OpenDaylight
OpenDaylight is currently installed on all three control nodes and started as
an HA cluster unless otherwise noted for that scenario. OpenDaylight's
database, known as MD-SAL, breaks up pieces of the database into "shards".
Each shard will have its own election take place, which will determine
which OpenDaylight node is the leader for that shard. The other
OpenDaylight nodes in the cluster will be in standby. Every Open vSwitch
node connects to every OpenDaylight to enable HA.
HA Proxy
HA Proxy is monitored by Pacemaker to ensure it is running across all nodes
and available to balance connections.
Pacemaker & VIPs
Pacemaker has relationships and restraints setup to ensure proper service
start up order and Virtual IPs associated with specific services are running
on the proper host.
Ceph Monitors & OSDs
The Ceph monitors run on each of the control nodes. Each control node also
has a Ceph OSD running on it. By default the OSDs use an autogenerated
virtual disk as their target device. A non-autogenerated device can be
specified in the deploy file.
VM Migration is configured and VMs can be evacuated as needed or as invoked
by tools such as heat as part of a monitored stack deployment in the overcloud.
OPNFV Scenario Architecture
===========================
OPNFV distinguishes different types of SDN controllers, deployment options, and
features into "scenarios". These scenarios are universal across all OPNFV
installers, although some may or may not be supported by each installer.
The standard naming convention for a scenario is:
<VIM platform>-<SDN type>-<feature>-<ha/noha>
The only supported VIM type is "OS" (OpenStack), while SDN types can be any
supported SDN controller. "feature" includes things like ovs_dpdk, sfc, etc.
"ha" or "noha" determines if the deployment will be highly available. If "ha"
is used at least 3 control nodes are required.
OPNFV Scenarios in Apex
=======================
Apex provides pre-built scenario files in /etc/opnfv-apex which a user can
select from to deploy the desired scenario. Simply pass the desired file to
the installer as a (-d) deploy setting. Read further in the Apex documentation
to learn more about invoking the deploy command. Below is quick reference
matrix for OPNFV scenarios supported in Apex. Please refer to the respective
OPNFV Docs documentation for each scenario in order to see a full scenario
description. Also, please refer to release-notes for information about known
issues per scenario. The following scenarios correspond to a supported
<Scenario>.yaml deploy settings file:
+-------------------------+-------------+---------------+
| **Scenario** | **Owner** | **Supported** |
+-------------------------+-------------+---------------+
| os-nosdn-nofeature-ha | Apex | Yes |
+-------------------------+-------------+---------------+
| os-nosdn-nofeature-noha | Apex | Yes |
+-------------------------+-------------+---------------+
| os-nosdn-ovs-ha | OVS for NFV | Yes |
+-------------------------+-------------+---------------+
| os-nosdn-ovs-noha | OVS for NFV | Yes |
+-------------------------+-------------+---------------+
| os-nosdn-fdio-ha | FDS | No |
+-------------------------+-------------+---------------+
| os-nosdn-fdio-noha | FDS | No |
+-------------------------+-------------+---------------+
| os-nosdn-kvm-ha | KVM for NFV | Yes |
+-------------------------+-------------+---------------+
| os-nosdn-kvm-noha | KVM for NFV | Yes |
+-------------------------+-------------+---------------+
| os-nosdn-performance-ha | Apex | Yes |
+-------------------------+-------------+---------------+
| os-odl_l3-nofeature-ha | Apex | Yes |
+-------------------------+-------------+---------------+
| os-odl_l3-nofeature-noha| Apex | Yes |
+-------------------------+-------------+---------------+
| os-odl_l3-ovs-ha | OVS for NFV | Yes |
+-------------------------+-------------+---------------+
| os-odl_l3-ovs-noha | OVS for NFV | Yes |
+-------------------------+-------------+---------------+
| os-odl-bgpvpn-ha | SDNVPN | Yes |
+-------------------------+-------------+---------------+
| os-odl-bgpvpn-noha | SDNVPN | Yes |
+-------------------------+-------------+---------------+
| os-odl-gluon-noha | GluOn | Yes |
+-------------------------+-------------+---------------+
| os-odl_l3-csit-noha | Apex | Yes |
+-------------------------+-------------+---------------+
| os-odl_l3-fdio-ha | FDS | Yes |
+-------------------------+-------------+---------------+
| os-odl_l3-fdio-noha | FDS | Yes |
+-------------------------+-------------+---------------+
| os-odl_l2-fdio-ha | FDS | Yes |
+-------------------------+-------------+---------------+
| os-odl_l2-fdio-noha | FDS | Yes |
+-------------------------+-------------+---------------+
| os-odl_l2-sfc-noha | SFC | No |
+-------------------------+-------------+---------------+
| os-onos-nofeature-ha | ONOSFW | No |
+-------------------------+-------------+---------------+
| os-onos-sfc-ha | ONOSFW | No |
+-------------------------+-------------+---------------+
| os-ovn-nofeature-noha | Apex | Yes |
+-------------------------+-------------+---------------+
|