From db625ec66a5f15131a7d728647bf4418946f0178 Mon Sep 17 00:00:00 2001 From: Bob Gaydos Date: Thu, 10 Nov 2022 18:04:12 -0500 Subject: [PATCH] CNV-15757: Data volume garbage collection --- _topic_maps/_topic_map.yml | 2 -- modules/virt-about-datavolumes.adoc | 16 ++++++---- modules/virt-deleting-dvs.adoc | 30 ------------------- modules/virt-deleting-virt-cli.adoc | 9 +++--- modules/virt-listing-dvs.adoc | 19 ------------ virt/install/uninstalling-virt.adoc | 10 +++++-- ...user-permissions-to-clone-datavolumes.adoc | 2 -- ...ning-a-datavolume-using-smart-cloning.adoc | 2 ++ .../virt-creating-data-volumes.adoc | 4 ++- .../virt-deleting-datavolumes.adoc | 17 ----------- 10 files changed, 27 insertions(+), 84 deletions(-) delete mode 100644 modules/virt-deleting-dvs.adoc delete mode 100644 modules/virt-listing-dvs.adoc delete mode 100644 virt/virtual_machines/virtual_disks/virt-deleting-datavolumes.adoc diff --git a/_topic_maps/_topic_map.yml b/_topic_maps/_topic_map.yml index 90b1396df4..59ccd97a02 100644 --- a/_topic_maps/_topic_map.yml +++ b/_topic_maps/_topic_map.yml @@ -3625,8 +3625,6 @@ Topics: File: virt-reusing-statically-provisioned-persistent-volumes - Name: Expanding a virtual machine disk File: virt-expanding-vm-disk - - Name: Deleting data volumes - File: virt-deleting-datavolumes # Templates - Name: Virtual machine templates Dir: vm_templates diff --git a/modules/virt-about-datavolumes.adoc b/modules/virt-about-datavolumes.adoc index c3d5da2087..c54a15b9da 100644 --- a/modules/virt-about-datavolumes.adoc +++ b/modules/virt-about-datavolumes.adoc @@ -1,5 +1,7 @@ // Module included in the following assemblies: // +// * virt/virtual_machines/virtual_disks/virt-creating-data-volumes.adoc +// * virt/virtual_machines/virtual_disks/virt-cloning-a-datavolume-using-smart-cloning.adoc // * virt/virtual_machines/virtual_disks/virt-expanding-virtual-storage-with-blank-disk-images.adoc // * virt/virtual_machines/virtual_disks/virt-uploading-local-disk-images-block.adoc // * virt/virtual_machines/virtual_disks/virt-preparing-cdi-scratch-space.adoc @@ -10,12 +12,16 @@ // * virt/virtual_machines/importing_vms/virt-importing-virtual-machine-images-datavolumes.adoc // * virt/virtual_machines/importing_vms/virt-importing-virtual-machine-images-datavolumes-block.adoc + :_content-type: CONCEPT [id="virt-about-datavolumes_{context}"] = About data volumes -`DataVolume` objects are custom resources that are provided by the Containerized -Data Importer (CDI) project. Data volumes orchestrate import, clone, and upload -operations that are associated with an underlying persistent volume claim (PVC). -Data volumes are integrated with {VirtProductName}, and they prevent a virtual machine -from being started before the PVC has been prepared. +`DataVolume` objects are custom resources that are provided by the Containerized Data Importer (CDI) project. Data volumes orchestrate import, clone, and upload operations that are associated with an underlying persistent volume claim (PVC). You can create a data volume as either a standalone resource or by using the `dataVolumeTemplate` field in the virtual machine (VM) specification. + +[NOTE] +==== +* VM disk PVCs that are prepared by using standalone data volumes maintain an independent lifecycle from the VM. If you use the `dataVolumeTemplate` field in the VM specification to prepare the PVC, the PVC shares the same lifecycle as the VM. +==== + +After a PVC is populated, the data volume that you used to create the PVC is no longer needed. {VirtProductName} enables automatic garbage collection of completed data volumes by default. Standalone data volumes, and data volumes created by using the `dataVolumeTemplate` resource, are automatically garbage collected after completion. diff --git a/modules/virt-deleting-dvs.adoc b/modules/virt-deleting-dvs.adoc deleted file mode 100644 index 2f4fa1fc2d..0000000000 --- a/modules/virt-deleting-dvs.adoc +++ /dev/null @@ -1,30 +0,0 @@ -// Module included in the following assemblies: -// -// * virt/virtual_machines/virt-deleting-datavolumes.adoc - -:_content-type: PROCEDURE -[id="virt-deleting-dvs_{context}"] - -= Deleting a data volume - -You can delete a data volume by using the `oc` command-line interface (CLI). - -.Prerequisites - -* Identify the name of the data volume that you want to delete. - -.Procedure - -* Delete the data volume by running the following command: -+ -[source,terminal] ----- -$ oc delete dv ----- -+ -[NOTE] -==== -This command only deletes objects that exist in the current project. Specify the -`-n ` option if the object you want to delete is in -a different project or namespace. -==== diff --git a/modules/virt-deleting-virt-cli.adoc b/modules/virt-deleting-virt-cli.adoc index ca696ff43e..bc0f6c8c58 100644 --- a/modules/virt-deleting-virt-cli.adoc +++ b/modules/virt-deleting-virt-cli.adoc @@ -6,14 +6,13 @@ [id="virt-deleting-virt-cli_{context}"] = Uninstalling {VirtProductName} by using the CLI -You can uninstall {VirtProductName} by using the xref:../../cli_reference/openshift_cli/getting-started-cli.adoc#cli-getting-started[command line interface (CLI)]. +You can uninstall {VirtProductName} by using the OpenShift CLI (`oc`). .Prerequisites * You have access to an {product-title} cluster using an account with `cluster-admin` permissions. -* You have installed the OpenShift CLI (oc). -* You have deleted all xref:../../virt/virtual_machines/virt-delete-vms.adoc#virt-delete-vm-web_virt-delete-vms[virtual machines], xref:../../virt/virtual_machines/virt-manage-vmis.adoc#virt-deleting-vmis-cli_virt-manage-vmis[virtual machine instances], -and xref:../../virt/virtual_machines/virtual_disks/virt-deleting-datavolumes.adoc#virt-deleting-dvs_virt-deleting-datavolumes[data volumes]. You cannot uninstall {VirtProductName} while its workloads remain on the cluster. +* You have installed the OpenShift CLI (`oc`). +* You have deleted all virtual machines and virtual machine instances. You cannot uninstall {VirtProductName} while its workloads remain on the cluster. .Procedure @@ -61,4 +60,4 @@ customresourcedefinition.apiextensions.k8s.io "tektontasks.tektontasks.kubevirt. [source,terminal] ---- $ oc delete crd -l operators.coreos.com/kubevirt-hyperconverged.openshift-cnv ----- \ No newline at end of file +---- diff --git a/modules/virt-listing-dvs.adoc b/modules/virt-listing-dvs.adoc deleted file mode 100644 index 19bd7f0b3c..0000000000 --- a/modules/virt-listing-dvs.adoc +++ /dev/null @@ -1,19 +0,0 @@ -// Module included in the following assemblies: -// -// * virt/virtual_machines/virt-deleting-datavolumes.adoc - -:_content-type: PROCEDURE -[id="virt-listing-dvs_{context}"] - -= Listing all data volumes - -You can list the data volumes in your cluster by using the `oc` command-line interface. - -.Procedure - -* List all data volumes by running the following command: -+ -[source,terminal] ----- -$ oc get dvs ----- diff --git a/virt/install/uninstalling-virt.adoc b/virt/install/uninstalling-virt.adoc index c5f6c23089..5044860618 100644 --- a/virt/install/uninstalling-virt.adoc +++ b/virt/install/uninstalling-virt.adoc @@ -20,8 +20,7 @@ You uninstall {VirtProductName} by using the xref:../../web_console/web-console. [IMPORTANT] ==== -You must first delete all xref:../../virt/virtual_machines/virt-delete-vms.adoc#virt-delete-vm-web_virt-delete-vms[virtual machines], xref:../../virt/virtual_machines/virt-manage-vmis.adoc#virt-deleting-vmis-cli_virt-manage-vmis[virtual machine instances], -and xref:../../virt/virtual_machines/virtual_disks/virt-deleting-datavolumes.adoc#virt-deleting-dvs_virt-deleting-datavolumes[data volumes]. +You must first delete all xref:../../virt/virtual_machines/virt-delete-vms.adoc#virt-delete-vm-web_virt-delete-vms[virtual machines], and xref:../../virt/virtual_machines/virt-manage-vmis.adoc#virt-deleting-vmis-cli_virt-manage-vmis[virtual machine instances]. You cannot uninstall {VirtProductName} while its workloads remain on the cluster. ==== @@ -34,4 +33,9 @@ include::modules/deleting-a-namespace-using-the-web-console.adoc[leveloffset=+2] include::modules/virt-deleting-virt-crds-web.adoc[leveloffset=+2] -include::modules/virt-deleting-virt-cli.adoc[leveloffset=+1] \ No newline at end of file +include::modules/virt-deleting-virt-cli.adoc[leveloffset=+1] + +[role="_additional-resources"] +.Additional resources +* xref:../../virt/virtual_machines/virt-delete-vms.adoc#virt-delete-vm-web_virt-delete-vms[Deleting virtual machines] +* xref:../../virt/virtual_machines/virt-manage-vmis.adoc#virt-deleting-vmis-cli_virt-manage-vmis[Deleting virtual machine instances] diff --git a/virt/virtual_machines/cloning_vms/virt-enabling-user-permissions-to-clone-datavolumes.adoc b/virt/virtual_machines/cloning_vms/virt-enabling-user-permissions-to-clone-datavolumes.adoc index 62d883b109..1ee70302cd 100644 --- a/virt/virtual_machines/cloning_vms/virt-enabling-user-permissions-to-clone-datavolumes.adoc +++ b/virt/virtual_machines/cloning_vms/virt-enabling-user-permissions-to-clone-datavolumes.adoc @@ -22,5 +22,3 @@ role can create cluster roles. include::modules/virt-about-datavolumes.adoc[leveloffset=+1] include::modules/virt-creating-rbac-cloning-dvs.adoc[leveloffset=+1] - - diff --git a/virt/virtual_machines/virtual_disks/virt-cloning-a-datavolume-using-smart-cloning.adoc b/virt/virtual_machines/virtual_disks/virt-cloning-a-datavolume-using-smart-cloning.adoc index 02c05ac5ef..98d7833be9 100644 --- a/virt/virtual_machines/virtual_disks/virt-cloning-a-datavolume-using-smart-cloning.adoc +++ b/virt/virtual_machines/virtual_disks/virt-cloning-a-datavolume-using-smart-cloning.adoc @@ -12,6 +12,8 @@ You do not need to perform any action to enable smart-cloning, but you need to e When you create a data volume with a persistent volume claim (PVC) source, you automatically initiate the cloning process. You always receive a clone of the data volume if your environment supports smart-cloning or not. However, you will only receive the performance benefits of smart cloning if your storage provider supports smart-cloning. +include::modules/virt-about-datavolumes.adoc[leveloffset=+1] + include::modules/virt-about-smart-cloning.adoc[leveloffset=+1] include::modules/virt-cloning-a-datavolume.adoc[leveloffset=+1] diff --git a/virt/virtual_machines/virtual_disks/virt-creating-data-volumes.adoc b/virt/virtual_machines/virtual_disks/virt-creating-data-volumes.adoc index acc665701e..b98dd719dc 100644 --- a/virt/virtual_machines/virtual_disks/virt-creating-data-volumes.adoc +++ b/virt/virtual_machines/virtual_disks/virt-creating-data-volumes.adoc @@ -6,7 +6,7 @@ include::_attributes/common-attributes.adoc[] toc::[] -When you create a data volume, the Containerized Data Importer (CDI) creates a persistent volume claim (PVC) and populates the PVC with your data. You can create a data volume as either a standalone resource or by using a `dataVolumeTemplate` resource in a virtual machine specification. You create a data volume by using either the PVC API or storage APIs. +You can create a data volume by using either the PVC or storage API. [IMPORTANT] ==== @@ -26,6 +26,8 @@ Storage profiles enable you to create data volumes quickly while reducing coding For recognized storage types, the CDI provides values that optimize the creation of PVCs. However, you can configure automatic settings for a storage class if you customize the storage profile. +include::modules/virt-about-datavolumes.adoc[leveloffset=+1] + include::modules/virt-creating-data-volumes-using-storage-api.adoc[leveloffset=+1] include::modules/virt-creating-data-volumes-using-pvc-api.adoc[leveloffset=+1] diff --git a/virt/virtual_machines/virtual_disks/virt-deleting-datavolumes.adoc b/virt/virtual_machines/virtual_disks/virt-deleting-datavolumes.adoc deleted file mode 100644 index 0ee6d19c73..0000000000 --- a/virt/virtual_machines/virtual_disks/virt-deleting-datavolumes.adoc +++ /dev/null @@ -1,17 +0,0 @@ -:_content-type: ASSEMBLY -[id="virt-deleting-datavolumes"] -= Deleting data volumes -include::_attributes/common-attributes.adoc[] -:context: virt-deleting-datavolumes - -toc::[] - -You can manually delete a data volume by using the `oc` command-line interface. + -[NOTE] -==== -When you delete a virtual machine, the data volume it uses is automatically deleted. -==== - -include::modules/virt-about-datavolumes.adoc[leveloffset=+1] -include::modules/virt-listing-dvs.adoc[leveloffset=+1] -include::modules/virt-deleting-dvs.adoc[leveloffset=+1]