With the 2.0 release of MAAS, we are delivering High Availability for both Region and Rack components of MAAS. This deck describes the MAAS architecture and how HA is implemented.
3. Region & Rack
○ MAAS consists of two high-level
components: Region and Rack
○ In the simplest possible
deployment, both components
can run on a single system
(That's what you get when you simply do
apt-get install maas)
4. Region & Rack
The Region is what the sysadmin
directly interacts with:
○ Delivers Web interface and REST API
○ Services DNS requests via BIND
○ Provides an HTTP proxy via SQUID
○ Provides API endpoints used by curtin
and cloud-init during node lifecycle
○ Stores deployment metadata and
downloaded images in PostgreSQL
5. Region & Rack
The Rack directly manages nodes in
order to inventory and deploy:
○ Provides DHCP services via dhcpd
○ Provides TFTP (built-in)
○ Delivers an ephemeral environment via
PXE and iSCSI which is used for
commissioning and deployment
6. Region
Rack 1
○ MAAS can be easily scaled out
by separating the Region and
Rack onto separate machines
(Separate VMs on different hosts are OK too)
○ The Rack controller can manage
a rack (or more) directly
○ The Region can manage multiple
Rack controllers
8. HA Region
(2+ servers)
HA Rack Controller
* ideally on switch
* typically in-rack or row-level
* cache of images
* provides backup services for
adjacent racks/rows
HA Rack Controller
HA Overview
Rack Server
Rack Server
Rack Server
Rack Server
Rack Server
Rack Server
Rack Server
Rack Server
Rack Server
Rack Server
Rack Server
Rack Server
Rack Server
Rack Server
HA PostgreSQL
(2+ servers)
Managed VIP or haproxy
9. Region
Rack 1 Rack 2 Rack 3
○ Single
MAAS
region
○ No HA
configured
○ Region &
Rack-level
SPOFs
10. Region
Rack 1 Rack 2 Rack 3
Region
○ Region HA
○ Region
controllers
share DB
DB Cluster
11. Region
Rack 1 Rack 2 Rack 3
Region
○ Region HA
○ Master dies
○ No problem!
○ Spare region
controller
takes over
DB Cluster
12. Region
Rack 1 Rack 2 Rack 3
Region
○ Region HA
○ Rack HA
○ Each rack
controller
can manage
multiple
networks
DB Cluster
13. Region
Rack 1 Rack 2 Rack 3
Region
○ Region HA
○ Rack HA
○ Rack 1 dies
○ No problem!
○ Rack 2 takes
over
DB Cluster