From f319d439676e33e1c3599d37a1bed402290857f7 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 b4525616..5fe86c5a 100644 --- a/spec.md +++ b/spec.md @@ -790,6 +790,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 less available capacity due to the overhead of filesystem metadata (exact amount depends on filesystem). 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.