Restore a Zmanda Pro Disk Image as an Azure Cloud Instance

Disk image backups can be restored as an Azure Cloud instance for rapid recovery.

Notes:

Step 1: Restore the image as VMDK using Zmanda Pro

Note: The restored files will be the same size as the original disk size, so ensure you have enough space in your restore location:

Files will be restored as shown below:

Convert VMDK to VHD

  • We used the QEMU utility with the 1 KB VMDK file from the previous step (with fixed-size-type required by Azure).

  • Example command to convert VMDK file to VHD format: .\qemu-img.exe convert C:\path\to\disk.vmdk -O vpc -o subformat=fixed C:\path\to\disk.vhd

  • Note: The disk.vhd image just produced can now be imported, without further changes, into any locally-installed MS Hyper-V program.

If needed, resize the VHD file upwards to the nearest megabyte multiple

  • The size of the disk.vhd file from the previous step must be a multiple of megabytes (ie: the VHD file-size needs to be a number exactly divisible by 1024).

  • Example command to find file size: ls C:\path\to\diskname.vhd = X

  • Our example produced a file of size X = 41943040 KB

  • X/1024/1024 must be a whole number. You may need to resize your own file upwards to a megabyte-multiple.

  • An exact next-biggest megabyte-multiple for our example 40 GB disk = 42951770112 bytes.

  • We resize our example file to illustrate:

  • Example command to resize the disk.vhd file upwards to a megabyte multiple: resize-vhd C:\path\to\diskname.vhd -SizeBytes 42951770112

  • Note: This creates a resized VHD file of size 42951770624 bytes. Azure 'resize' command adds 512 bytes for their footer 42951770112 + 512

Create an empty managed disk on Azure

  • Example command to create an empty managed disk on Azure using the size parameter from the previous step: az disk create --name azure-disk-name --resource-group azure-resource-name --sku standardssd_lrs --hyper-v-generation V1 --location australiaeast --for-upload true --upload-size-bytes 42951770624

  • Use your preference parameters for disk-name, resource-group, hard-disk type, location. Other VM parameters, such as CPU and RAM allocation, can be added later. Location parameter can be selected via: az account list-locations -o table

Grant write access to obtain 'sasURI'

Upload the VHD file to Azure

  • We used the convenient AzCopy https://adamtheautomator.com/azcopy-setup/

  • Command format: AzCopy.exe copy "C:\path\to\diskname.vhd" "sas-URI" --blob-type PageBlob

  • Example command to upload the VHD file to Azure, using the sas-URI from the previous step: AzCopy.exe copy "C:\path\to\diskname.vhd" "https://xx-xxxxx-xxxxxxxxxx.blob.core.windows.net/xxxxxxxxxx/abcd?sv=2017-04-17&sr=b&si=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&sig=xxxx%3D" --blob-type PageBlob

  • Note: To reduce costs, revoke write-access when finished uploading.

  • Example command to revoke write access: az disk revoke-access -n azure-disk-name -g azure-resource-name

Create the new VM in Azure

  • Example command to create the new VM in Azure using the azure-disk-name file uploaded from the previous step: az vm create --resource-group azure-resource-name --location australiaeast --name new-vm-name --os-type windows --attach-os-disk azure-disk-name

  • Use your parameters for resource group, location, vm name.

  • Example result from command to create new VM in Azure:

  • Copy the ‘publicIpAddress’ field

Connect via RDP

  • Use your preferred Remote Desktop program to connect to the ‘publicIpAddress’ from previous step: “XXX.XXX.XXX.XXX”