MAAS 2.0 High Availability
Architectural overview and scenarios
MAASArchitecture
Primer
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)
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
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
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
High AvailabilityRegion and Rack-level scenarios
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
Region
Rack 1 Rack 2 Rack 3
○ Single MAAS region
○ No HA configured
○ Region & Rack-level SPOFs
Region
Rack 1 Rack 2 Rack 3
Region○ Region HA
○ Region controllers share DB
DB Cluster
Region
Rack 1 Rack 2 Rack 3
Region○ Region HA
○ Master dies
○ No problem!
○ Spare region controller takes over
DB Cluster
Region
Rack 1 Rack 2 Rack 3
Region○ Region HA
○ Rack HA
○ Each rack controller can manage multiple networks
DB Cluster
Region
Rack 1 Rack 2 Rack 3
Region○ Region HA
○ Rack HA
○ Rack 1 dies
○ No problem!
○ Rack 2 takes over
DB Cluster
maas.io