Volume Sets

Overview

A volume set is a collection of storage volumes. Each volume set can be used by at most one stateful workload. Volumes are not deleted until the volume set is deleted. A volume set is a collection of storage volumes. Each volume set can be used by at most one stateful workload. Volumes are only deleted when you send a deleteVolume command, or when the volume set is deleted.

File Systems

Each volume set has a single, immutable file system.

Currently supported file systems are:

  • ext4
  • xfs

Performance Classes

Each volume set has a single, immutable, performance class.

The performance class determines:

  • How many Megabytes per second can be transferred to and from the volume (MB/second)
  • How many I/O operations can be processed per second. (IOPS)
  • Read/write latency

Volume performance varies widely by cloud service provider.

General Purpose SSD

Name: general-purpose-ssd

Minimum Capacity: 10Gb

Maximum Capacity: 16384Gb

Service ProviderMax ThroughputMax IOPS
AWS750 MB/s3000
GCP1200 MB/s800002
Azure750 MB/s6000

Premium SSD

Name: premium-low-latency-ssd

Minimum Capacity: 10Gb

Maximum Capacity: 16384Gb

Service ProviderMax ThroughputMax IOPS 1
AWS1000 MB/s5/GB
GCP1200 MB/s1000002
Azure900 MB/s20000

Commands

Volume sets support imperative operations on individual volumes and snapshots. To issue a command, send a POST to the volume set's -command endpoint. e.g. POST https://api.cpln.io/org/my-org/gvc/my-gvc/volumeset/my-volume-set/-command. These commands can also be created using the Control Plane console at https://console.cpln.io

Volume Expansion

Volumes can be expanded on-demand by issuing a expandVolume command. If the volume set is in-use by a workload, the corresponding workload replica will be restarted.

CAUTION
You can only expand a volume once every six hours. Please plan accordingly.
INFO
Volumes cannot be "expanded" to a smaller size.

expandVolume

Spec:

  • location
  • volumeIndex
  • newStorageCapacity

For example:

expandVolume Command
copy
{
"type": "expandVolume",
"spec": {
"location": "aws-sa-east-1",
"volumeIndex": 0,
"newStorageCapacity": 11
}
}

Volume Deletion

To delete a volume, issue a deleteVolume command.

deleteVolume

This command deletes the specified volume's storage device. Note: the metadata for the volume at the specified index will not be removed from the volume set. Only your data will be deleted.

Deleting an in-use volume

If the volume set is in-use by a workload, a new storage device may be immediately created. e.g. if the volume set is in-use by a workload with one replica, and you delete the volume at index 0, Control Plane will:

  1. Create an empty volume to service the workload
  2. Delete the old volume as requested
  3. Restart the workload replica, binding it to the volume created in step 1.

For example:

deleteVolume Command
copy
{
"type": "deleteVolume",
"spec": {
"location": "aws-sa-east-1",
"volumeIndex": 0
}
}

Snapshots

Each volume in a set has its own list of snapshots. You manipulate snapshots by issuing commands to the volume set.

createVolumeSnapshot

Take a snapshot for a given volume (specified by location and volume index). snapshotName must be unique for the target volume. Spec:

  • location
  • volumeIndex
  • snapshotName
  • snapshotExpirationDate
  • tags
    • Specify any key/value pair here.

For example:

createVolumeSnapshot Command
copy
{
"type": "createVolumeSnapshot",
"spec": {
"location": "aws-sa-east-1",
"volumeIndex": 0,
"snapshotName": "snap-0",
"snapshotExpirationDate": "2025-01-01T00:00:00Z",
"tags": {
"my-tag-key": "my-tag-value"
}
}
}

deleteVolumeSnapshot

Delete the specified snapshot. Spec:

  • location
  • volumeIndex
  • snapshotName

For example:

deleteVolumeSnapshot Command
copy
{
"type": "deleteVolumeSnapshot",
"spec": {
"location": "aws-sa-east-1",
"volumeIndex": 0,
"snapshotName": "snap-0"
}
}

restoreVolume

Restore the specified volume to one of its snapshots. If this volume set is in-use by a workload, the corresponding workload replica will restart.

WARNING
This operation creates an entirely new volume using the given snapshot. All unsaved data on the original volume will be lost.
Spec:
  • location
  • volumeIndex
  • snapshotName

For example:

restoreVolume Command
copy
{
"type": "restoreVolume",
"spec": {
"location": "aws-sa-east-1",
"volumeIndex": 0,
"snapshotName": "snap-0"
}
}

BYOK Support

Volume sets are supported in BYOK locations as long as the following prerequisites are met:

  1. The cluster must have a CSI-compatible storage driver installed.

  2. You must create storage classes which use the CSI-compatible provisioner, with the following names:

    • general-purpose-ssd-ext4
    • general-purpose-ssd-xfs
    • premium-low-latency-ssd-ext4
    • premium-low-latency-ssd-xfs
    • general-purpose-ssd-ext4-command
    • general-purpose-ssd-xfs-command
    • premium-low-latency-ssd-ext4-command
    • premium-low-latency-ssd-xfs-command

Planned Features

  • Automatic volume expansion.

Permissions

The permissions below are used to define policies together with one or more of the four principal types:

PermissionDescriptionImplies
createCreate new volumesets
deleteDelete existing identities
editModify existing identitiesview
execExecute commandsexec.restoreVolume, exec.createVolumeSnapshot, exec.expandVolume, exec.deleteVolume, exec.deleteVolumeSnapshot
exec.createVolumeSnapshotCreate a snapshot of a volume
exec.deleteVolumeDelete a volume
exec.deleteVolumeSnapshotDelete a volume snapshot
exec.expandVolumeIncrease the storage capacity of a volume
exec.restoreVolumeRestore a volume to a snapshot
manageFull accesscreate, delete, edit, exec, exec.createVolumeSnapshot, exec.deleteVolume, exec.deleteVolumeSnapshot, exec.expandVolume, exec.restoreVolume, manage, view
viewRead-only access

Access Report

Displays the permissions granted to principals for the volume set.

CLI

To view the CLI documentation for Volume Sets, click here.

Footnotes


  1. In general, IOPS capacity varies linearly with storage capacity. The values shown in this column are the maximum possible values, and are only achievable with large volume sizes.
  2. These values are per instance, not per volume. Performance may vary.
Copyright © 2024 Control Plane Corporation. All rights reserved. Revision 971d27e5
Contents