Skip to main content

Your submission was sent successfully! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates from Canonical and upcoming events where you can meet our team.Close

Thank you for contacting us. A member of our team will be in touch shortly. Close

An error occurred while submitting your form. Please try again or file a bug report. Close

Installation requirements

Confirm that your system has adequate resources for your use-case, prior to installation. Proof-of-concept and production setups are available.

LXD

LXD versions older than 5.21 will not work correctly with MAAS.

PostgreSQL

From version 3.5, MAAS requires PostgreSQL 14 and a different PostgreSQL default user.

Warning: PostgreSQL defaults may not support HA deployments. Consider using 20-50 extra connections per additional region controller. Check settings using psql or by inspecting the configuration file.

Getting information using psql

You can count PostgreSQL connections with this SQL query:

SELECT 
  max_conn, 
  used
FROM 
  (SELECT count(*) used FROM pg_stat_activity) t1,
  (SELECT setting::int res_for_super FROM pg_settings WHERE name=$$superuser_reserved_connections$$) t2,
  (SELECT setting::int max_conn FROM pg_settings WHERE name=$$max_connections$$) t3;

max_conn is the number of available connections; used is the number of active connections.

Getting information via configuration file

grep 'max_connections' /var/lib/pgsql/{version_number}/data/postgresql.conf

Increasing maximum connections

If max_connections is 100, you need to increase that number. Refer to these best practices for details.

Symptoms of an issue

Too few database connections tend do produce errors:

> FATAL: sorry, too many clients already
> FATAL:  remaining connection slots are reserved for non-replication superuser connections
> pq: remaining connection slots are reserved for non-replication superuser connections

MAAS, NTP, and chrony

Conflicts can arise between Ubuntu’s default systemd-timesyncd and MAAS chrony. Consult the MAAS installation guide for solutions.

Test environment

Requirements for a single-host test setup include the latest two Ubuntu LTS releases and the following component settings:

Component Memory (MB) CPU (GHz) Disk (GB)
Region controller 512 0.5 5
PostgreSQL 512 0.5 5
Rack controller 512 0.5 5
Ubuntu Server 512 0.5 5

Total: 2 GB RAM, 2 GHz CPU, 20 GB disk.

Production environment

For large-scale, continuous client handling, plan as follows:

Component Memory (MB) CPU (GHz) Disk (GB)
Region controller 2048 2.0 5
PostgreSQL 2048 2.0 20
Rack controller 2048 2.0 20
Ubuntu Server 512 0.5 5

Plan for 4.5 GB RAM, 4.5 GHz CPU, and 45 GB disk per host for region controllers, and slightly less for rack controllers.

Additional notes:

  • These specs are MAAS-specific and don’t cover extra nodes.
  • IPMI-based BMC controllers are recommended for power management.

Factors affecting these numbers:

  • Client activity
  • Service distribution
  • Use of high availability/load balancing.
  • Number and type of stored images
  • A local image mirror will increase disk requirements.
  • Rack controllers have a 1000-machine cap per subnet

Last updated 3 months ago. Help improve this document in the forum.