Organizations migrating from VMware to Proxmox VE often need to know whether Druva's global deduplication works across different hypervisor platforms.
The answer: cross-hypervisor global deduplication works when you use a block-preserving migration method. This document covers the validation framework, results, and requirements.
Validation framework and outcome
To test deduplication across platforms, the following setup was used:
Environment: A target virtual machine was initially provisioned, configured, and protected within a native VMware environment. This same workload was subsequently migrated and protected within a Proxmox VE target environment.
Critical infrastructure setup: Both the source VMware and target Proxmox workloads were explicitly configured to route backups to the same AWS (or Azure) storage destination in Druva. This ensures that incoming data blocks from both hypervisors are compared against the same logical cloud storage pool.
The outcome of this validation is summarized in the following table.
Backup Event | Source Hypervisor/Platform | Result |
Backup 1 - Initial backup of the VMWare VM | VMware | Full Data Ingestion. Since this is the initial backup, the cloud storage target is empty of this data. Therefore, no existing blocks are available for comparison. The system stores all of the data blocks, causing the cloud storage consumption to be equal to the full size of the source data. |
Backup 2 - Initial backup of the Proxmox VM after migration | Proxmox VE | Druva’s deduplication savings. Despite backing up the same data again from a different platform, Druva backs up only the minimal unique blocks, achieving storage savings. |
Critical Requirement: Cross-platform deduplication depends on using a block-preserving migration method. In this validation, the VMware VM was migrated to Proxmox using a QEMU-based disk import functionality ensuring data blocks remained unaltered. Detailed steps on this migration are given at a later section.
Validating alternative migration methodologies
Organizations may use various approaches to transition from VMware to Proxmox VE. To determine whether your chosen method preserves deduplication, leverage the following validation test:
The Checksum verification method
Perform the following:
Migrate a single test VM using your preferred method.
Run a cryptographic checksum (e.g., SHA-256) on the virtual disks pre-migration (on VMware) and post-migration (on Proxmox VE).
The Rule: If the pre- and post-migration checksums match exactly, the underlying block structure is preserved and Druva's global deduplication will work seamlessly across the platforms.
Using this verification method the native Proxmox Migration Wizard (import wizard) has also been confirmed to preserve block integrity and yield cross-platform deduplication savings.
QEMU-based disk Import: Migrating a VM from VMware to Proxmox VE
In the following steps, run the commands from the Proxmox node shell.
Copy disks to Proxmox node as follows:
Connect to the VMware ESXI host using ssh. Use the disk path as
/vmfs/volumes/<DATASORE_NAME>/<VM_NAME>Copy the following disk files to the Proxmox node (location:
/var/lib/vz):<VM_DISK_NAME>.vmdk<VM_DISK_NAME>-flat.vmdk
📝 Note
Before copying disk files, power off the VM in VMware ESXi.
Create a VM (no disks).
qm create <NODE-ID> --name test_dedupe --memory 8196 --cores 8 --net0 virtio,bridge=vmbr0Check the storage name:
pvesm statusThe above command will provide the available storage names on the Proxmox node. You can select the node storage, such as
local-lvmorzfsstorage.Import the disks:
Disks will be attached as unused disks to the VM.
qm importdisk <NODE-ID> /var/lib/vz/<VM_DISK_1>.vmdk local-lvm
where,local-lvmis the Proxmox storage nameqm importdisk <NODE-ID> /var/lib/vz/<VM_DISK_2>.vmdk local-lvm
This converts VMDK to the raw disk image type and creates a thin volume inside the
lvm-thinstorage type. The VM is created with the naming conventionvm-<VM-ID>-disk-0.
Attach the imported disks.
After import, disks are added but not attached to the VM. Use the following command to attach the disks.
qm set <VM_ID> --scsi0 local-lvm:vm-<VM_ID>-disk-0Define the virtual bus for better performance. In this example, it sets the SCSI controller type of the VM to VirtIO SCSI.
qm set <VM_ID> --scsihw virtio-scsi-pci
Set the boot disk
qm set <VM_ID> --boot order=scsi0