// Module included in the following assemblies:
//
// * virt/storage/virt-preparing-cdi-scratch-space.adoc

:_mod-docs-content-type: CONCEPT
[id="virt-about-scratch-space_{context}"]
= About scratch space

[role="_abstract"]
The Containerized Data Importer (CDI) requires scratch space (temporary storage) to complete some operations, such as importing and uploading virtual machine images.
During this process, CDI provisions a scratch space PVC equal to the size of the PVC backing the destination data volume (DV).

The scratch space PVC is deleted after the operation completes or aborts.

You can define the storage class that is used to bind the scratch space PVC in the `spec.storage.scratchSpaceStorageClass` field of the `HyperConverged` custom resource.

If the defined storage class does not match a storage class in the cluster, then the default storage class defined for the cluster is used.
If there is no default storage class defined in the cluster, the storage class used to provision the original DV or PVC is used.

[NOTE]
====
CDI requires requesting scratch space with a `file` volume mode, regardless of the PVC backing the origin data volume.
If the origin PVC is backed by `block` volume mode, you must define a storage class capable of provisioning `file` volume mode PVCs.
====

== Manual provisioning

If there are no storage classes, CDI uses any PVCs in the project that match the size requirements for the image.
If there are no PVCs that match these requirements, the CDI import pod remains in a *Pending* state until an appropriate PVC is made available or until a timeout function kills the pod.
