Introduction to controllers

Most of the functionality of MAAS is contained in a series of controllers. There are two basic types: a region controller and one or more rack controllers. The region controller deals with operator requests, while one or more rack controllers provide high-bandwidth services to machines. In essence, the region controller interacts with the user, while the rack controllers manage the bare metal. Note that both region and rack controllers can be scaled out, as well as made highly available.

Quick questions you might have:

What a region controller does

A region controller consists of:

  • REST API server (TCP port 5240)
  • PostgreSQL database
  • DNS
  • caching HTTP proxy
  • web UI

Region controllers are responsible for either a data centre or a single region. Multiple fabrics are used by MAAS to accommodate subdivisions within a single region, such as multiple floors in a data centre.

What a rack controller does

A rack controller provides:

  • DHCP
  • TFTP
  • HTTP (for images)
  • power management

A rack controller is attached to each “fabric”. As the name implies, a typical setup is to have a rack controller in each data centre server rack. The rack controller will cache large items for performance, such as operating system install images, but maintains no independent state other than the credentials required to talk to the region controller.