Canonical is happy to announce that MAAS 2.9 is now available. We’ll get to the details of installing it in just a moment, but first, let’s walk through a brief overview of the new features and fixes. Later on in this post, we’ll cover some of these features in much more detail.

New features & fixes in MAAS 2.9

MAAS 2.9 offers 22 new or greatly improved major features:

  1. Focal Fossa (20.04) as default commissioning/deployment release: Ubuntu 20.04 LTS is now the default image for commissioning and deployment. Also, machines deployed with Focal may now be registered as KVM hosts.
  2. Support for OpenVswitch bridge type: You can now create an OpenVswitch bridge type when creating a bridge.
  3. Support for NUMA, SR-IOV, and hugepages: MAAS 2.9 adds extensive optimisation tools for using NUMA with virtual machines.
  4. Improved performance for large MAAS installations: MAAS 2.9 includes changes to the machine batch size that the UI loads, which improves performance for MAAS installs with very many nodes.
  5. New release notifications: MAAS now includes new release notifications for users and administrators; these can be configured by an administrator.
  6. IPMI configuration screens: MAAS now includes UI panels corresponding to the IPMI power driver upgrades also included in this release.
  7. Descriptions when marking machines broken: When marking a machine broken, a description can now included.
  8. Inclusion of Curtin 20.2: A number of MAAS issues have actually been issues with an older version of Curtin. MAAS now includes Curtin 20.2, which fixes many of these issues, including MAAS is changing my boot order!.
  9. Disabled HTTP boot: MAAS 2.9 disables HTTP boot, due to numerous known issues with this boot method.
  10. BMC/IPMI default parameter additions: Four new parameters have been added to 30-maas-01-bmc-config for IPMI BMC configuration. These parameters will pull from the global defaults, eliminating the need to set the corresponding parameter in each instance.
  11. New global IPMI configuration options: Two new global IPMI configuration options have been added.
  12. Addition of IPMI config options to UI: You may now set the global config options maas_auto_ipmi_user, maas_auto_ipmi_k_g_bmc_key, and maas_auto_ipmi_user_privilege_level on the “Settings” page in the UI under “Commissioning.”
  13. New MAAS CLI power command: Available in MAAS 2.9 is the new maas.power CLI command, which interfaces directly with the supported MAAS power drivers.
  14. IPMI BMC detection improvements: This release adds two improvements to IPMI BMC detection capability.
  15. Significant commissioning speed improvements: Four improvements have been made to allow MAAS to commission machines in 60 seconds or less.
  16. Significant BMC improvements: Three substantial improvements to BMC usage have been released.
  17. IPMI power driver upgrades: Three new configuration options have been added to the IPMI power driver.
  18. Enlistment script improvements: Script flow and capabilities have been improved in three significant ways.
  19. Commissioning script improvements: Seven major improvements were made to commissioning script flow and capabilities.
  20. Commissioning script reordering: Commissioning scripts have been reordered and some are now set to run in parallel. You can now easily set a script to run before the builtin MAAS commissioning scripts. There are nine significant changes.
  21. Reader Adaptive Documentation: This release features Reader Adaptive Documentation, which allows you to adapt individual pages to your install method (Snap vs. Deb), version (2.7/2.8/2.9), and preferred interface (CLI/UI).
  22. Offline documentation: This release includes offline documentation for those users whose MAAS installations reside behind firewalls, unable to access the online documentation.

Installing 2.9/Upgrading 2.8

Details on installation of 2.9, as well as instructions for upgrading from 2.8, may be found on the appropriate installation page. Note that, since we’re now using Reader Adaptive Documentation, you will need to choose the desired installation format (snap/packages) from the tabular menu at the top of the page.

In-depth look at selected features

Let’s take a more detailed look at some of the newer features.

Support for NUMA, SR-IOV, and hugepages

