Pulire le etichette dopo il ripristino dei dischi collegati alla VM

Questa pagina ti guida su come evitare potenziali perdite di dati o errori di ripristino quando lavori con dischi ripristinati da backup di dischi collegati a macchine virtuali (VM).

Il ripristino di un singolo disco collegato a una VM può lasciare etichette specifiche nella risorsa disco ripristinata e nella relativa risorsa PersistentVolumeClaim (PVC) sottostante. La mancata rimozione delle etichette come descritto può comportare:

  • Errori durante le successive operazioni di ripristino completo della VM.
  • Modifica o sostituzione involontaria del PVC sottostante del disco ripristinato durante un successivo ripristino completo della VM, con conseguente potenziale perdita di dati sul disco ripristinato.

Prima di iniziare

Per pulire le etichette dopo il ripristino di un disco collegato a una VM, devi disporre di quanto segue:

  • Il ruolo di identità e accesso necessario. Chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Debugger DBS (dbs-debugger).
  • Accesso ai file kubeconfig appropriati per i cluster che gestiscono queste risorse.
  • Lo strumento a riga di comando kubectl installato e configurato.

Organizzare le etichette

Devi eseguire la pulizia sia della risorsa VirtualMachineDisk sia della risorsa PersistentVolumeClaim (PVC) sottostante.

Pulisci le etichette dei dischi VM

Per pulire le etichette di un disco VM ripristinato:

  1. Recupera il file kubeconfig per il server API di gestione e imposta la variabile di ambiente KUBECONFIG:

    export KUBECONFIG=PATH_TO_MANAGEMENT_API_KUBECONFIG
    

    Sostituisci PATH_TO_MANAGEMENT_API_KUBECONFIG con il percorso del file kubeconfig. Per saperne di più, consulta Risorse del server dell'API Zonal Management.

  2. Verifica che la risorsa VirtualMachineDisk ripristinata esista nello spazio dei nomi specificato:

    kubectl get virtualmachinedisks.virtualmachine.gdc.goog \
    -n NAMESPACE RESTORED_VM_DISK_NAME
    

    Sostituisci quanto segue:

    • NAMESPACE: lo spazio dei nomi del progetto.
    • RESTORED_VM_DISK_NAME: il nome completo del disco ripristinato utilizzando i valori raccolti nei prerequisiti. Il valore di questa variabile può essere derivato da RESTORED_PREFIX-VM_DISK_NAME.
  3. Rimuovi l'etichetta dell'ambito di backup dalla risorsa VirtualMachineDisk. Il trattino finale dopo la chiave dell'etichetta indica la rimozione:

    kubectl label virtualmachinedisks.virtualmachine.gdc.goog -n NAMESPACE \
        RESTORED_VM_DISK_NAME bpvms/VM_NAME-
    

    Sostituisci VM_NAME con il nome della VM ripristinata.

  4. (Facoltativo) Per verificare che l'etichetta bpvms/VM_NAME non sia più presente, puoi eseguire di nuovo il comando kubectl get corrispondente, modificandolo in base al tipo di risorsa e al cluster specifici:

    kubectl get virtualmachinedisks.virtualmachine.gdc.goog \
    -n NAMESPACE VM_NAME
    

Pulisci le etichette della PVC

Per pulire le etichette del PVC sottostante:

  1. Recupera il file kubeconfig per il cluster di infrastruttura dell'organizzazione e imposta la variabile di ambiente KUBECONFIG:

    export KUBECONFIG=PATH_TO_ORG_INFRA_KUBECONFIG
    

    Sostituisci PATH_TO_ORG_INFRA_KUBECONFIG con il percorso del file kubeconfig.

  2. Verifica che la PVC sottostante per il disco ripristinato esista nello spazio dei nomi specificato:

    kubectl get pvc -n NAMESPACE \
        RESTORED_VM_DISK_NAME
    

    Sostituisci quanto segue:

    • NAMESPACE: lo spazio dei nomi del progetto.
    • RESTORED_VM_DISK_NAME: il nome del disco VM ripristinato.
  3. Rimuovi l'etichetta dell'ambito di backup dalla PVC. Il trattino finale dopo la chiave dell'etichetta indica la rimozione:

    kubectl label pvc -n NAMESPACE RESTORED_VM_DISK_NAME bpvms/VM_NAME-
    

    Sostituisci VM_NAME con il nome della VM ripristinata.

  4. (Facoltativo) Per verificare che l'etichetta bpvms/VM_NAME non sia più presente, puoi eseguire di nuovo il comando kubectl get corrispondente, modificandolo in base al tipo di risorsa e al cluster specifici:

    kubectl get pvc -n NAMESPACE \
        VM_NAME