Any virtual machine will be large, probably >10 GB and it changes regularly. To back it up to the cloud I would ideally use a block level back-up solution. That way only the changes get synced up.
The catch is that a block level back-up solution needs an agent at both ends and as far as I can establish OneDrive, Dropbox and GDrive don’t have this. They will upload the whole file if only 1 byte changes.
There are real cloud back-up solutions that will do this, Mozy and Carbonite are the leading vendors but they are very expensive (over £ 100 per year) and Carbonite definitely has a 4GB file size limit on its consumer plans.
What we need in free, block-level backup for big files. It needs to be delivered by a utility storage provider and that means OneDrive, Dropbox or GDrive. In IT everything comes to he who waits so I expect them to do it eventually.
Meanwhile the simplest way to do back-ups is to split the VM file into smaller volumes using 7zip and then copy them up to OneDrive (say). The smaller volumes will bypass file limits (if any) will be copied up in parallel saving you time. The computational expense of this is such that you would probably only do it for weekly or monthly backups. This can all be scripted using the 7zip command line volume spanning feature and the file copying utility of your choice. I use GoodSync which can copy to many different storage providers.
Daily backup should be to a USB stick or local network drive. If you want to use block level backup locally then you can use GoodSync to move data between two computers and at only $ 30 for each computer this is very good value. I have a windows home server and so if it works in this environment it would be an inexpensive solution.
Warning – don’t try to sync a running VM! This will make your sync engine very unhappy. That is why you should avoid running a VM in your OneDrive, GDrive, or Dropbox folder. Ideally copy it up to the cloud using a utlity like GoodSync.
— Update 2015-08-17 —
A twist on this is that CloudBerry is now offering incremental block level back-up of system images and Windows disks to cloud destinations. The website does not say how it deals with file size limits.
— Update 2016-01-03 —
read about my new approach to backup
Ben Therien said:
What about using a split VMDK? I have a VMDK at 120GB and it backs up to Dropbox no problem. Its split into 2GB chunks.
Dr James Bayley said:
Dropbox now uses block-level sync and therefore only the changes to your 2GB chunk are uploaded. It is still very impressive that the Dropbox protocol and sync without impairing the performance of your virtual machine. However according to my searching today OneDrive only uses block-level syncing for Office files and therefore any changes would require the entire 2GB chunk to be synced. This might be expected to consume both disk and network resources during the VM’s operation. I have not tested this though. Perhaps I should…
borg backup is a nice open source (free) tool for block-level backup. Splitting the VM into 2G chunks as a VMDK file is also helpful. My main problem at the moment is that OneDrive refuses to sync the VM files while the VM is running. “files are in use by other applications”. This seems to hold up syncing other files too, which I find unacceptable.
Dr James Bayley said:
Thank you for the helpful update. I have recently changed from using IntelliJ to VSCode because it is free. Unfortunately VSCode runs much too slowly on my virtual machine so I have had to start developing on my bare metal Windows installation. I will need a new backup strategy now.