// Module included in the following assemblies:
//
// * virt/install/virt-requirements.adoc

:_mod-docs-content-type: REFERENCE
[id="virt-storage-requirements_{context}"]
= Storage requirements

[role="_abstract"]
{VirtProductName} requires {product-title}-supported storage with specific configuration for VM workloads and snapshots.

Storage requirements for {VirtProductName}::

ifndef::openshift-rosa,openshift-dedicated,openshift-rosa-hcp[]
* Storage must be supported by {product-title}. For more information, see "Optimizing storage" in the Additional resources section.
endif::openshift-rosa,openshift-dedicated,openshift-rosa-hcp[]
ifdef::openshift-rosa,openshift-dedicated,openshift-rosa-hcp[]
* Storage must be supported by {product-title}.
endif::openshift-rosa,openshift-dedicated,openshift-rosa-hcp[]
ifndef::openshift-rosa,openshift-dedicated,openshift-rosa-hcp[]
* You must create a default {VirtProductName} or {product-title} storage class. The purpose of this is to address the unique storage needs of VM workloads and offer optimized performance, reliability, and user experience. If both {VirtProductName} and {product-title} default storage classes exist, the {VirtProductName} class takes precedence when creating VM disks.
+
[NOTE]
====
To mark a storage class as the default for virtualization workloads, set the annotation `storageclass.kubevirt.io/is-default-virt-class` to `"true"`.
====
endif::openshift-rosa,openshift-dedicated,openshift-rosa-hcp[]

* If the storage provisioner supports snapshots, you must associate a `VolumeSnapshotClass` object with the default storage class.
