VMWare – Restore delle VM tramite script ghettoVCB (Part 3)

Published by Lello on

Abbiamo visto precedentemente come effettuare i backup di VM tramite script ghettoVCB. Vedremo in questo post come effettuare il restore di una VM.

Entriamo in SSH nel nostro server VMWare ESXi; supponiamo che la macchina su cui vogliamo operare sia la VM con ID=19 (OPNSense); procederemo al restore tramite riga di comando con accesso SSH al server VMWare ESXi. Chiaramente il nostro server ESXi deve avere montato un FS su cui si trovi il backup della VM.

# vim-cmd vmsvc/getallvm
 Vmid         Name                                File                             Guest OS       Version   Annotation
 ......
 19     OPNSense           [datastore1] OPNSense/OPNSense.vmx                   freebsd64Guest    vmx-13
......

La procedura che seguiremo per eseguire il restore della VM è la seguente:

  1. spegnere la VM ed effettuarne l’unregister;
  2. cancellarla (o meglio rinominare la directory che ospita la VM);
  3. procedere con il restore

Cominciamo a spegnere la VM; abbiamo trovato che l’ID della VM su cui lavorare sia il 19; controlliamo lo stato della macchina, e se fosse “Powered ON” (cioè accesa), procediamo con lo spegnimento:

# vim-cmd vmsvc/power.getstate 19
 Retrieved runtime info
 Powered on
# vim-cmd vmsvc/power.shutdown 19
..... aspettiamo qualche minuto ...
# vim-cmd vmsvc/power.getstate 19
 Retrieved runtime info
 Powered off

Procediamo con il passo seguente: unregister e moving della directory

# vim-cmd vmsvc/unregister 19
# mv /vmfs/volumes/datastore1/OPNSense /vmfs/volumes/datastore1/OPNSense.OLD

Per effettuare un restore, creiamo il file /etc/ghettovcb/restore-OPNSense.conf, al cui interno inseriremo:

# DISK_FORMATS
# 1 = zeroedthick
# 2 = 2gbsparse
# 3 = thin
# 4 = eagerzeroedthick
"/vmfs/volumes/Backup/VM/OPNsense/OPNsense-2020-06-24_13-59-38;/vmfs/volumes/datastore1;1;OPNsense"

Nel dettaglio:

  • /vmfs/volumes/Backup/VM/OPNsense/OPNsense-2020-06-24_13-59-38
    • è la directory che contiene il backup che vogliamo ripristinare;
  • /vmfs/volumes/datastore1
    • è il volume che ospiterà la VM
  • 1
    • Utilizzeremo come tipo di disco il formato zeroedthick
  • OPNSense
    • è il nome con cui registreremo la nostra VM (che precedentemente abbiamo cancellato)

Vediamo se lo script che abbiamo creato è sintatticamente corretto:

# /opt/ghettovcb/bin/ghettoVCB-restore.sh -c /etc/ghettovcb/restore-OPNSense.conf -d 1
 ########## DEBUG MODE
 Virtual Machine: "OPNSense"
 VM_ORIG_VMX: "OPNSense.vmx"
 VM_ORG_FOLDER: ""
 VM_RESTORE_VMX: "OPNSense.vmx"
 VM_RESTORE_FOLDER: "OPNSense"
 VMDK_LIST_TO_MODIFY:
 scsi0:0.fileName = "OPNSense-000001.vmdk"
 scsi0:0.fileName  = "OPNSense-0.vmdk"
 #
 Start time: Mon Dec 14 15:40:41 UTC 2020
 End   time: Mon Dec 14 15:40:42 UTC 2020
 Duration  : 1 Seconds
 

Visto che lo script è corretto, possiamo lanciare il restore della nostra VM:

# /opt/ghettovcb/bin/ghettoVCB-restore.sh -c /etc/ghettovcb/restore-OPNSense.conf
############ Restoring VM: OPNSense
 Start time: Mon Dec 14 15:42:52 UTC 2020
 Restoring VM from: "/vmfs/volumes/Backup/VM/OPNsense/OPNsense-2020-06-24_13-59-38/"
 Restoring VM to Datastore: "/vmfs/volumes/datastore1/" using Disk Format: "zeroedthick"
 Creating VM directory: "/vmfs/volumes/datastore1/OPNSense" …
 Copying "OPNSense.vmx" file …
 Restoring VM's VMDK(s) …
 Updating VMDK entry in "OPNSense.vmx" file …
 Option --adaptertype is deprecated and hence will be ignored
 Destination disk format: VMFS zeroedthick
 Cloning disk '/vmfs/volumes/Backup/VM/OPNsense/OPNsense-2020-06-24_13-59-38/OPNSense-000001.vmdk'…
 Clone: 19% done.
 Clone: 50% done
 Clone: 73% done
 Clone: 89% done
 Clone: 100% done.
 Registering OPNSense …
 182
 End time: Mon Dec 14 15:43:18 UTC 2020
 ############ Completed restore for OPNSense!
 Start time: Mon Dec 14 15:42:52 UTC 2020
 End   time: Mon Dec 14 15:43:18 UTC 2020
 Duration  : 26 Seconds

La VM è stata correttamente rispristinata e registrata; vediamo il nuovo ID a cui è associata (lo possiamo anche vedere nell’output del comando precedente) ed avviamo la “nuova” VM:

# vim-cmd vmsvc/getallvm
 Vmid         Name                                File                             Guest OS       Version   Annotation
 ......
 182     OPNSense           [datastore1] OPNSense/OPNSense.vmx                   freebsd64Guest    vmx-13
......
# vim-cmd vmsvc/power.on 182
# vim-cmd vmsvc/power.getstate 182
 Retrieved runtime info
 Powered on

← VMWare – Backup delle VM tramite script ghettoVCB (Part 2)