Commissioning script improvementsMAAS 2.9 adds extensive optimisation tools for using NUMA with virtual machines. You can now see how many VMs are allocated to each NUMA node, along with the allocations of cores, storage, and memory. You can quickly spot a VM running in multiple NUMA nodes, and optimise accordingly, with instant updates on pinning and allocations. You can also tell which VMs are currently running. Using the CLI, you can also pin nodes to specific cores, and configure hugepages for use by VMs.

Specifically, there are five new features available to support NUMA, SR-IOV, and hugepages:

  1. You can examine resources on a per-NUMA-node basis.
  2. You can pin nodes to specific cores (CLI only).
  3. You can see resources for VM hosts supporting NUMA nodes.
  4. You can see the alignment between VM host interfaces and NUMA nodes.
  5. You can configure and use hugepages (configurable in CLI only).

This functionality comes with an enhanced panel in the “KVM” details section:

The NUMA panel from the KVM details section of the MAAS web UI

See the VM hosting page for more details, and be sure to use the menu at the top of that page to select your desired build method and interface, so that you’ll see the most relevant instructions.

Improved performance for large installs

MAAS 2.9 includes changes to the machine batch size that the UI loads. Previously the UI loaded machines in batches of 25; it now pulls in 25 for the first call, then 100 at a time in subsequent batches. You can see the results of the investigation in this video podcast.

New release notifications

MAAS now includes new release notifications for users and administrators. These appear when a new release is available:

A typical MAAS new release notification

Both regular and administrative users can snooze these notifications for two weeks at a time. Administrative users can opt out of new release notifications completely, preventing notifications for any user of that MAAS.

IPMI configuration screens

MAAS now includes UI panels corresponding to the IPMI power driver upgrades mentioned earlier:

New panel for configuring special IPMI settings

This screen can be reached from Settings | Configuration | Commissioning.

Descriptions available when marking machines as “broken”

When marking a machine broken, a description can now included:

This description appears in that machine’s row on the machine list.

HTTP boot disabled

Commissioning script improvements

New BMC/IPMI default parameters

Four new parameters have been added to 30-maas-01-bmc-config for IPMI BMC configuration. These parameters will pull from the global defaults, eliminating the need to set the corresponding parameter in each instance:

  1. maas_auto_ipmi_user – The username for the MAAS created IPMI user. Default comes from the global configuration setting.
  2. maas_auto_ipmi_user_password – The password for the MAAS created IPMI user, by default a random password is generated.
  3. maas_auto_ipmi_k_g_bmc_key – The IPMI K_g preshared encryption key to be set when adding the MAAS IPMI user. Note not all IPMI BMCs support setting the k_g key, if MAAS is unable to set the key commissioning will fail. Default comes from the global configuration setting. If an IPMI K_g key is set but the key is rejected by the BMC MAAS will automatically retry without the K_g key. This works around an edge case where some BMCs will allow you to set an K_g key but don’t allow it to be used.
  4. maas_auto_ipmi_user_privilege_level – The IPMI user privilege level to use when adding the MAAS IPMI user. Possible options are USER, OPERATOR, or ADMIN. Default comes from the global configuration setting.

Note that MAAS will not capture the BMC MAC address when detecting IPMI BMCs.

New global IPMI configuration options

Two new global IPMI configuration options have been added:

  1. maas_auto_ipmi_k_g_bmc_key – sets a global default IPMI BMC key.
  2. maas_auto_ipmi_user_privilege_level – sets a global default IPMI BMC user privilege level.

New maas.power CLI command

Available in MAAS 2.9 is the new maas.power CLI command. This command interfaces directly with the supported MAAS power drivers. This command can be used to control the power on a machine before it has been added to MAAS, for all maas supported power drivers. You can get power status, turn machines on or off, and cycle power. The maas.power –help shows usage details, including syntax for naming each power type (consistent with other MAAS CLI commands).

IPMI BMC detection improvements

