Volume Provisioning: Thin vs. Thick

Private Cloud Director supports two volume provisioning modes for block storage: thin provisioning and thick provisioning. The mode is determined by the storage driver and can be controlled through Volume Type extra-specs.

How Provisioning Modes Work

Thick Provisioning

With thick provisioning, the entire requested volume capacity is reserved on the storage backend at creation time. A 100 GiB volume immediately occupies 100 GiB of physical storage, regardless of how much data the volume actually holds.

When to use thick provisioning:

  • Workloads that require predictable I/O performance with no first-write overhead.

  • Environments where strict capacity accounting is required (for example, financial or compliance-sensitive deployments).

  • Backends where you want to guarantee that physical space will always be available for the volume.

Thin Provisioning

With thin provisioning, the Persistent Storage Service creates the logical volume but allocates physical storage only as data is written. A 100 GiB thin-provisioned volume may initially occupy only a few megabytes of physical capacity.

Thin provisioning enables over-allocation: the sum of all logical volume sizes can exceed the total physical capacity of the backend pool. This is useful for environments where volumes are sparsely populated (for example, development or test workloads), but it requires careful monitoring to avoid running out of physical space.

When to use thin provisioning:

  • Environments where storage efficiency matters and volumes are not fully written.

  • Test or development clusters where flexibility is more important than guaranteed space.

  • Storage backends that natively default to thin (for example, Ceph RBD, Pure Storage).

Driver and Backend Dependency

Not all storage drivers support both provisioning modes. Some drivers default to thin provisioning and do not expose a configurable option; others support both modes and expose a selection mechanism through Volume Type extra-specs or driver-level configuration.

The Persistent Storage Service relies on drivers to report accurate capacity data. The max_over_subscription_ratio and reserved_percentage settings in the backend configuration influence how the Persistent Storage Service evaluates available space, but their effectiveness depends on accurate driver reporting.

Refer to your storage vendor's driver documentation for the authoritative list of capabilities supported for your backend.

Driver Support Summary

The following table summarizes thin and thick provisioning support for commonly used drivers. Consult the vendor's driver documentation for full details and any version-specific constraints.

Driver
Provisioning Support
Notes

Ceph RBD

Thin (default)

Thin provisioning is the native RBD behavior; thick is not typically available.

Dell PowerFlex

Both (configurable)

Controlled via Volume Type extra-specs.

Dell PowerMax

Both (configurable)

Controlled via Volume Type extra-specs.

HPE Alletra/Primera

Both (configurable)

Selected via Volume Type extra-specs.

LVM

Both (configurable)

Thin provisioning is enabled by setting lvm_type=thin in the driver configuration.

NetApp Unified

Both (configurable)

Controlled via Volume Type extra-specs.

NFS

Thin (default)

Thin behavior is controlled by the nfs_sparsed_volumes driver option (True by default).

Pure Storage

Thin (default)

Thin provisioning is the native behavior; thick is not typically available.

Configuring Provisioning Type via Volume Types

For drivers that support both modes, the provisioning type is specified in the Volume Type extra-specs. Volume Types are created and managed in the Private Cloud Director UI under Storage > Volume Types, or via the pcdctl CLI.

Setting extra-specs

Add the following extra-spec key to the Volume Type:

Extra-spec key
Value
Effect

provisioning:type

thin

Requests thin provisioning.

provisioning:type

thick

Requests thick provisioning.

Example: creating Volume Types with the Pcdctl CLI

LVM-specific configuration

For the LVM driver, thin provisioning is enabled at the driver level rather than via a Volume Type extra-spec:

Refer to the LVM driver documentation for full configuration details.

Monitoring Guidance

Thin provisioning introduces a gap between logical volume sizes and physical storage consumption. The Persistent Storage Service does not expose physical pool utilization directly. Use storage-backend-specific tooling to monitor physical usage:

  • Configure capacity alerts on the backend storage system or management layer.

  • Track pool utilization alongside logical allocation to detect over-subscription before it causes write failures.

  • When max_over_subscription_ratio is tuned to allow higher over-subscription, more frequent monitoring is warranted.

Last updated

Was this helpful?