Fuzzball Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

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.

Create a storage volume

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.

Obtain information about storage volumes

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"
}

Update a storage volume

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

Disable and delete a storage volume

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