As with block devices (see Block devices), MAAS and the MAAS API offer a great deal of control over the creation, formatting, mounting and deletion of partitions.
List Partitions
To view all the partitions on a block device, use the ‘partitions read’ API call:
maas admin partitions read <node-id> 10
Success.
Machine-readable output follows:
[
{
"bootable": false,
"id": 9,
"resource_uri":
"/MAAS/api/2.0/nodes/4y3h8a/blockdevices/10/partition/9",
"path": "/dev/disk/by-dname/vda-part1",
"uuid": "aae082cd-8be0-4a64-ab49-e998abd6ea43",
"used_for": "LVM volume for vgroot",
"size": 5360320512,
"type": "partition",
"filesystem": {
"uuid": "a56ebfa6-8ef4-48b5-b6bc-9f9d27065d24",
"mount_options": null,
"label": null,
"fstype": "lvm-pv",
"mount_point": null
}
}
]
To view the metadata for a specific partition on a block device, rather than all partitions, use the singular ‘partition’ API call with an endpoint:
maas admin partition read <node-id> 10 9
Create Partition
To create a new partition on a block device, use the ‘create’ API call:
maas admin partitions create <node-id> 10 size=5360320512
In addition to bytes, as shown above, the ‘size’ of a partition can also be defined with a ‘G’ for gigabytes or ‘M’ for megabytes. The output from the previous command will look like this:
Success.
Machine-readable output follows:
{
"bootable": false,
"path": "/dev/disk/by-dname/vda-part1",
"filesystem": null,
"used_for": "Unused",
"type": "partition",
"id": 10,
"size": 5360320512,
"resource_uri": "/MAAS/api/2.0/nodes/4y3h8a/blockdevices/10/partition/10",
"uuid": "3d32adbf-9943-4785-ab38-963758338c6c"
}
Delete Partition
Partitions can be deleted from a block device with the ‘delete’ API call. Make sure you double check the partition details as the partition is deleted immediately, with no further confirmation:
maas admin partition delete <node-id> 10 9
Successful output from the ‘delete’ command will look like this:
Success.
Machine-readable output follows:
Format Partition
Partitions can be formatted in a similar way to block devices:
maas admin partition format <node-id> 10 9 fstype=ext4
The output from the ‘format’ command will be similar to the following:
Success.
Machine-readable output follows:
{
"id": 9,
"used_for": "Unmounted ext4 formatted filesystem",
"resource_uri": "/MAAS/api/2.0/nodes/4y3h8a/blockdevices/10/partition/9",
"path": "/dev/disk/by-dname/vda-part1",
"uuid": "aae082cd-8be0-4a64-ab49-e998abd6ea43",
"size": 5360320512,
"bootable": false,
"type": "partition",
"filesystem": {
"uuid": "ea593366-be43-4ea3-b2d5-0adf82085a62",
"mount_point": null,
"mount_options": null,
"fstype": "ext4",
"label": ""
}
}
You cannot format partitions that are used to make another virtual block device.
Unformat Partition
You can also remove the filesystem from a partition with the ‘unformat’ API call:
maas admin partition unformat <node-id> 10 10 fstype=ext4
Success.
Machine-readable output follows:
{
"bootable": false,
"path": "/dev/disk/by-dname/vda-part1",
"filesystem": null,
"used_for": "Unused",
"type": "partition",
"id": 10,
"size": 5360320512,
"resource_uri": "/MAAS/api/2.0/nodes/4y3h8a/blockdevices/10/partition/10",
"uuid": "3d32adbf-9943-4785-ab38-963758338c6c"
}
Mount Partition
A formatted partition can be mounted at a given mount point with the ‘mount’ command.
maas admin partition mount <node-id> 10 10 mount_point=/srv
The mount point and the filesystem is visible in the output from the command:
Success.
Machine-readable output follows:
{
"bootable": false,
"id": 10,
"resource_uri": "/MAAS/api/2.0/nodes/4y3h8a/blockdevices/10/partition/10",
"path": "/dev/disk/by-dname/vda-part1",
"uuid": "3d32adbf-9943-4785-ab38-963758338c6c",
"used_for": "ext4 formatted filesystem mounted at /srv",
"size": 5360320512,
"type": "partition",
"filesystem": {
"uuid": "1949a5fb-f7bd-4ada-8ba5-d06d3f5857a8",
"mount_options": "",
"label": "",
"fstype": "ext4",
"mount_point": "/srv"
}
}
Unmount Partition
A previous mounted partition can be unmounted with the ‘unmount’ command:
maas admin partition unmount 4y3h8a 10 10
After successfully running this command, the mount point will show as ‘null’ in the output:
Success.
Machine-readable output follows:
{
"bootable": false,
"id": 10,
"resource_uri": "/MAAS/api/2.0/nodes/4y3h8a/blockdevices/10/partition/10",
"path": "/dev/disk/by-dname/vda-part1",
"uuid": "3d32adbf-9943-4785-ab38-963758338c6c",
"used_for": "Unmounted ext4 formatted filesystem",
"size": 5360320512,
"type": "partition",
"filesystem": {
"uuid": "1949a5fb-f7bd-4ada-8ba5-d06d3f5857a8",
"mount_options": null,
"label": "",
"fstype": "ext4",
"mount_point": null
}
"type": "partition",
"id": 3,
"size": 2000003072
}
Restrictions
There are only a couple of restrictions that exists in the storage configuration. These restrictions are only in place because they are known to not allow a successful deployment.
- An EFI partition is required to be on the boot disk for UEFI.
- You cannot place partitions on logical volumes.
- You cannot use a logical volume as a Bcache backing device.