VSphere Backup solution

Mon, May 11, 2020 2-minute read

I have been using ESXi and VSphere for a couple of years now and have been hosting my virtual machines on a NFS datastore backed by ZFS - so in the beginning I was relying on ZFS replication + snapshots for my backup purposes which is pretty great since I could just mount a snapshot and move a specific VM to its correct location in case I wanted to restore something.

But NFS + ESXi is not so great together - at least not when the NFS is hosted on FreeNAS, which only support NFS version 3+4 - and ESXi expect either version 3 or 4.1 - so you are stuck with version 3, which works fine, but you miss out on some of the nicer features in NFS 4.1, i.e. improved locking and multipathing for failover/performance reasons.

So I was looking into switching to ISCSi instead, since that is block based and multipathing is built in already and there are hardware acceleration built it.

But that leaves me with the problem of not as easily being able to backup/restore using zfs replication+snapshots, since ZFS is just replicating+snapshotting a block storage blob.

So I started looking into backup solutions that interfaced with vsphere directly, so I could backup/restore individual virtual machines instead of just everything.

I have now been running with veeam’s community edition, which works great, but have a limit of only allowing 10 VM’s to be backed up - so I had to “cheat” and spin up another virtual machine and have that virtual machine backup 10 VM’s - but that is not really scalable - so I have started looking into building my own backup solution based on the vsphere api + vmware’s unmanaged api.

It is slow work, but it is progressing good so far - I have taken the decision to build it in .NET Core, so I can run the backup on a linux machine instead of having to buy/maintain a windows machine.

So far I have implemented raw export of vm’s, even running VM’s and also simple backup which is the preparation work for incremental backups which uses vsphere changed block tracking.

I will keep you posted with more news when I made made more progress on the backup solution.