Storage Volume Management
This section covers explicit management of storage volumes. The section on storage volumes and workflows covers automatic creation of storage volumes by workflows.
Administrators and users can manage storage volumes
from the CLI or the
web UI. This section will cover
CLI usage. The root command is fuzzball volume with the following sub commands:
Usage:
fuzzball volume [command]
Aliases:
volume, vol
Available Commands:
create Create a volume
delete Delete a volume
disable Disable a volume
enable Enable a volume
info Get volume information
list List volumes
update Update a volume
Flags:
-h, --help help for volume
Global Flags:
-c, --color string Set the color output for fuzzball ($FUZZBALL_COLOR) (default "auto")
--disable-auth Disables auth ($FUZZBALL_DISABLE_AUTH)
--disable-tls Disables tls ($FUZZBALL_DISABLE_TLS)
--insecure Enable insecure connections ($FUZZBALL_INSECURE)
-j, --json Output in json ($FUZZBALL_JSON)
Use "fuzzball volume [command] --help" for more information about a command.
Ephemeral storage Volumes are not manageable via CLI/web UI. Only persistent storage volumes can be managed this way.
Once you have a definition, you can create a storage volume with the following syntax:
# cat > data_vol.yaml <<__EOF__
version: v1
name: mydata
displayName: mydata
description: My data directory
storageClassName: data
__EOF__
# fuzzball volume create data_vol.yaml
Volume "890816c4-1854-3fa1-ba20-c83e1aa15c4c" created
You need to be logged into a user context and select an account you own to create a storage volume.
Given the storage class and driver we set up in this example, files stored in this volume will be physically located in
/srv/fuzzball/storage_data/<username> on the NFS server.
To get a list of storage volumes that currently exist, use the following command:
# fuzzball volume list
ID | REFERENCE | DISPLAYNAME | DESCRIPTION | CREATETIME | ACCESSTIME | STATUS | CLUSTER
890816c4-1854-3fa1-ba20-c83e1aa15c4c | volume://user/data | mydata | My data directory | 2025-04-15 01:13:46PM | 2025-04-15 01:13:46PM | Enabled | unset-cluster
For more detailed machine readable information use the info command with the --json flag like so:
# fb volume info --json 890816c4-1854-3fa1-ba20-c83e1aa15c4c
{
"id": "890816c4-1854-3fa1-ba20-c83e1aa15c4c",
"reference": "volume://user/data",
"name": "bob",
"display_name": "mydata",
"description": "My data directory",
"create_time": {
"seconds": 1744722826,
"nanos": 50474000
},
"access_time": {
"seconds": 1744722826,
"nanos": 50474000
},
"status": 1,
"cluster_id": "36ad0001-35f7-c17d-2f75-e910a16292cf"
}
It’s easy to update a storage volume if you need to change something about the definition. For example, here is how you could change the description of the volume:
# sed 's/My data directory/My permanent data directory/' data_vol.yaml > data_vol2.yaml
# fuzzball volume update 890816c4-1854-3fa1-ba20-c83e1aa15c4c data_vol2.yaml
Volume "890816c4-1854-3fa1-ba20-c83e1aa15c4c" updated
# fuzzball volume list
ID | REFERENCE | DISPLAYNAME | DESCRIPTION | CREATETIME | ACCESSTIME | STATUS | CLUSTER
890816c4-1854-3fa1-ba20-c83e1aa15c4c | volume://user/data | mydata | My permanent data directory | 2025-04-15 01:13:46PM | 2025-04-15 01:24:02PM | Enabled | unset-cluster
You can disable a storage volume to
prevent it from being used within a workflow using
the disable subcommand as in the following example:
# fuzzball volume disable 890816c4-1854-3fa1-ba20-c83e1aa15c4c
Volume 890816c4-1854-3fa1-ba20-c83e1aa15c4c marked as disabled
This is required before deleting a volume. Once a volume has been disabled it can either be re-enabled with this command:
# fuzzball volume enable 890816c4-1854-3fa1-ba20-c83e1aa15c4c
Volume 890816c4-1854-3fa1-ba20-c83e1aa15c4c marked as enabled
or it can be deleted like so:
#$ fuzzball volume delete 890816c4-1854-3fa1-ba20-c83e1aa15c4c
Volume 890816c4-1854-3fa1-ba20-c83e1aa15c4c marked for deletion
If the storage volume had not been disabled prior to its deletion, the command returns the error:
volume must be disabled before deletion
Or if any workflow are using the volume, the command returns the error:
one or more workflows are using this volume