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.
Each volume set has a single, immutable file system.
Currently supported file systems are:
Each volume set has a single, immutable, performance class.
The performance class determines:
Volume performance varies widely by cloud service provider.
Name: general-purpose-ssd
Minimum Capacity: 10Gb
Maximum Capacity: 16384Gb
Service Provider | Max Throughput | Max IOPS |
---|---|---|
AWS | 750 MB/s | 3000 |
GCP | 1200 MB/s | 800002 |
Azure | 750 MB/s | 6000 |
Name: premium-low-latency-ssd
Minimum Capacity: 10Gb
Maximum Capacity: 16384Gb
Service Provider | Max Throughput | Max IOPS 1 |
---|---|---|
AWS | 1000 MB/s | 5/GB |
GCP | 1200 MB/s | 1000002 |
Azure | 900 MB/s | 20000 |
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
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.
Spec:
For example:
expandVolume Commandcopy{"type": "expandVolume","spec": {"location": "aws-sa-east-1","volumeIndex": 0,"newStorageCapacity": 11}}
To delete a volume, issue a deleteVolume
command.
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.
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:
For example:
deleteVolume Commandcopy{"type": "deleteVolume","spec": {"location": "aws-sa-east-1","volumeIndex": 0}}
Each volume in a set has its own list of snapshots. You manipulate snapshots by issuing commands to the volume set.
Take a snapshot for a given volume (specified by location and volume index). snapshotName
must be unique for the target volume.
Spec:
For example:
createVolumeSnapshot Commandcopy{"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"}}}
Delete the specified snapshot. Spec:
For example:
deleteVolumeSnapshot Commandcopy{"type": "deleteVolumeSnapshot","spec": {"location": "aws-sa-east-1","volumeIndex": 0,"snapshotName": "snap-0"}}
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.
For example:
restoreVolume Commandcopy{"type": "restoreVolume","spec": {"location": "aws-sa-east-1","volumeIndex": 0,"snapshotName": "snap-0"}}
Volume sets are supported in BYOK locations as long as the following prerequisites are met:
The cluster must have a CSI-compatible storage driver installed.
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
The permissions below are used to define policies together with one or more of the four principal types:
Permission | Description | Implies |
---|---|---|
create | Create new volumesets | |
delete | Delete existing identities | |
edit | Modify existing identities | view |
exec | Execute commands | exec.restoreVolume, exec.createVolumeSnapshot, exec.expandVolume, exec.deleteVolume, exec.deleteVolumeSnapshot |
exec.createVolumeSnapshot | Create a snapshot of a volume | |
exec.deleteVolume | Delete a volume | |
exec.deleteVolumeSnapshot | Delete a volume snapshot | |
exec.expandVolume | Increase the storage capacity of a volume | |
exec.restoreVolume | Restore a volume to a snapshot | |
manage | Full access | create, delete, edit, exec, exec.createVolumeSnapshot, exec.deleteVolume, exec.deleteVolumeSnapshot, exec.expandVolume, exec.restoreVolume, manage, view |
view | Read-only access |
Displays the permissions granted to principals for the volume set.
To view the CLI documentation for Volume Sets, click here.