Stay organized with collections
Save and categorize content based on your preferences.
This page guides you through how to prevent potential data loss or restore
failures when working with disks that were restored from backups of disks
attached to virtual machines (VMs).
Restoring an individual disk that was attached to a VM can leave behind specific
labels on the restored disk resource and its underlying PersistentVolumeClaim
(PVC) resource. Failure to remove the labels as described can lead to:
Failures during subsequent full VM restore operations.
Unintended modification or replacement of the restored disk's underlying PVC
during a subsequent full VM restore, potentially leading to data loss on the
restored disk.
Before you begin
To clean up the labels after restoring a VM-attached disk, you must have the following:
The necessary identity and access role. Ask your Organization IAM Admin to grant you the DBS Debugger (dbs-debugger) role.
Access to the appropriate kubeconfig files for the clusters managing these resources.
The kubectl command-line tool installed and configured.
Clean up labels
You must perform the cleanup for both the VirtualMachineDisk resource and its underlying PersistentVolumeClaim (PVC) resource.
Clean up the VM disk labels
To clean up the labels of a restored VM disk, follow these steps:
Get the kubeconfig file for the management API server and set the
KUBECONFIG environment variable:
RESTORED_VM_DISK_NAME: the full name of the restored
disk using the values gathered in the prerequisites. The value for this
variable can be derived from
RESTORED_PREFIX-VM_DISK_NAME.
Remove the backup scope label from the VirtualMachineDisk resource. The trailing hyphen after the label key signifies removal:
Optional: To verify that the bpvms/VM_NAME label is no longer present, you can re-run the corresponding kubectl get command, adjusting for the specific resource type and cluster:
Optional: To verify that the bpvms/VM_NAME label is no longer present, you can re-run the corresponding kubectl get command, adjusting for the specific resource type and cluster:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-29 UTC."],[],[],null,["# Clean up labels after restoring VM-attached disks\n\nThis page guides you through how to prevent potential data loss or restore\nfailures when working with disks that were restored from backups of disks\nattached to virtual machines (VMs).\n\nRestoring an individual disk that was attached to a VM can leave behind specific\nlabels on the restored disk resource and its underlying `PersistentVolumeClaim`\n(PVC) resource. Failure to remove the labels as described can lead to:\n\n- Failures during subsequent full VM restore operations.\n- Unintended modification or replacement of the restored disk's underlying PVC during a subsequent full VM restore, potentially leading to data loss on the restored disk.\n\n| **Important:** These steps are mandatory immediately after you restore an individual disk if that disk was originally attached to a VM, especially if you intend to perform full VM backups and restores involving the original VM at a later time.\n\nBefore you begin\n----------------\n\nTo clean up the labels after restoring a VM-attached disk, you must have the following:\n\n- The necessary identity and access role. Ask your Organization IAM Admin to grant you the DBS Debugger (`dbs-debugger`) role.\n- Access to the appropriate kubeconfig files for the clusters managing these resources.\n- The kubectl command-line tool installed and configured.\n\nClean up labels\n---------------\n\nYou must perform the cleanup for both the `VirtualMachineDisk` resource and its underlying `PersistentVolumeClaim` (PVC) resource.\n\n### Clean up the VM disk labels\n\nTo clean up the labels of a restored VM disk, follow these steps:\n\n1. Get the kubeconfig file for the management API server and set the\n `KUBECONFIG` environment variable:\n\n export KUBECONFIG=\u003cvar translate=\"no\"\u003ePATH_TO_MANAGEMENT_API_KUBECONFIG\u003c/var\u003e\n\n Replace \u003cvar translate=\"no\"\u003ePATH_TO_MANAGEMENT_API_KUBECONFIG\u003c/var\u003e with the\n path to the kubeconfig file. For more information, see [Zonal Management API\n server\n resources](/distributed-cloud/hosted/docs/latest/gdch/platform/pa-user/iam/sign-in#zonal-resources-kubeconfig).\n2. Check that the restored `VirtualMachineDisk` resource exists in the specified namespace:\n\n kubectl get virtualmachinedisks.virtualmachine.gdc.goog \\\n -n \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e \u003cvar translate=\"no\"\u003eRESTORED_VM_DISK_NAME\u003c/var\u003e\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e: the project namespace.\n - \u003cvar translate=\"no\"\u003eRESTORED_VM_DISK_NAME\u003c/var\u003e: the full name of the restored disk using the values gathered in the prerequisites. The value for this variable can be derived from \u003cvar translate=\"no\"\u003eRESTORED_PREFIX\u003c/var\u003e-\u003cvar translate=\"no\"\u003eVM_DISK_NAME\u003c/var\u003e.\n3. Remove the backup scope label from the `VirtualMachineDisk` resource. The trailing hyphen after the label key signifies removal:\n\n kubectl label virtualmachinedisks.virtualmachine.gdc.goog -n \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e \\\n \u003cvar translate=\"no\"\u003eRESTORED_VM_DISK_NAME\u003c/var\u003e bpvms/\u003cvar translate=\"no\"\u003eVM_NAME\u003c/var\u003e-\n\n Replace \u003cvar translate=\"no\"\u003eVM_NAME\u003c/var\u003e with the name of the restored VM.\n4. Optional: To verify that the `bpvms/`\u003cvar translate=\"no\"\u003eVM_NAME\u003c/var\u003e label is no longer present, you can re-run the corresponding `kubectl get` command, adjusting for the specific resource type and cluster:\n\n kubectl get virtualmachinedisks.virtualmachine.gdc.goog \\\n -n \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e \u003cvar translate=\"no\"\u003eVM_NAME\u003c/var\u003e\n\n### Clean up the PVC labels\n\nTo clean up the labels of the underlying PVC, follow these steps:\n\n1. Get the kubeconfig file for the org infrastructure cluster and set the `KUBECONFIG` environment variable:\n\n export KUBECONFIG=\u003cvar translate=\"no\"\u003ePATH_TO_ORG_INFRA_KUBECONFIG\u003c/var\u003e\n\n Replace \u003cvar translate=\"no\"\u003ePATH_TO_ORG_INFRA_KUBECONFIG\u003c/var\u003e with the path\n to the kubeconfig file.\n2. Check that the underlying PVC for the restored disk exists in the specified namespace:\n\n kubectl get pvc -n \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e \\\n \u003cvar translate=\"no\"\u003eRESTORED_VM_DISK_NAME\u003c/var\u003e\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e: the project namespace.\n - \u003cvar translate=\"no\"\u003eRESTORED_VM_DISK_NAME\u003c/var\u003e: the name of the restored VM disk.\n3. Remove the backup scope label from the PVC. The trailing hyphen after the label key signifies removal:\n\n kubectl label pvc -n \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e \u003cvar translate=\"no\"\u003eRESTORED_VM_DISK_NAME\u003c/var\u003e bpvms/\u003cvar translate=\"no\"\u003eVM_NAME\u003c/var\u003e-\n\n Replace \u003cvar translate=\"no\"\u003eVM_NAME\u003c/var\u003e with the name of the restored VM.\n4. Optional: To verify that the `bpvms/`\u003cvar translate=\"no\"\u003eVM_NAME\u003c/var\u003e label is no longer present, you can re-run the corresponding `kubectl get` command, adjusting for the specific resource type and cluster:\n\n kubectl get pvc -n \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e \\\n \u003cvar translate=\"no\"\u003eVM_NAME\u003c/var\u003e"]]