:_mod-docs-content-type: ASSEMBLY
[id="understanding-persistent-storage"]
= Understanding persistent storage
include::_attributes/common-attributes.adoc[]
:context: understanding-persistent-storage

toc::[]

[role="_abstract"]
Persistent storage decouples data from pod lifecycles, allowing stateful applications to retain data across restarts and failures. Administrators provision persistent volumes (PVs), and developers create persistent volume claims (PVCs) to request storage without infrastructure knowledge.

include::modules/storage-persistent-storage-overview.adoc[leveloffset=+1]

include::modules/storage-persistent-storage-lifecycle.adoc[leveloffset=+1]

include::modules/storage-persistent-storage-reclaim-manual.adoc[leveloffset=+2]

include::modules/storage-persistent-storage-reclaim.adoc[leveloffset=+2]

[role="_additional-resources"]
.Additional resources
* link:https://access.redhat.com/solutions/6221251[When using Persistent Volumes with high file counts in OpenShift, why do pods fail to start or take an excessive amount of time to achieve "Ready" state? (Red{nbsp}Hat Knowledgebase)]

include::modules/storage-persistent-storage-pv.adoc[leveloffset=+1]

[role="_additional-resources"]
.Additional resources
* xref:../storage/understanding-persistent-storage.adoc#block-volume-support_understanding-persistent-storage[Block volume support]
ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]
* link:https://cloud.google.com/compute/docs/disks/attach-disks[GCP hyperdisk-balanced disk additional limitations]
* xref:../storage/container_storage_interface/persistent-storage-csi-vsphere.adoc#persistent-storage-vsphere[VMware vSphere CSI Driver Operator]
endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]
ifdef::openshift-rosa,openshift-rosa-hcp[]
* xref:../storage/container_storage_interface/persistent-storage-csi.adoc#persistent-storage-csi[Configuring CSI volumes]
endif::openshift-rosa,openshift-rosa-hcp[]

include::modules/storage-persistent-storage-pvc.adoc[leveloffset=+1]

ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]
include::modules/storage-persistent-storage-pvc-volumeattributesclass.adoc[leveloffset=+1]

include::modules/storage-persistent-storage-pvc-volumeattributesclass-apply-vac.adoc[leveloffset=+2]

include::modules/storage-persistent-storage-pvc-volumeattributesclass-delete-vac.adoc[leveloffset=+2]

endif::[]

include::modules/storage-persistent-storage-block-volume.adoc[leveloffset=+1]

// As these volumes have transitioned to being tech preview per plugin,
// this notice has been included in the previous module.
// :FeatureName: Support for raw block volumes in the volume plugins listed above
// include::snippets/technology-preview.adoc[leveloffset=+1]

include::modules/storage-persistent-storage-block-volume-examples.adoc[leveloffset=+2]

include::modules/storage-persistent-storage-fsGroup.adoc[leveloffset=+1]

include::modules/storage-persistent-storage-fsGroup-namespace.adoc[leveloffset=+2]

include::modules/storage-persistent-storage-fsGroup-pod.adoc[leveloffset=+2]

include::modules/storage-persistent-storage-selinuxChangePolicy.adoc[leveloffset=+1]

[role="_additional-resources"]
.Additional resources
* link:https://access.redhat.com/solutions/7131398[OpenShift reports SELinux-related conflicts when creating Pods (Red{nbsp}Hat Knowledgebase)]
* xref:../storage/understanding-persistent-storage.adoc#using_selinuxChangePolicy_pod-opt-out_understanding-persistent-storage[Opting out of the SELinux mount option default]

include::modules/storage-persistent-storage-selinuxChangePolicy-testing-mountoption-RWO-RWX.adoc[leveloffset=+2]

[role="_additional-resources"]
.Additional resources
* link:https://access.redhat.com/solutions/7131398[OpenShift reports SELinux-related conflicts when creating Pods (Red{nbsp}Hat Knowledgebase)]
* xref:../storage/understanding-persistent-storage.adoc#using_selinuxChangePolicy_pod-opt-out_understanding-persistent-storage[Opting out of the SELinux mount option default]

include::modules/storage-persistent-storage-selinuxChangePolicy-opt-out.adoc[leveloffset=+2]

include::modules/storage-persistent-storage-selinuxChangePolicy-namespace.adoc[leveloffset=+3]

include::modules/storage-persistent-storage-selinuxChangePolicy-pod.adoc[leveloffset=+3]

ifndef::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]
[role="_additional-resources"]
[id="additional-resources_{context}"]
== Additional resources
* xref:../nodes/clusters/nodes-cluster-enabling-features.adoc#nodes-cluster-enabling-features[Enabling features using feature gates]
endif::openshift-dedicated,openshift-rosa,openshift-rosa-hcp[]
