In this Reference Architecture, MAAS is installed in a Highly Available fashion using a set of open-source tools including but not limited to: MAAS, PostgreSQL, Corosync/Pacemaker.
For detailed configuration procedures, contact Canonical representatives.
Prerequisites
Three infrastructure nodes for fully HA, preinstalled with the latest Ubuntu Operating System LTS, must be available to host MAAS, automation, and monitoring components. The nodes must have SSH access to each other configured.
Infrastructure nodes requirements
Three infrastructure nodes must be already preinstalled, and they host multiple services intended to support building and operating the OpenStack solution, including:
- MAAS and its dependencies, including PostgreSQL
- Each Infrastructure Node has to be turned into a KVM host managed by MAAS, and a necessary set of KVM-based Virtual Machines should be created on top of them for further deployment of supporting services:
- Juju controllers
- Monitoring and alerting systems
- Log aggregation and analysis systems
- Landscape nodes management
Infrastructure nodes must have network access to:
- The PXE and BMC networks in order to commission and provision machines.
- The various APIs which must be monitored. In order to monitor the OpenStack cluster, the nodes must have access to the OpenStack Internal network (mentioned above).
- Ubuntu packages repositories and other online services, in order to obtain images, packages, and other reference data.
To achieve high availability of services, infrastructure nodes must:
- Be placed in separate hardware availability zones
- Have PostgreSQL installed in HA fashion and its Virtual IP (VIP) configured. More info can be found in ClusterLabs manual.
- MAAS has a concept of availability zones where server hardware can be placed into different racks and each rack can be placed in a single zone. Alternatively, if resided within the same rack, the hardware can be logically separated based on the power redundancy or the slots within the rack. It would be helpful to place different services in different hardware zones.
- Have bonded network interfaces in order to provide resiliency from a switch or NIC failures.
- Have the MTU on the bonded interfaces set to 9000B (jumbo frames).
- Have a bridge (`broam`) interface active which has the primary bond (typically `bond0`) as its only member. The bridge inherits the MTU of the underlying device, so there is no need to set its MTU explicitly.