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