About MAAS

What is MAAS? What MAAS offers
How MAAS works  

MAAS is an open-source tool that lets you build a data centre from bare-metal servers. You can discover, commission, deploy, and dynamically reconfigure a large network of individual units. MAAS converts your hardware investment into a cohesive, flexible, distributed data centre, with a minimum of time and effort.

What is MAAS?

MAAS expands to “Metal As A Service”. It converts bare-metal servers into cloud instances of virtual machines. There is no need to manage individual units. You can quickly provision or destroy machines, as if they were instances hosted in a public cloud like Amazon AWS, Google GCE, or Microsoft Azure.

MAAS can act as a standalone PXE/preseed service or integrate with other technologies. It works exceptionally well with Juju, the service and model management tool. MAAS manages the machines and Juju manages the services running on those machines – a perfect arrangement. KVM guests can even act as MAAS machines if they boot from the network via PXE.

What MAAS offers

MAAS can manage a large number of physical machines by merging them into a single resource pool. MAAS automatically provisions participating machines and makes them available for use. You can return unused machines to the pool at any time.

MAAS integrates all the tools you need into a smooth system-management experience. It includes:

  • web UI (optimised for mobile devices)
  • Ubuntu, CentOS, Windows, and RHEL installation support
  • open-source IP address management (IPAM)
  • full API/CLI support
  • high availability (optional)
  • IPv6 support
  • inventory of components
  • DHCP and DNS for other devices on the network
  • DHCP relay integration
  • VLAN and fabric support
  • NTP for the entire infrastructure
  • hardware testing
  • composable hardware support

These tools can be controlled from a responsive web UI or a CLI driven by a REST API. You can easily (re)configure and scale your data centre with MAAS.

MAAS works with any system configuration tools. Both the Chef and Juju teams recommend MAAS as a physical provisioning system.

Please note that Windows and RHEL images require Ubuntu Advantage to work correctly with MAAS.

Colocation of key components

MAAS relies on two key components: the region controller and the rack controller. The region controller handles operator requests; the rack controller provides high-bandwidth services to multiple racks. In essence, rack controllers manage racks, while the region controller manages the data centre. See Concepts and terms for a deeper understanding of these components.

We generally recommended installing both controllers on the same system. The default MAAS install delivers this colocated configuration automatically. This all-in-one solution also provides DHCP.

In special cases, such as high availability or load balancing, you will want to install multiple region and rack controllers. You should also review your existing network design to determine whether MAAS-managed DHCP will cause problems.

How MAAS works

When you enlist a new machine, MAAS commissions it for service and adds it to the pool. At that point, the machine is ready for use. MAAS keeps things simple, marking machines as “enlisted,” “commissioning,” “ready,” and so on.

MAAS controls machines through IPMI (or another BMC). It can also manage machines through a converged chassis controller, such as Cisco UCS. You can choose how you want to control power on your machines based on what is available. MAAS overwrites the machine’s disk space with your chosen, pre-cached OS images.

Warning: The above comment about disk space bears repeating: MAAS will overwrite the disk space of all machines it enlists. All pool machines are under the control of MAAS and should not be provisioned using other methods.

MAAS users allocate (“acquire”) machines for use when needed. The web UI also allows you to acquire machines manually, such as when you are reserving specific hardware for certain users. You can remotely access and customise the installed operating system via SSH.

When acquiring machines from the API/CLI, you can specify requirements (“constraints”). Common constraints are memory, CPU cores, connected networks, and assigned physical zone.

An acquired MAAS machine is more flexible than a virtual instance in a cloud. You have complete control, including hardware drivers and root access. If you want to upgrade the BIOS, for example, you can allocate a machine to yourself and complete the upgrade. Once you have completed the upgrade, you can send the machine back to the pool.

Note that Juju is designed to work with MAAS. MAAS becomes a backend Juju resource pool with all functionality fully available. For instance, if Juju removes a machine, then MAAS will release that machine to the pool. With Juju, MAAS can become an integral part of your data centre strategy and operations.