---
title: "What is a persistent volume?"
canonical: https://enum.co/learn/what-is-a-persistent-volume
locale: en
topic: Kubernetes
publishedAt: 2026-10-28
updatedAt: 2026-10-28
author: "Max Heyer"
summary: "A persistent volume is Kubernetes storage that outlives the Pods using it, so databases and queues keep their data across restarts and rescheduling."
---

# What is a persistent volume?

A persistent volume is Kubernetes storage that outlives the Pods using it, so databases and queues keep their data across restarts and rescheduling.

After reading this you will be able to:

- Explain how PersistentVolumes and PersistentVolumeClaims work together
- Pick the right access mode for a workload
- Choose a reclaim policy that will not lose data

## What is a persistent volume?

A persistent volume (PV) is a piece of storage in a Kubernetes cluster whose lifecycle is independent of any Pod. An administrator creates it ahead of time, or the cluster provisions it on demand from a StorageClass. When a Pod is deleted or moved to another node, the data on the volume stays.

Think of a locker at a gym. You change clothes, leave and come back next week, and your things are still in the locker. A Pod is the visit, and the persistent volume is the locker.

## How do PVs and PVCs fit together?

A PersistentVolumeClaim (PVC) is a request for storage: a size and an access mode. A control loop in the control plane finds a matching PV and binds the two one to one. The Pod then mounts the claim, not the volume itself.

### Static and dynamic provisioning

With static provisioning, an administrator creates PVs in advance and claims pick from them. With dynamic provisioning, the claim names a StorageClass and the cluster creates a volume for it. A claim with no matching volume stays unbound until one appears.

### Resizing

You can grow a claim when its StorageClass sets `allowVolumeExpansion` to true. Kubernetes cannot shrink a claim below its current size, so start small and grow later.

## Which access mode do you need?

The access mode says how many nodes or Pods can mount a volume at once:

- ReadWriteOnce: read-write from a single node. Several Pods on that same node can still use it.
- ReadOnlyMany: read-only from many nodes.
- ReadWriteMany: read-write from many nodes, which needs shared file storage behind it.
- ReadWriteOncePod: read-write from exactly one Pod in the whole cluster. Only CSI volumes support it.

A database on block storage usually needs ReadWriteOnce or ReadWriteOncePod. A volume can be presented as a mounted filesystem, the default, or as a raw block device.

## What happens when you delete the claim?

The reclaim policy decides. Delete removes the volume and its data, and dynamically provisioned volumes inherit Delete from their StorageClass by default. Retain keeps the volume so you can recover the data by hand. Recycle is deprecated.

Kubernetes also refuses to remove a claim while a Pod uses it, or a volume while it is bound. That protects against accidents, not against a deliberate delete, so production data still needs backups.

## How enum handles persistent volumes

[enum Block Storage](/block-storage) provides PersistentVolumes for enum Kubernetes Engine through a CSI driver, with dynamic provisioning and online resizing. Volumes sit on NVMe, every write is replicated synchronously to three independent failure domains in one zone, and data is encrypted at rest with AES-256. Shared ReadWriteMany file storage is not offered, so ask us about your options.

## FAQ

**Does a persistent volume survive a node failure?**
That depends on the storage behind it. A volume on a node's local disk goes down with the node. Network block storage can be attached to another node, so the rescheduled Pod finds its data again.

**Is a persistent volume the same as a backup?**
No. Replication protects against a failed disk or server, but a deleted file or a dropped table is gone on every copy. Keep backups outside the cluster, for example in object storage with versioning.

**Can I use ReadWriteMany on block storage?**
Not with an ordinary filesystem such as ext4, which expects a single node to write to it. ReadWriteMany needs file storage that coordinates writes between nodes, or an application built to share a raw block device.
