This article explains:
This article also provides a storage layouts reference.
Most of the day-to-day work of managing machines is covered here. Utilising machines to do work – for example, commissioning, testing, and deploying them – is discussed in How to deploy machines.
How to create, delete, and configure machines
This section shows you:
To create a new machine at the command line, enter the following information:
stormrider@wintermute:~$ maas admin machines create \
> architecture=$ARCH \
> max_addresses=$MAC_ADDRESS \
> power_type=$POWER_TYPE \
> power_parameters_power_id=$POWER_ID \
> power_parameters_power_address=$POWER_ADDRESS \
> power_parameters_power_pass=$POWER_PASSWORD
When you enter the command (substituting the $...
parameters for your own particulars), the screen will pause for a moment, and then return a stream of JSON relating to the added machine.
Here’s an example with a local laptop MAAS install, using KVMs as virtual machines:
stormrider@wintermute:~$ maas admin machines create \
> architecture=amd64 \
> max_addresses=52:54:00:6f:b4:af \
> power_type=virsh \
> power_parameters_power_id=50f6cca2-5d89-43b9-941c-90c9fcd7c156 \
> power_parameters_power_address=qemu+ssh://stormrider@192.168.123.1/system \
> power_parameters_power_pass=xxxxxxx
The variable fields in the machines create
command (the $...
items) are as follows, in this example:
> architecture=$ARCH \
> mac_addresses=$MAC_ADDRESS \
> power_type=$POWER_TYPE \
> power_parameters_power_id=$POWER_ID \
> power_parameters_power_address=$POWER_ADDRESS \
> power_parameters_power_pass=$POWER_PASSWORD
$ARCH
: This field refers to the architecture of the machine being added, amd64
in the local laptop example.
$MAC_ADDRESS
: This is the MAC address of the boot-enabled NIC for the machine being added. Note that the MAC address entered here must use a colon (“:”) separator, although some MAC addresses are written with dash (“-“) separators.
$POWER_TYPE
: You must select the power type supported by the machine you are adding, and fill in additional required fields that appear. See Power management reference for details on the available power types and the relevant parameters for each type. In this example, we’ve used a “virsh” power type (a libvirt KVM), but your choice will depend on your hardware.
$POWER_ID
: This is generally the UUID of the machine being added.
$POWER_ADDRESS/$POWER_PASSWORD
: In the case of a KVM, these are the only parameters that need to be entered. See Power types↗
in the API reference for details on the available power types and the relevant parameters for each type.
How to manage attached USB and PCI devices
To delete PCI/USB devices from the machine in any machine state, via the CLI only, using the following command:
maas $PROFILE node-device delete $SYSTEM_ID $DEVICE_ID
where:
If the device is still present in the system, it will be recognised again (and thus “recreated”) when the machine is commissioned again.
Assume you have two machines available, like this:
Select the machine to which you want to clone configuration, and select “Clone from…”
Under “1. Select the source machine” – choose a machine from the attached list:
Under “2. Select what to clone”, choose “Network”, “Storage”, or both (here, we’ve chosen “Storage”):
Click “Clone to machine”. MAAS will report the status of the attempt.
How to examine machines and machine details
This section describes the various ways you can evaluate the health and status of your MAAS machines, using the machine list. It will show you:
To view the machine list, select “Machines” on the top menu of the MAAS web UI:
To quickly view more details, roll the cursor over status icons:
To open a detailed view of a machine’s status and configuration, click a machine’s FQDN or MAC address:
How to find network info for a machine
To find network info for a specific machine, open that machine’s “Network” tab in the machine summary:
Options on this tab are described in the introduction to Networking article in this documentation set.
How to find machine storage info
To view/edit machine storage info, click on the “Storage” tab in the machine summary:
See the section about storage for more information.
How to find commissioning logs
The “Commissioning” tab brings up a summary log of commissioning events:
Click on the dropdown at the end of the row you’re interested in, and click on “View details”:
This will bring up a detailed log view for that row:
These logs present an extremely detailed, timestamped record of completion and status items from the commissioning process. See the article on logging for more details on how to read and interpret these logs.
How to find machine hardware & test logs
This tab presents a summary of tests run against this particular machine. You can view the summary report, or choose the “View details” dropdown to get details on any particular tests:
The format of these screens is very similar to the Configuration logs shown above.
How to find raw log output for a machine
By choosing “Installation output” on the “Logs” tab, you can see the “raw” log output:
Help interpreting these logs can be found under the logging section of this documentation.
How to find a machine’s event logs
To view the Event log for a machine, choose the “Event” tab under “Logs.” This displays a list of timestamped status updates for events and actions performed on the machine:
There is a dropdown on the upper right which allows you to choose how many events per page you wish to view. Detailed discussion of this event log can be found under the logging section of this documentation.
How to find machine configuration info
The final tab from the Machine menu allows you to update machine and power configuration options:
There are two sections to this tab. The “Machine configuration” section, shown above, offers some general parameters, mostly related to how this machine is grouped and categorised. More information on these options are found in the relevant sections of the documentation (e.g., tags, resource pools, and so forth).
The “Power configuration” supplies the parameters necessary for MAAS to access the machine to PXE-boot it:
More information on Power configuration will be found in the Power management section of this documentation.
This section will explain:
Here’s an example that demonstrates how to create a new resource pool named myresource
.
maas $PROFILE resource-pools create name=myresource description="A new resource pool."
NOTE:
The description
field is optional.
How to list available resource pools
maas $PROFILE resource-pools read
How to list a single resource pool
maas $PROFILE resource-pool read $RESOURCE_POOL_ID
maas $PROFILE resource-pool update $RESOURCE_POOL_ID name=newname description="A new description."
NOTE:
The name
and description
fields are optional.
maas $PROFILE resource-pool delete $RESOURCE_POOL_ID
How to add a machine to a resource pool
maas $PROFILE machine update $SYSTEM_ID pool=$POOL_NAME
This section will show you:
This subsection will show you how to:
To identify your available machines, use a command like this one:
maas $PROFILE machines read \
| jq -r '(["hostname","system_id"]
|(.,map(length*"-"))),(.[]|[.hostname,.system_id])
|@tsv' | column -t
For example:
maas admin machines read \
| jq -r '(["hostname","system_id"]
|(.,map(length*"-"))),(.[]|[.hostname,.system_id])
|@tsv' | column -t
Typical output might look something like this:
hostname system_id
-------- ---------
divine-stork 8b3ypp
casual-prawn 4end6r
driven-teal tgaat6
immune-beetle 43xand
good-osprey napfxk
smart-hen c4rwq7
boss-satyr xn8taa
golden-martin 8fxery
crack-guinea qk4b3g
finer-leech cy3dtr
free-mouse gxtbq4
humble-bunny srqnnb
wanted-muskox ekw7fh
one-boa by477d
great-urchin srnx4g
ace-frog g6arwg
alive-marlin gbwnfb
picked-parrot am77wn
tough-kit ke3wc7
legal-whale 8nq3mt
game-sponge 76pdc6
fun-ghoul qxfm7k
aware-earwig 8m8hs7
chief-crane 7fapx7
select-tapir 4ascbr
on-slug snfs8d
polite-llama dbqd4m
frank-coyote wcmk48
usable-condor ed8hmy
still-imp h6ra6d
How to set a static annotation for a machine
If you want to set the static annotation for a given machine, you can do so with a command that looks like this:
maas $PROFILE machine update $SYSTEM_ID description="$STATIC_ANNOTATION"
For example:
maas admin machine update ke3wc7 description="kilo-echo-3-whisky-charlie-7"
You can check your work by viewing the static annotations for one machine.
How to change or clear a static annotation for a machine
If you want to set the static annotation for a given machine, use the same command you’d use to set a static annotation:
maas $PROFILE machine update $SYSTEM_ID description="$STATIC_ANNOTATION"
The existing annotation will be overwritten by the new one you enter. For example:
maas admin machine update ke3wc7 description=""
You can check your work by viewing the static annotations for one machine.
How to list static annotations for all machines
To list static annotations for all machines, enter a command similar to this one:
maas $PROFILE machines read \
| jq -r '(["hostname","system_id","description"]
|(.,map(length*"-"))),(.[]|[.hostname,.system_id,.description])
|@tsv' | column -t
For example:
maas admin machines read \
| jq -r '(["hostname","system_id","description"]
|(.,map(length*"-"))),(.[]|[.hostname,.system_id,.description])
|@tsv' | column -t
Output might look something like this:
hostname system_id description
-------- --------- -----------
driven-teal tgaat6 tango-golf
humble-bunny srqnnb sierra-romeo
tough-kit ke3wc7 kilo-echo
How to view a static annotation for one machine
To view a static annotation for one machine, try a command like this:
maas $PROFILE machine read $SYSTEM_ID \
| jq -r '(["hostname","system_id","description"]
|(.,map(length*"-"))),([.hostname,.system_id,.description])
|@tsv' | column -t
For example:
maas admin machine read tgaat6 \
| jq -r '(["hostname","system_id","description"]
|(.,map(length*"-"))),([.hostname,.system_id,.description])
|@tsv' | column -t
A command like this might produce output as follows:
hostname system_id description
-------- --------- -----------
driven-teal tgaat6 tango-golf
How to use dynamic (workload) annotations
This section will show you how to:
How to identify machines that can receive dynamic annotations
You can only set dynamic annotations for machines that are in the “Allocated” or “Deployed” state. To identify which of your machines are in these states, you can execute the following command:
maas $PROFILE machines read \
| jq -r '(["hostname","system_id","status"]
|(.,map(length*"-"))),(.[]|[.hostname,.system_id,.status_name])
|@tsv' | column -t
For example:
maas admin machines read \
| jq -r '(["hostname","system_id","status"]
|(.,map(length*"-"))),(.[]|[.hostname,.system_id,.status_name])
|@tsv' | column -t
Output should look something like this:
hostname system_id status
-------- --------- ------
divine-stork 8b3ypp Deployed
casual-prawn 4end6r Ready
driven-teal tgaat6 Allocated
immune-beetle 43xand Allocated
good-osprey napfxk Allocated
smart-hen c4rwq7 Allocated
boss-satyr xn8taa Ready
golden-martin 8fxery Allocated
crack-guinea qk4b3g Allocated
finer-leech cy3dtr Deployed
free-mouse gxtbq4 Allocated
humble-bunny srqnnb Allocated
wanted-muskox ekw7fh Deployed
one-boa by477d Allocated
great-urchin srnx4g Allocated
ace-frog g6arwg Ready
alive-marlin gbwnfb Deployed
picked-parrot am77wn Allocated
tough-kit ke3wc7 Deployed
legal-whale 8nq3mt Allocated
game-sponge 76pdc6 Allocated
fun-ghoul qxfm7k Allocated
aware-earwig 8m8hs7 Deployed
chief-crane 7fapx7 Ready
select-tapir 4ascbr Allocated
on-slug snfs8d Allocated
polite-llama dbqd4m Allocated
frank-coyote wcmk48 Allocated
usable-condor ed8hmy Deployed
still-imp h6ra6d Allocated
How to set dynamic annotations for a machine
Dynamic annotations, otherwise known as “workload annotations” or “owner data,” can be used to keep track of the runtime status of machines that are allocated or deployed. These annotations are set using key=value
pairs. You can set any key=value
pair that you wish for any machine, although it’s probably more useful if you standardise your key names.
To set a dynamic annotation for a machine, you can enter a command like this:
maas $PROFILE machine set-owner-data $SYSTEM_ID $KEY=$VALUE
For example:
maas admin machine set-owner-data tgaat6 owner=gsmith@how-to-make-machines-available.htmlo.com
This command will return a JSON string representative of the machine’s new configuration, including the dynamic annotations you’ve added. You can check your work by listing the dynamic annotations for the one machine you just edited, or by listing dynamic annotations for all machines.
How to clear and change dynamic annotations for a machine
You can change dynamic annotations for a machine simply by executing a new set-owner-data
command:
maas $PROFILE machine set-owner-data $SYSTEM_ID $KEY=$NEW_VALUE
You can clear a dynamic annotation by entering the empty string (""
) as the $VALUE:
maas $PROFILE machine set-owner-data $SYSTEM_ID $KEY=""
These commands will return a JSON string representative of the machine’s new configuration, including the dynamic annotations you’ve changed or cleared. You can check your work by listing the dynamic annotations for the one machine you just edited, or by listing dynamic annotations for all machines.
How to list dynamic annotations for all machines
You can list the current dynamic annotations for all machines with a command like this:
maas $PROFILE machines read \
| jq -r '(["hostname","system_id","owner_data"]
|(.,map(length*"-"))),(.[]|[.hostname,.system_id,.owner_data[]])
|@tsv' | column -t
For example:
maas admin machines read \
| jq -r '(["hostname","system_id","owner_data"]
|(.,map(length*"-"))),(.[]|[.hostname,.system_id,.owner_data[]])
|@tsv' | column -t
This command output might look something like this:
hostname system_id owner_data
-------- --------- ----------
divine-stork 8b3ypp
casual-prawn 4end6r
driven-teal tgaat6 farquar foobar
immune-beetle 43xand
good-osprey napfxk
smart-hen c4rwq7
How to list dynamic allocations for one machine
You can list the dynamic annotations for one machine by entering a command of the form:
maas $PROFILE machine read $SYSTEM_ID \
| jq -r '(["hostname","system_id","owner_data"]
|(.,map(length*"-"))),(.[]|[.hostname,.system_id,.owner_data[]])
|@tsv' | column -t
For example:
maas admin machine read tgaat6 \
| jq -r '(["hostname","system_id","owner_data"]
|(.,map(length*"-"))),(.[]|[.hostname,.system_id,.owner_data[]])
|@tsv' | column -t
This will produce output similar to the following:
hostname system_id owner_data
-------- --------- ----------
driven-teal tgaat6 farquar foobar
This section will explain:
How to set global storage layouts
Layouts can be set globally and on a per-machine basis.
All machines will have a default layout applied when commissioned. To set the default storage layout for all machines:
maas $PROFILE maas set-config name=default_storage_layout value=$LAYOUT_TYPE
For example, to set the default layout to Flat:
maas $PROFILE maas set-config name=default_storage_layout value=flat
Important: The new default will only apply to newly-commissioned machines.
NOTE: The new default will only apply to newly-commissioned machines.
How to set per-machine storage layouts
An administrator can set a storage layout for a machine with a status of ‘Ready’ like this:
maas $PROFILE machine set-storage-layout $SYSTEM_ID storage_layout=$LAYOUT_TYPE [$OPTIONS]
For example, to set an LVM layout where the logical volume has a size of 5 GB:
maas $PROFILE machine set-storage-layout $SYSTEM_ID storage_layout=lvm lv_size=5368709120
```nohighlight
You must specify all storage sizes in bytes.
This action will remove the configuration that may exist on any block device.
**NOTE:**
Only an administrator can modify storage at the block device level (providing the machine has a status of 'Ready').
<a href="#heading--how-to-erase-disks"><h3 id="heading--how-to-erase-disks">How to erase disks</h3></a>
When using the [MAAS CLI](maas-cli.html), you can erase a disk when releasing an individual machine. Note that this option is not available when releasing multiple machines, so you'll want to make sure you're using:
```nohighlight
maas $PROFILE machine release...
and not:
maas $PROFILE machines release...
Note the difference in singular and plural “machine/machines” in the commands. Releasing a machine requires that you have the system_id
of the machine to be released, which you can obtain with a command like this one:
maas admin machines read | jq -r '(["HOSTNAME","SYSID","POWER","STATUS",
"OWNER", "TAGS", "POOL", "VLAN","FABRIC","SUBNET"] | (., map(length*"-"))),
(.[] | [.hostname, .system_id, .power_state, .status_name, .owner // "-",
.tag_names[0] // "-", .pool.name,
.boot_interface.vlan.name, .boot_interface.vlan.fabric,
.boot_interface.links[0].subnet.name]) | @tsv' | column -t
The basic form of the release command, when erasing disks on releasing, is:
maas $PROFILE machine release $SYSTEM_ID comment="some comment" erase=true [secure_erase=true ||/&& quick_erase=true]
Parameters secure_erase
and quick_erase
are both optional, although if you don’t specify either of them, the entire disk will be overwritten with null bytes. Note that this overwrite process is very slow.
Secure erasure uses the drive’s secure erase feature, if it has one. In some cases, this can be much faster than overwriting the entire drive. Be aware, though, that some drives implement secure erasure as a complete drive overwrite, so this method may still be very slow. Additionally, if you specify secure erasure and the drive doesn’t have this feature, you’ll get a complete overwrite anyway – again, possibly very slow.
Quick erasure wipes 2MB at the start and end of the drive to make recovery both inconvenient and unlikely to happen by accident. Note, though, that quick erasure is not secure.
How to specify conditional erasure types
If you specify both erasure types, like this:
maas $PROFILE machine release $SYSTEM_ID comment="some comment" erase=true secure_erase=true quick_erase=true
then MAAS will perform a secure erasure if the drive has that feature; if not, it will perform a quick erasure. Of course, if you’re concerned about completely erasing the drive, and you’re not sure whether the disk has secure erase features, the best way to handle that is to specify nothing, and allow the full disk to be overwritten by null bytes:
maas $PROFILE machine release $SYSTEM_ID comment="some comment" erase=true
This section will explain:
To view all block devices on a machine use the read operation. This list both physical and virtual block devices, as you can see in the output from the following command:
maas admin block-devices read <node-id>
Output:
Success.
Machine-readable output follows:
[
{
"id": 10,
"path": "/dev/disk/by-dname/vda",
"serial": "",
"block_size": 4096,
"available_size": 0,
"resource_uri": "/MAAS/api/2.0/nodes/4y3h8a/blockdevices/10/",
"filesystem": null,
"id_path": "/dev/vda",
"size": 5368709120,
"partition_table_type": "MBR",
"model": "",
"type": "physical",
"uuid": null,
"used_size": 5365563392,
"used_for": "MBR partitioned with 1 partition",
"partitions": [
{
"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
}
}
],
"tags": [
"rotary"
],
"name": "vda"
},
{
"id": 11,
"path": "/dev/disk/by-dname/lvroot",
"serial": null,
"block_size": 4096,
"available_size": 0,
"resource_uri": "/MAAS/api/2.0/nodes/4y3h8a/blockdevices/11/",
"filesystem": {
"uuid": "7181a0c0-9e16-4276-8a55-c77364d137ca",
"mount_options": null,
"label": "root",
"fstype": "ext4",
"mount_point": "/"
},
"id_path": null,
"size": 3221225472,
"partition_table_type": null,
"model": null,
"type": "virtual",
"uuid": "fc8ba89e-9149-412c-bcea-e596eb7c0d14",
"used_size": 3221225472,
"used_for": "ext4 formatted filesystem mounted at /",
"partitions": [],
"tags": [],
"name": "vgroot-lvroot"
}
]
If you want to read just one block device instead of listing all block devices the read operation on the block device endpoint provides that information. To display the details on device ‘11’ from the previous output, for example, we could enter:
maas admin block-device read <node-id> 11
The above command generates the following output:
Success.
Machine-readable output follows:
{
"available_size": 0,
"path": "/dev/disk/by-dname/vgroot-lvroot",
"name": "vgroot-lvroot",
"used_for": "ext4 formatted filesystem mounted at /",
"type": "virtual",
"used_size": 3221225472,
"filesystem": {
"uuid": "7181a0c0-9e16-4276-8a55-c77364d137ca",
"mount_point": "/",
"mount_options": null,
"fstype": "ext4",
"label": "root"
},
"id_path": null,
"id": 11,
"partition_table_type": null,
"block_size": 4096,
"tags": [],
"resource_uri": "/MAAS/api/2.0/nodes/4y3h8a/blockdevices/11/",
"uuid": "fc8ba89e-9149-412c-bcea-e596eb7c0d14",
"serial": null,
"partitions": [],
"size": 3221225472,
"model": null
}
It is also possible to use the name of the block device, such as ‘sda’ or ‘vda’, instead of its ‘id’:
s admin block-device read <node-id> vda
NOTE: MAAS allows the name of a block device to be changed. If the block device name has changed then the API call needs to use the new name.
Using the ID is safer as it never changes.
MAAS gathers the required information itself on block devices when re- commissioning a machine. If this doesn’t provide the required information, it is also possible - though not recommended - for an administrator to use the API to manually add a physical block device to a machine.
maas admin block-devices create <node-id> name=vdb model="QEMU" serial="QM00001" size=21474836480 block_size=4096
Depending on your configuration, output should be similar to the following:
Success.
Machine-readable output follows:
{
"available_size": 21474836480,
"path": "/dev/disk/by-dname/vdb",
"name": "vdb",
"used_for": "Unused",
"type": "physical",
"used_size": 0,
"filesystem": null,
"id_path": "",
"id": 12,
"partition_table_type": null,
"block_size": 4096,
"tags": [],
"resource_uri": "/MAAS/api/2.0/nodes/4y3h8a/blockdevices/12/",
"uuid": null,
"serial": "QM00001",
"partitions": [],
"size": 21474836480,
"model": "QEMU"
}
NOTE: The serial number is what MAAS will use when a machine is deployed to find the specific block device. It’s important that this be correct. In a rare chance that your block device does not provide a model or serial number you can provide an id_path. The id_path should be a path that is always the same, no matter the kernel version.
An administrator can also update the details held on a physical block device, such as its name, from the API:
maas admin block-device update <node-id> 12 name=newroot
Output from this command will show that the ‘name’ has changed:
Success.
Machine-readable output follows:
{
"block_size": 4096,
"size": 21474836480,
"filesystem": null,
"model": "QEMU",
"name": "newroot",
"partitions": [],
"tags": [],
"used_size": 0,
"path": "/dev/disk/by-dname/newroot",
"id_path": "",
"uuid": null,
"available_size": 21474836480,
"id": 12,
"used_for": "Unused",
"type": "physical",
"resource_uri": "/MAAS/api/2.0/nodes/4y3h8a/blockdevices/12/",
"partition_table_type": null,
"serial": "QM00001"
}
Physical and virtual block devices can be deleted by an administrator, while ordinary users can only delete virtual block devices:
maas admin block-device delete <node-id> 12
An entire block device can be formatted by defining a filesystem with the ‘format’ API call:
maas admin block-device format <node-id> 11 fstype=ext4
Successful output from this command will look similar to this:
Success.
Machine-readable output follows:
{
"block_size": 4096,
"size": 3221225472,
"filesystem": {
"label": "",
"fstype": "ext4",
"mount_options": null,
"uuid": "75e42f49-9a45-466c-8425-87a40e4f4148",
"mount_point": null
},
"model": null,
"name": "vgroot-lvroot",
"partitions": [],
"tags": [],
"used_size": 3221225472,
"path": "/dev/disk/by-dname/vgroot-lvroot",
"id_path": null,
"uuid": "fc8ba89e-9149-412c-bcea-e596eb7c0d14",
"available_size": 0,
"id": 11,
"used_for": "Unmounted ext4 formatted filesystem",
"type": "virtual",
"resource_uri": "/MAAS/api/2.0/nodes/4y3h8a/blockdevices/11/",
"partition_table_type": null,
"serial": null
}
NOTE: You cannot format a block device that contains partitions or is used to make another virtual block device.
How to unformat a block device
You can remove the filesystem from a block device with the ‘unformat’ API call:
maas admin block-device unformat <node-id> 11
The output from this command should show the filesystem is now ‘null’:
Success.
Machine-readable output follows:
{
"available_size": 3221225472,
"path": "/dev/disk/by-dname/vgroot-lvroot",
"name": "vgroot-lvroot",
"used_for": "Unused",
"type": "virtual",
"used_size": 0,
"filesystem": null,
"id_path": null,
"id": 11,
"partition_table_type": null,
"block_size": 4096,
"tags": [],
"resource_uri": "/MAAS/api/2.0/nodes/4y3h8a/blockdevices/11/",
"uuid": "fc8ba89e-9149-412c-bcea-e596eb7c0d14",
"serial": null,
"partitions": [],
"size": 3221225472,
"model": null
}
If a block device has a filesystem, you can use the ‘maas’ command to mount a block devices at a given mount point:
maas admin block-device mount <node-id> 11 mount_point=/srv
The mount point is included in the successful output from the command:
Success.
Machine-readable output follows:
{
"available_size": 0,
"path": "/dev/disk/by-dname/vgroot-lvroot",
"name": "vgroot-lvroot",
"used_for": "ext4 formatted filesystem mounted at /srv",
"type": "virtual",
"used_size": 3221225472,
"filesystem": {
"uuid": "6f5965ad-49f7-42da-95ff-8000b739c39f",
"mount_point": "/srv",
"mount_options": "",
"fstype": "ext4",
"label": ""
},
"id_path": null,
"id": 11,
"partition_table_type": null,
"block_size": 4096,
"tags": [],
"resource_uri": "/MAAS/api/2.0/nodes/4y3h8a/blockdevices/11/",
"uuid": "fc8ba89e-9149-412c-bcea-e596eb7c0d14",
"serial": null,
"partitions": [],
"size": 3221225472,
"model": null
}
To remove the mount point from the block device, use the ‘unmount’ call:
maas admin block-device unmount <node-id> 11 mount_point=/srv
The previous command will include a nullified ‘mount_point’ in its output:
Success.
Machine-readable output follows:
{
"available_size": 0,
"path": "/dev/disk/by-dname/vgroot-lvroot",
"name": "vgroot-lvroot",
"used_for": "Unmounted ext4 formatted filesystem",
"type": "virtual",
"used_size": 3221225472,
"filesystem": {
"uuid": "6f5965ad-49f7-42da-95ff-8000b739c39f",
"mount_point": null,
"mount_options": null,
"fstype": "ext4",
"label": ""
},
"id_path": null,
"id": 11,
"partition_table_type": null,
"block_size": 4096,
"tags": [],
"resource_uri": "/MAAS/api/2.0/nodes/4y3h8a/blockdevices/11/",
"uuid": "fc8ba89e-9149-412c-bcea-e596eb7c0d14",
"serial": null,
"partitions": [],
"size": 3221225472,
"model": null
}
How to set a block device as a boot disk
By default, MAAS picks the first added block device to the machine as the boot disk. In most cases this works as expected as the BIOS usually enumerates the boot disk as the first block device. There are cases where this fails and the boot disk needs to be set to another disk. This API allow setting which block device on a machine MAAS should use as the boot disk.:
maas admin block-device set-boot-disk <node-id> 10
NOTE: Only an administrator can set which block device should be used as the boot disk and only a physical block device can be set as as the boot disk. This operation should be done before a machine is allocated or the storage layout will be applied to the previous boot disk.
This section will explain:
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
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"
}
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:
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": ""
}
}
NOTE: You cannot format partitions that are used to make another virtual block device.
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"
}
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"
}
}
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
}
This section will explain:
To view all VMFS Datastores on a machine, use the ‘vmfs-datastores read’ API call:
maas $PROFILE vmfs-datastores read $SYSTEM_ID
[
{
"human_size": "45.8 GB",
"filesystem": {
"fstype": "vmfs6",
"mount_point": "/vmfs/volumes/datastore1"
},
"uuid": "2779a745-1db3-4fd7-b06e-455b728fffd4",
"name": "datastore1",
"system_id": "4qxaga",
"devices": [
{
"uuid": "c55fe657-689d-4570-8492-683dd5fa1c40",
"size": 35026632704,
"bootable": false,
"tags": [],
"used_for": "VMFS extent for datastore1",
"filesystem": {
"fstype": "vmfs6",
"label": null,
"uuid": "55ac6422-68b5-440e-ba65-153032605b51",
"mount_point": null,
"mount_options": null
},
"type": "partition",
"device_id": 5,
"path": "/dev/disk/by-dname/sda-part3",
"system_id": "4qxaga",
"id": 71,
"resource_uri": "/MAAS/api/2.0/nodes/4qxaga/blockdevices/5/partition/71"
},
{
"uuid": "5182e503-4ad4-446e-9660-fd5052b41cc5",
"size": 10729029632,
"bootable": false,
"tags": [],
"used_for": "VMFS extent for datastore1",
"filesystem": {
"fstype": "vmfs6",
"label": null,
"uuid": "a5949b18-d591-4627-be94-346d0fdaf816",
"mount_point": null,
"mount_options": null
},
"type": "partition",
"device_id": 6,
"path": "/dev/disk/by-dname/sdb-part1",
"system_id": "4qxaga",
"id": 77,
"resource_uri": "/MAAS/api/2.0/nodes/4qxaga/blockdevices/6/partition/77"
}
],
"id": 17,
"size": 45755662336,
"resource_uri": "/MAAS/api/2.0/nodes/4qxaga/vmfs-datastore/17/"
}
]
To view a specific VMFS Datastores on a machine, use the ‘vmfs-datastore read’ API call:
maas $PROFILE vmfs-datastore read $SYSTEM_ID $VMFS_DATASTORE_ID
{
"uuid": "fb6fedc2-f711-40de-ab83-77eddc3e19ac",
"name": "datastore1",
"system_id": "b66fn6",
"id": 18,
"filesystem": {
"fstype": "vmfs6",
"mount_point": "/vmfs/volumes/datastore1"
},
"human_size": "2.8 GB",
"devices": [
{
"uuid": "b91df576-ba02-4acb-914f-03ba9a2865b7",
"size": 2814377984,
"bootable": false,
"tags": [],
"system_id": "b66fn6",
"used_for": "VMFS extent for datastore1",
"type": "partition",
"id": 80,
"filesystem": {
"fstype": "vmfs6",
"label": null,
"uuid": "4a098d71-1e59-4b5f-932d-fc30a1c0dc96",
"mount_point": null,
"mount_options": null
},
"device_id": 1,
"path": "/dev/disk/by-dname/vda-part3",
"resource_uri": "/MAAS/api/2.0/nodes/b66fn6/blockdevices/1/partition/80"
}
],
"size": 2814377984,
"resource_uri": "/MAAS/api/2.0/nodes/b66fn6/vmfs-datastore/18/"
}
How to create a VMFS datastore
A VMware VMFS datastore is created on one or more block devices or partitions.
To create a VMFS Datastores on a machine use the ‘vmfs-datastores create’ API call:
maas $PROFILE vmfs-datastores create $SYSTEM_ID name=$VMFS_NAME block_devices=$BLOCK_ID_1,$BLOCK_ID_2 partitions=$PARTITION_ID_1,$PARTITION_ID_2
{
"system_id": "b66fn6",
"devices": [
{
"uuid": "b91df576-ba02-4acb-914f-03ba9a2865b7",
"size": 2814377984,
"bootable": false,
"tags": [],
"device_id": 1,
"system_id": "b66fn6",
"type": "partition",
"used_for": "VMFS extent for datastore42",
"filesystem": {
"fstype": "vmfs6",
"label": null,
"uuid": "fc374367-a2fb-4e50-9377-768bfe9705b6",
"mount_point": null,
"mount_options": null
},
"path": "/dev/disk/by-dname/vda-part3",
"id": 80,
"resource_uri": "/MAAS/api/2.0/nodes/b66fn6/blockdevices/1/partition/80"
}
],
"name": "datastore42",
"filesystem": {
"fstype": "vmfs6",
"mount_point": "/vmfs/volumes/datastore42"
},
"id": 19,
"size": 2814377984,
"uuid": "2711566c-2df4-4cc4-8c06-7392bb1f9532",
"human_size": "2.8 GB",
"resource_uri": "/MAAS/api/2.0/nodes/b66fn6/vmfs-datastore/19/"
}
To edit an existing VMFS Datastores on a machine use the ‘vmfs-datastore update’ API call:
maas $PROFILE vmfs-datastore update $SYSTEM_ID $VMFS_ID name=$NEW_VMFS_NAME add_block_devices=$NEW_BLOCK_ID_1,$NEW_BLOCK_ID_2 add_partitions=$NEW_PARTITION_ID_1,$NEW_PARTITION_ID_2 remove_partitions=$EXISTING_PARTITION_ID1,$EXISTING_PARTITION_ID2
{
"uuid": "2711566c-2df4-4cc4-8c06-7392bb1f9532",
"name": "datastore42",
"system_id": "b66fn6",
"id": 19,
"filesystem": {
"fstype": "vmfs6",
"mount_point": "/vmfs/volumes/datastore42"
},
"human_size": "13.5 GB",
"devices": [
{
"uuid": "b91df576-ba02-4acb-914f-03ba9a2865b7",
"size": 2814377984,
"bootable": false,
"tags": [],
"system_id": "b66fn6",
"used_for": "VMFS extent for datastore42",
"type": "partition",
"id": 80,
"filesystem": {
"fstype": "vmfs6",
"label": null,
"uuid": "fc374367-a2fb-4e50-9377-768bfe9705b6",
"mount_point": null,
"mount_options": null
},
"device_id": 1,
"path": "/dev/disk/by-dname/vda-part3",
"resource_uri": "/MAAS/api/2.0/nodes/b66fn6/blockdevices/1/partition/80"
},
{
"uuid": "f21fe54e-b5b1-4562-ab6b-e699e99f002f",
"size": 10729029632,
"bootable": false,
"tags": [],
"system_id": "b66fn6",
"used_for": "VMFS extent for datastore42",
"type": "partition",
"id": 86,
"filesystem": {
"fstype": "vmfs6",
"label": null,
"uuid": "f3d9b6a3-bab3-4677-becb-bf5a421bfcc2",
"mount_point": null,
"mount_options": null
},
"device_id": 2,
"path": "/dev/disk/by-dname/vdb-part1",
"resource_uri": "/MAAS/api/2.0/nodes/b66fn6/blockdevices/2/partition/86"
}
],
"size": 13543407616,
"resource_uri": "/MAAS/api/2.0/nodes/b66fn6/vmfs-datastore/19/"
}
How to delete a VMFS datastore
To delete a VMFS Datastores on a machine use the ‘vmfs-datastore delete’ API call:
maas $PROFILE vmfs-datastore delete $SYSTEM_ID $VMFS_ID
How to define custom storage layouts
MAAS 3.1 allows you to define a custom storage layout for a machine, via a custom commissioning script. You must upload a script which conforms to the following rules:
40-maas-01-machine-resources
script and before the 50-maas-01-commissioning
one, so it should have a name that starts with anything between 41-
and 49-
. This ensures the script can access the JSON file created by the former which provides info about the machine hardware and network resources. In addition, the custom script can directly inspect the machine it’s running on to determine how to configure storage.$MAAS_RESOURCES_FILE
$MAAS_STORAGE_CONFIG_FILE
with the desired storage layoutThe configuration contains two main sections:
- layout
, which lists the desired storage layout in terms of disks and volumes, along with their setup (partitions, volumes, …).
This consists of a dictionary of device names and their configuration. Each device must have a type
property (see below for supported types).
- mounts
, which lists the desired filesystem mount points.
As an example:
"mounts": {
"/": {
"device": "sda2",
"options": "noatime"
},
"/boot/efi": {
"device": "sda1"
},
"/data": {
"device": "raid0"
}
}
A complete $MAAS_STORAGE_CONFIG_FILE
would look like this:
{
"layouts": {
"sda": {
...
},
"raid0": {
...
},
...
},
"mounts": {
"/": {
...
},
...
}
}
The following device types are supported in the "layout"
section:
"sda": {
"type": "disk",
"ptable": "gpt",
"boot": true,
"partitions": [
{
"name": "sda1",
"fs": "vfat",
"size": "100M"
"bootable": true,
}
]
}
A disk
entry defines a physical disk.
The following details can be specified:
- the partition table type (ptable
), which can be gpt
or mbr
- whether it should be selected as boot
disk
- optionally, a list of partitions to create, with their size
and filesystem type (fs
)
"lvm0": {
"type": "lvm",
"members": [
"sda1",
"sdb1",
],
"volumes": [
{
"name": "data1",
"size": "5G",
"fs": "ext4"
},
{
"name": "data2",
"size": "7G",
"fs": "btrfs"
}
]
}
An lvm
entry defines a VG (volume group) composed by a set of disks or partitions (listed as members
). Optionally it’s possible to specify the the LVs (logical volumes) to create.
Those are defined similarly to partitions, with a name and size (and optionally the filesystem).
"bcache0": {
"type": "bcache",
"cache-device": "sda",
"backing-device": "sdf3",
"cache-mode": "writeback",
"fs": "ext4"
}
A bcache
entry must specify a device to use as cache and one to use as storage. Both can be either a partition or a disk.
Optionally the cache-mode
for the Bcache can be specified.
"myraid": {
"type": "raid",
"level": 5,
"members": [
"sda",
"sdb",
"sdc",
],
"spares": [
"sdd",
"sde"
],
"fs": "btrfs"
A raid
entry defines a RAID with a set of member devices.
Spare devices can also be specified.
Here’s a few examples of custom storage layout configurations that a script could output to the $MAAS_STORAGE_CONFIG_FILE
. The examples assumes that the machine has 5 disks (named sda
to sde
).
Note that there’s no need to add entries for those devices in the layout
section if the disks are not explicitly partitioned, but just used by other devices (e.g. RAID or LVM).
{
"layout": {
"sda": {
"type": "disk",
"ptable": "gpt",
"boot": true,
"partitions": [
{
"name": "sda1",
"fs": "vfat",
"size": "500M",
"bootable": true
},
{
"name": "sda2",
"size": "5G",
"fs": "ext4"
},
{
"name": "sda3",
"size": "2G",
"fs": "swap"
},
{
"name": "sda4",
"size": "120G",
"fS": "ext4"
}
]
}
},
"mounts": {
"/": {
"device": "sda2",
"options": "noatime"
},
"/boot/efi": {
"device": "sda1"
},
"/data": {
"device": "sda4"
},
"none": {
"device": "sda3"
}
}
}
In the mounts
section, options for mount points can be specified. For swap, an entry must be present (with any unique name that doesn’t start with a /
), otherwise the swap will be created but not activated.
{
"layout": {
"storage": {
"type": "raid",
"level": 5,
"members": [
"sda",
"sdb",
"sdc"
],
"spares": [
"sdd",
"sde"
],
"fs": "btrfs"
}
},
"mounts": {
"/data": {
"device": "storage"
}
}
}
Both full disks and partitions can be used as RAID members.
{
"layout": {
"storage": {
"type": "lvm",
"members": [
"sda",
"sdb",
"sdc",
"sdd"
],
"volumes": [
{
"name": "data1",
"size": "1T",
"fs": "ext4"
},
{
"name": "data2",
"size": "2.5T",
"fs": "btrfs"
}
]
}
},
"mounts": {
"/data1": {
"device": "data1"
},
"/data2": {
"device": "data2"
}
}
}
If no volumes are specified, the volume group is still created.
{
"layout": {
"data1": {
"type": "bcache",
"cache-device": "sda",
"backing-device": "sdb",
"cache-mode": "writeback",
"fs": "ext4"
},
"data2": {
"type": "bcache",
"cache-device": "sda",
"backing-device": "sdc",
"fs": "btrfs"
}
},
"mounts": {
"/data1": {
"device": "data1"
},
"/data2": {
"device": "data2"
}
}
}
The same cache set can be used by different bcaches by specifying the same backing-device
for them.
{
"layout": {
"bcache0": {
"type": "bcache",
"backing-device": "sda",
"cache-device": "sdf"
},
"bcache1": {
"type": "bcache",
"backing-device": "sdb",
"cache-device": "sdf"
},
"bcache2": {
"type": "bcache",
"backing-device": "sdc",
"cache-device": "sdf"
},
"bcache3": {
"type": "bcache",
"backing-device": "sdd",
"cache-device": "sdf"
},
"bcache4": {
"type": "bcache",
"backing-device": "sde",
"cache-device": "sdf"
},
"raid": {
"type": "raid",
"level": 5,
"members": [
"bcache0",
"bcache1",
"bcache2"
],
"spares": [
"bcache3",
"bcache4"
]
},
"lvm": {
"type": "lvm",
"members": [
"raid"
],
"volumes": [
{
"name": "root",
"size": "10G",
"fs": "ext4"
},
{
"name": "data",
"size": "3T",
"fs": "btrfs"
}
]
}
},
"mounts": {
"/": {
"device": "root"
},
"/data": {
"device": "data"
}
}
}
The RAID is created by using 5 bcache devices, each one using a different disk and the same SSD cache device. LVM is created on top of the RAID device and volumes are then created in it, to provide partitions.
There are three layout types:
The layout descriptions below will include the EFI partition. If your system is not using UEFI, regard sda2
as sda1
(with an additional 512 MB available to it).
With the Flat layout, a partition spans the entire boot disk. The partition is formatted with the ext4 filesystem and uses the /
mount point:
Name | Size | Type | Filesystem | Mount point |
---|---|---|---|---|
sda | - | disk | ||
sda1 | 512 MB | part | FAT32 | /boot/efi |
sda2 | rest of sda | part | ext4 | / |
The following three options are supported:
boot_size
: Size of the boot partition on the boot disk. Default is 0, meaning not to create the boot partition. The ‘/boot’ will be placed on the root filesystem.
root_device
: The block device on which to place the root partition. The default is the boot disk.
root_size
: Size of the root partition. Default is 100%, meaning the entire size of the root device.
The LVM layout creates the volume group vgroot
on a partition that spans the entire boot disk. A logical volume lvroot
is created for the full size of the volume group; is formatted with the ext4 filesystem; and uses the /
mount point:
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 | / |
vgroot | rest of sda | lvm |
The following six options are supported:
boot_size
: Size of the boot partition on the boot disk. Default is 0, meaning not to create the boot partition. The ‘/boot’ will be placed on the root filesystem.root_device
: The block device on which to place the root partition. The default is the boot disk.root_size
: Size of the root partition. Default is 100%, meaning the entire size of the root device.vg_name
: Name of the created volume group. Default is vgroot
.lv_name
: Name of the created logical volume. Default is lvroot
.lv_size
: Size of the created logical volume. Default is 100%, meaning the entire size of the volume group.bcache storage layout reference
A bcache layout will create a partition that spans the entire boot disk as the backing device. It uses the smallest block device tagged with ‘ssd’ as the cache device. The bcache device is formatted with the ext4 filesystem and uses the /
mount point. If there are no ‘ssd’ tagged block devices on the machine, then the bcache device will not be created, and the Flat layout will be used instead:
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 | / |
The following seven options are supported:
boot_size
: Size of the boot partition on the boot disk. Default is 0, meaning not to create the boot partition. The ‘/boot’ will be placed on the root filesystem.root_device
: The block device upon which to place the root partition. The default is the boot disk.root_size
: Size of the root partition. Default is 100%, meaning the entire size of the root device.cache_device
: The block device to use as the cache device. Default is the smallest block device tagged ssd.cache_mode
: The cache mode to which MAAS should set the created bcache device. The default is writethrough
.cache_size
: The size of the partition on the cache device. Default is 100%, meaning the entire size of the cache device.cache_no_part
: Whether or not to create a partition on the cache device. Default is false, meaning to create a partition using the given cache_size
. If set to true, no partition will be created, and the raw cache device will be used as the cache.vmfs6 storage layout reference
VMFS6 storage layout reference
The VMFS6 layout is used for VMware ESXi deployments only. It is required when configuring VMware VMFS Datastores. This layout creates all operating system partitions, in addition to the default datastore. The datastore may be modified. New datastores may be created or extended to include other storage devices. The base operating system partitions may not be modified because VMware ESXi requires them. Once applied another storage layout must be applied to remove the operating system partitions.
Name | Size | Type | Use |
---|---|---|---|
sda | - | disk | |
sda1 | 3 MB | part | EFI |
sda2 | 4 GB | part | Basic Data |
sda3 | Remaining | part | VMFS Datastore 1 |
sda4 | - | skipped | |
sda5 | 249 MB | part | Basic Data |
sda6 | 249 MB | part | Basic Data |
sda7 | 109 MB | part | VMware Diagnostic |
sda8 | 285 MB | part | Basic Data |
sda9 | 2.5 GB | part | VMware Diagnostic |
The following options are supported:
root_device
: The block device upon which to place the root partition. Default is the boot disk.
root_size
: Size of the default VMFS Datastore. Default is 100%, meaning the remaining size of the root disk.
Blank storage layout reference
The blank layout removes all storage configuration from all storage devices. It is useful when needing to apply a custom storage configuration.
NOTE: Machines with the blank layout applied are not deployable; you must first configure storage manually.