A volume set is a collection of storage volumes, which may be linked to one or more workloads running on Control Plane. The behavior varies greatly depending on your choice of filesystem.
The shared filesystem does not support:
createVolumeSnapshot
deleteVolumeSnapshot
restoreVolume
deleteVolume
expandVolume
command.deleteVolume
command, or when the volume set itself is deleted.The spec.autoscaling
object allows you to specify rules for automatically expanding volumes in the set. The available options are:
maxCapacity
: The largest allowable size for any volume in the set.minFreePercentage
: This must be a number between 1 and 100. When the free percentage on any volume drops below this threshold, Control Plane will issue an expandVolume
command automatically.scalingFactor
: This must be a number 1. When a volume must be expanded, the new capacity will be (the minimum size to ensure minFreePercentage
) scalingFactor
. E.g. if a volume is using 8/10 GB, and the minFreePercentage
is 50, the new capacity will be 16 scalingFactor
, assuming that product is maxCapacity
.For example:
Snapshots can be taken at any time and (optionally) on a regular schedule. To set up automatic snapshotting, you may use the spec.snapshots
object. Options include:
retentionDuration
: The length of time to retain a newly created snapshot. This should be a floating point number followed by either d, h, or m (for day, hour or minute)schedule
: A cron expression describing the snapshot frequency. Snapshots cannot be taken more frequently than once per hour.Currently supported file systems are:
For the shared file system only, you will be charged CPU and memory per mount point. Shared volumes must be mounted once per node.
You can control the minimum and maximum resource allocations per mount point using the mountOptions
property. e.g.
minCpu
and maxCpu
can be at most 4000m apartminCpu
and maxCpu
must be at least 1:4minMemory
and maxMemory
can be at most 4096Mi apartminMemory
and maxMemory
must be at least 1:4Each 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 | 125 MB/s | 3000 |
GCP | 1200 MB/s | 80000 |
Azure | 125 MB/s | 3000 |
high-throughput-ssd
Minimum Capacity: 200Gb
Maximum Capacity: 16384Gb
Service Provider | Max Throughput | Max IOPS |
---|---|---|
AWS | 400 MB/s | 4600 |
GCP | 1200 MB/s | 100000 |
Azure | 1200 MB/s | 15500 |
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 an expandVolume
command. If the volume set is in-use by a workload, the corresponding workload replica will be restarted.
Spec:
For example:
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:
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:
Delete the specified snapshot.
Spec:
For example:
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.
This operation creates an entirely new volume using the given snapshot. All unsaved data on the original volume will be lost.
Spec:
For example:
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.