Wednesday, February 12, 2020

VMWare: Restore a VM using Netapp snapshot in an NFS exported Datastore Environment

Learn Storage, Backup, Virtualization,  and Cloud. AWS, GCP & AZURE.
............................................................................................................................................................................
Problem: Restore a VM that resides on a NFS Exported Datastore using Netapp Native Snapshot, NOT VMWare snapshot. Use case is-- A virtual disk on Windows server cannot be expanded, if that VM has snapshot on it. This method adds one more way of restoring a VM, if you don’t have solid backup in place, and/or it can be used as secondary plan for restoring a VM, should primary backup becomes unavailable.
1.    Find which ESXi host this VM resides on
a. This can be done either through vcenter GUI or through the vmware scripts
b.   Look at Each Disk of the VM,  EVERY virtual disk MUST be on the NFS to be recoverable.  
c.   In our example,  the disks are all Netapp volumes (netappdatastore2)
2.     Shutdown/power down the VM 
3.     Unregister the VM from Vcenter (Remove from Inventory) (DONT DELETE FROM DISK)
4.     Login to the ESXi host as user root,  in this case,  ESX-Server-01.domain.com
a.   ssh -l root@ ESX-Server-01.domain.com
b.   Find the netapp volume once you log in.
c.   [root@ESX-Server-01:~] df -h
Filesystem  Size  Used      Available Used%      Mounted on
NFS         20TT  15TT      5.0T      81%        /vmfs/volumes/netappdatastore2
5.    cd into that file system
[root@ESX-Server-01: cd /vmfs/volumes/netappdatastore2
   [root@ESX-Server-01 pwd
/vmfs/volumes/netappdatastore2
6.    Make sure we have a .snapshot directory and it has snapshots for the VM
7.   cd into .snapshot directory, and locate the snapshot desired based on timestamp.
root@ESX-Server-01:/vmfs/volumes/netappdatastore2] cd .snapshot/
[root@ESX-Server-01:/vmfs/volumes/netappdatastore2/.snapshot] ls -l
Snapshot.1
Snapshot.2
Snapshot.3
8.   Find the existing vm directory and move that directory into a backup directory to save the existing state
[root@ESX-Server-01:/vmfs/volumes/netappdatastore2] mv VMname VMname.backup
9.   Recover the VM directory from snapshot directory,  you MUST choose the right snapshot directory by the time frame
Cd into desired snapshot.
[root@ESX-Server-01:/vmfs/volumes/netappdatastore2/.snapshot/Snapshot.3]
[root@ESX-Server-01:/vmfs/volumes/netappdatastore2/.snapshot/snapshot.3] ls -ld VMName
10. Rsync command is recommended vs cp  (rsync has the -S option to handle sparse files more efficiently,  thin allocated vmdk files are usually sparse files - that are files with holes in the blocks).
root@ESX-Server-01:/vmfs/volumes/netappdatastore2/.snapshot/snapshot.3] rsync -av -S VMName ../../VMName
11. Re-register the vm in vcenter with the newly recovered directory
a.   Login to vcener
b.   Brower the ESXi host the VM was running on
c.   Go to Storage for the ESXi host and browse the storage file systems on the ESXi host
d.   Browse to the directory where you have the recovered VM files. 
e.   Go into that directory and register the VM. (right click on the VM definition file, and choose register). 
12.  Power back on the VM.


 You are Welcome :)

No comments:

Post a Comment