From bc254c0e4e6b83b3fde04b094c9be33b6790bf47 Mon Sep 17 00:00:00 2001 From: Niels de Vos Date: Mon, 12 May 2025 10:27:03 +0200 Subject: [PATCH] Add note about possibly lower available capacity on MountVolume volumes When a CreateVolume request is handled by an SP, the requested capacity does not include any potential overhead of filesystem metadata. This can cause confusion, as users may not be able to store data up to the amount of the requested size of the volume. The SP is expected to provision a volume following the capacity_range request, but the SP may not know how much storage for filesystem metadata will be required (depends on filesystem type and enabled features). In these cases, the usable capacity of the volume will be slightly smaller than the requested capacity. --- spec.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spec.md b/spec.md index 98c2baea..5cbb1ec0 100644 --- a/spec.md +++ b/spec.md @@ -786,6 +786,8 @@ Plugins MAY create 3 types of volumes: If CO requests a volume to be created from existing snapshot or volume and the requested size of the volume is larger than the original snapshotted (or cloned volume), the Plugin can either refuse such a call with `OUT_OF_RANGE` error or MUST provide a volume that, when presented to a workload by `NodePublish` call, has both the requested (larger) size and contains data from the snapshot (or original volume). Explicitly, it's the responsibility of the Plugin to resize the filesystem of the newly created volume at (or before) the `NodePublish` call, if the volume has `VolumeCapability` access type `MountVolume` and the filesystem resize is required in order to provision the requested capacity. +NOTE: The requested and reported sizes for a volume refer to the raw volume size that the SP allocated for the volume. Volumes with an `access_type` of `MountVolume` MAY have a slightly reduced available capacity due to the metadata that the filesystem stores on the volume. The underlying volume when used in `access_mode` with a value of `BlockVolume` MUST match the specified `capacity_range` request. + ```protobuf message CreateVolumeRequest { // The suggested name for the storage space. This field is REQUIRED.