Placeholder for MAAS installation technical reference.
MAAS snaps
Snaps are containerised software packages.
The test configuration uses a small PostgreSQL database (in a separate snap), designed for use with MAAS. The full-up production configuration uses a separate PostgreSQL database for performance and scalability.
MAAS initialisation modes
MAAS supports the following modes, which dictate what services will run on the local system:
Mode | Region | Rack | Database | Description |
---|---|---|---|---|
region |
X | Region API server only | ||
rack |
X | Rack controller only | ||
region+rack |
X | X | Region API server and rack controller | |
none |
Reinitialises MAAS and stops services |
MAAS hardware requirements
The minimum requirements for the machines that run MAAS vary widely depending on local implementation and usage. Below, you will find resource estimates based on MAAS components and operating system (Ubuntu Server). We consider both a test configuration (for proof of concept) and a production environment.
Two questions you might have about hardware requirements:
- What are the requirements for a test environment?
- What are the requirements for a production environment?
Requirements for a test environment
Here is a proof-of-concept scenario, with all MAAS components installed on a single host. This scenario assumes two complete sets of images (latest two Ubuntu LTS releases) for a single architecture (amd64).
Memory (MB) | CPU (GHz) | Disk (GB) | |
---|---|---|---|
Region controller (minus PostgreSQL) | 512 | 0.5 | 5 |
PostgreSQL | 512 | 0.5 | 5 |
Rack controller | 512 | 0.5 | 5 |
Ubuntu Server (including logs) | 512 | 0.5 | 5 |
Based on this table, the approximate requirements for this scenario are 2 GB memory, 2 GHz CPU, and 20 GB of disk space.
Requirements for a production environment
Here is a production scenario designed to handle a high number of sustained client connections. This scenario implements both high availability (region and rack) and load balancing (region). MAAS reserves extra space for images (database and rack controller), while some images, such as those for Microsoft Windows, may require a lot more – so plan accordingly.
Memory (MB) | CPU (GHz) | Disk (GB) | |
---|---|---|---|
Region controller (minus PostgreSQL) | 2048 | 2.0 | 5 |
PostgreSQL | 2048 | 2.0 | 20 |
Rack controller | 2048 | 2.0 | 20 |
Ubuntu Server (including logs) | 512 | 0.5 | 5 |
So, based on the above, the approximate requirements for this scenario are:
- A region controller (including PostgreSQL) installed on one host, with 4.5 GB memory, 4.5 GHz CPU, and 45 GB of disk space.
- A duplicate region controller (including PostgreSQL) on a second host, also with 4.5 GB memory, 4.5 GHz CPU, and 45 GB of disk space.
- A rack controller installed on a third host, with 2.5 GB memory, 2.5 GHz CPU, and 40 GB of disk space.
- A duplicate rack controller on a fourth host, also with 2.5 GB memory, 2.5 GHz CPU, and 40 GB of disk space.
Also, this discussion does not take into account a possible local image mirror, which would be a large consumer of disk space.
One rack controller should only service 1000 machines or less, regardless of how you distribute them across subnets. There is no load balancing at the rack level, so you will need additional, independent rack controllers. Each controller must service its own subnet(s).
Additional init
options
The init
command can takes optional arguments. To list them, as well as read a brief description of each, you can enter:
sudo maas init --help
MAAS URL
All run modes (except none
) prompt for a MAAS URL, interpreted differently depending on the mode:
-
region
: Used to create a new region controller. -
rack
: Used to locate the region controller.
Shared secret
The ‘rack’ and ‘region+rack’ modes will additionally ask for a shared secret that will allow the new rack controller to register with the region controller.