This release adds two improvements to IPMI BMC detection capability:

  1. The IPMI cipher suite ID will now be automatically detected. MAAS tries to find the most secure cipher suite available. Preference order is 17, 3, 8, 12. If detection fails MAAS will fall back to using freeipmi-tool default, 3, which is what previous versions of MAAS use.
  2. The IPMI K_g BMC key will now be automatically detected if previously set.

Improvements in commissioning speed

Four improvements have been made to speed up the commissioning process, mostly by running scripts in parallel (see above):

  1. Commissioning should now take 60s.
  2. Logging has been added to 20-maas-01-install-lldpd (commissioning log output).
  3. Logging has been added to 20-maas-02-dhcp-unconfigured-ifaces (commissioning log output).
  4. `user_data` can now be input directly into the UI.

BMC improvements

Three substantial improvements to BMC usage have been released:

  1. IPMI, HP Moonshot, and Facebook Wedge BMC detection and configuration scripts have been migrated to the commissioning script 30-maas-01-bmc-config.
  2. BMC detection and configuration are now logged to commissioning results.
  3. If BMC configuration is skipped, a ScriptResult will log this result, and indicate which user chose to skip the configuration step.

IPMI power driver upgrades

Three new configuration options have been added to the IPMI power driver:

  1. K_g – The BMC Key of the IPMI device. Used to encrypt all traffic to and from the device during communication.
  2. Cipher Suite ID – The cipher suite to use when communicating with the IPMI BMC. Only 3, 8, 12, and 17 are available as only those enable ciphers for authentication, integrity, and confidentiality. Defaults to 3, freeipmi-tools default. See this link for more information.
  3. Privilege Level – The IPMI privilege level to use when communicating with the BMC. Defaults to OPERATOR.

See the 2.9 UI or 2.9 CLI power management pages for details.

Improvements in enlistment scripting

Script flow and capabilities have been improved in three ways:

  1. maas-run-remote-scripts can now enlist machines.
  2. Enlistment user_data scripts have been removed.
  3. The metadata endpoints http://:5240// and http://:5240//meta-data/ are now available anonymously for use during enlistment.

Major commissioning script improvements

Seven major improvements were made to commissioning script flow and capabilities:

  1. Commissioning scripts can now send BMC configuration data.
  2. Commissioning scripts can now be used to configure BMC data.
  3. The environment variable BMC_CONFIG_PATH is passed to serially run commissioning scripts.
  4. These scripts may write BMC power credentials to BMC_CONFIG_PATH in a YAML format where each key is the power parameter.
  5. If the commissioning script returns 0, it will be sent to MAAS.
  6. The first script to write BMC_CONFIG_PATH is the only script that may configure the BMC, allowing you to override MAAS’s builtin BMC detection.
  7. All builtin commissioning scripts have been migrated into the database.

Commissioning script reordering

Commissioning scripts have been reordered and some are now set to run in parallel. You can now easily set a script to run before the builtin MAAS commissioning scripts. There are nine signficant changes:

  1. 00-maas-03-install-lldpd -> 20-maas-01-install-lldpd
  2. 00-maas-05-dhcp-unconfigured-ifaces -> 20-maas-02-dhcp-unconfigured-ifaces
  3. 99-maas-05-kernel-cmdline -> maas -kernel-cmdline
  4. 00-maas-00-support-info -> maas-support-info (now runs in parallel)
  5. 00-maas-01-lshw -> maas-lshw (now runs in parallel)
  6. 00-maas-04-list-modaliases -> maas-list-modaliases (now runs in parallel)
  7. 00-maas-06-get-fruid-api-data -> maas-get-fruid-api-data (now runs in parallel)
  8. 00-maas-08-serial-ports -> maas-serial-ports (now runs in parallel)
  9. 99-maas-01-capture-lldp -> maas-capture-lldp (now runs in parallel)

See the commissioning logs page for more details on these changes.

Additional information

See the release notes for additional information on the MAAS 2.9 release.