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

How to configure storage layouts

MAAS lets you choose different storage layouts when deploying machines. These layouts affect performance, flexibility, and compatibility (e.g. UEFI vs. non-UEFI). Picking the right one ensures deployments succeed and fit your workload.

Cheat sheet

Layout Best for Key notes
Flat Simple setups, small servers One root partition, minimal options
LVM Flexibility & growth Resize or add volumes later
Bcache Performance boost Needs SSD for caching, defaults to writethrough
VMFS6 VMware ESXi hosts Creates OS + VMFS datastore automatically
Blank Custom/manual setups Wipes disks, must configure storage manually

You can configure layouts when:

  • Commissioning a new machine.
  • Editing a machine’s storage before deployment.

In the UI: choose Machines > [machine] > Storage.

In the CLI: use maas $PROFILE machine set-storage-layout.

Flat layout

What it is:
A simple setup where the entire disk is one root filesystem. Good for small or simple systems.

| Name | Size | Type | Filesystem | Mount point |
| sda | - | disk | - | - |
| sda1 | 512 MB | part | FAT32 | /boot/efi |
| sda2 | rest of sda| part | ext4 | / |

How to configure:

  • UI: Choose Flat in the storage layout dropdown.
  • CLI:
    maas $PROFILE machine set-storage-layout $SYSTEM_ID layout=flat
    

Options:

  • boot_size: Size of /boot. Default is 0 (combined with /).
  • root_device: Device to hold the root partition (default: boot disk).
  • root_size: Size of root partition (default: 100%).

LVM layout

What it is:
Logical Volume Manager (LVM) adds flexibility, allowing resizing or adding volumes later.

| Name | Size | Type | Filesystem | Mount point |
| sda | - | disk | - | - |
| sda1 | 512 MB | part | FAT32 | /boot/efi |
| sda2 | rest of sda | part | lvm-pv(vgroot) | - |
| lvroot| rest of sda | lvm | ext4 | / |

How to configure:

  • UI: Select LVM in storage layout.
  • CLI:
    maas $PROFILE machine set-storage-layout $SYSTEM_ID layout=lvm
    

Options:

  • vg_name: Name of the volume group (default: vgroot).
  • lv_name: Name of logical volume (default: lvroot).
  • lv_size: Size of LV (default: 100%).

Bcache layout

What it is:
Uses an SSD as a cache for a slower backing disk to improve performance.

| Name | Size | Type | Filesystem | Mount point |
| sda | - | disk | - | - |
| sda1 | 512 MB | part | FAT32 | /boot/efi |
| sda2 | rest of sda | part | bc-backing | - |
| sdb(ssd)| - | disk | - | - |
| sdb1 | 100% of sdb | part | bc-cache | - |
| bcache0| per sda2 | disk | ext4 | / |

How to configure:

  • UI: Select Bcache in storage layout.
  • CLI:
    maas $PROFILE machine set-storage-layout $SYSTEM_ID layout=bcache
    

Options:

  • cache_device: SSD to use as cache (default: smallest SSD).
  • cache_mode: Cache mode (writethrough by default).
  • cache_size: Partition size for cache.
  • cache_no_part: Whether to skip partition creation on cache device.

If no SSD is present, bcache layout will fail.

VMFS6 layout

What it is:
Required for VMware ESXi deployments. Sets up both the OS and VMFS datastore.

| Name | Size | Type | Use |
| sda | - | disk | - |
| sda1 | 3 MB | part | EFI |
| sda2 | 4 GB | part | Basic Data |
| sda3 | Remaining | part | VMFS Datastore 1 |

How to configure:

  • UI: Select VMFS6 when editing storage.
  • CLI:
    maas $PROFILE machine set-storage-layout $SYSTEM_ID layout=vmfs6
    

Options:

  • root_size: Size of datastore (default: remainder of disk).

Blank layout

What it is:
Wipes the disk and leaves storage unconfigured. Use this if you want to manually define partitions, filesystems, or RAIDs before deployment.

How to configure:

  • UI: Select Blank in storage layout.
  • CLI:
    maas $PROFILE machine set-storage-layout $SYSTEM_ID layout=blank
    

A machine with Blank layout cannot deploy until storage is manually configured.

Safety nets

  • Always confirm layout with maas $PROFILE machine read $SYSTEM_ID | jq .storage.
  • In UI, check the Storage tab before hitting Deploy.
  • Test deployment of a machine before applying custom layouts widely.

Next steps

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