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 20 days ago.