Enhanced Resilience and Scale Variations
This section covers Contrail Cloud architecture options to support enhanced resilience and scale variations.
Enhanced Resilience and Scale Variations Overview
You can add controller nodes when increased resilience and scale are required in your Contrail Cloud environment. Two options for adding controller nodes are described in this section.
Five Controller Deployments
Enhanced resiliency and performance for Contrail Networking and Openstack Red Hat can be achieved by running controller VMs on additional servers and providing Layer 2 connectivity between the controller VMs.
In this use case, enhanced resiliency is achieved by running controller VMs on five servers with Layer 2 connectivity.
The setup includes:
5 Contrail Controllers
5 Openstack Controllers
3 Analytic nodes
3 Analytics DB nodes
3 Appformix nodes
The enhanced resiliency provided by this architecture ensures the Contrail Cloud environments remains operational in cases where two controller nodes fail.
Controller VM placement in this architecture is configured in the site.yml file.
A configuration snippet from the site.yml file illustrating this controller VM placement:
control_hosts: vm: control: #openstack controller [...] CPU, Memory and disk size definitions hv: - controller-host1 - controller-host2 - controller-host3 - controller-host4 - controller-host5 contrail-controller: [...] CPU, Memory and disk size definitions hv: - controller-host1 - controller-host2 - controller-host3 - controller-host4 - controller-host5 contrail-analytics: [...] CPU, Memory and disk size definitions hv: - controller-host1 - controller-host2 - controller-host3 contrail-analytics-database: [...] CPU, Memory and disk size definitions hv: - controller-host3 - controller-host4 - controller-host5 appformix-controller: [...] CPU, Memory and disk size definitions hv: - controller-host1 - controller-host4 - controller-host5
CPU, memory, and disk allocations should not change between a base three controller architecture and this five controller architecture.
Separated Controller Functions
In environments with large amounts of control plane or analytics traffic, you might want to increase scalability by splitting the OpenStack, Contrail Controller, and Contrail Analytics (with AppFormix) functions onto separate servers. This setup leads to base environments where 9 controller nodes are located in 3 racks.
Table 1 lists the roles for each controller node in separated controller environments.
Role | Network | |||||||
Intranet | Provisioning | Internal API | External | Tenant | Storage | Storage Mgmt | Mgmt | |
Jumphost |
✓ |
✓ |
||||||
Undercloud |
✓ |
✓ |
||||||
Contrail Command |
✓ |
✓ |
||||||
Openstack Controller |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
Optional |
|
Contrail Controller |
✓ |
✓ |
Optional |
✓ |
Optional |
Optional |
||
Contrail Analytics |
✓ |
✓ |
Optional |
✓ |
Optional |
Optional |
||
Contrail Analytics DB |
✓ |
✓ |
Optional |
✓ |
Optional |
Optional |
||
Contrail TSN |
✓ |
✓ |
Optional |
✓ |
Optional |
Optional |
||
AppFormix |
✓ |
✓ |
✓ |
✓ |
Optional |
|||
Compute Node |
✓ |
✓ |
✓ |
✓ |
Optional |
|||
Storage Node |
✓ |
✓ |
✓ |
Optional |
When groups of software components are allocated to different control hosts, the networking requirement of each control host is the union of the requirements of the software roles running on the host. Specialized configurations can be configured using a different hardware profile for each combination of software components.