[CentOS] KVM vs. incremental remote backups

Wed Mar 31 12:41:09 UTC 2021
Nicolas Kovacs <info at microlinux.fr>


Up until recently I've hosted all my stuff (web & mail) on a handful of bare
metal servers. Web applications (WordPress, OwnCloud, Dolibarr, GEPI,
Roundcube) as well as mail and a few other things were hosted mostly on one big

Backups for this setup were done using Rsnapshot, a nifty utility that combines
Rsync over SSH and hard links to make incremental backups.

This approach has become problematic, for several reasons. First, web
applications have increasingly specific and sometimes mutually exclusive
requirements. And second, last month I had a server crash, and even though I
had backups for everything, this meant quite some offline time.

So I've opted to go for KVM-based solutions, with everything split up over a
series of KVM guests. I wrapped my head around KVM, played around with it (a
lot) and now I'm more or less ready to go.

One detail is nagging me though: backups.

Let's say I have one VM that handles only DNS (base installation + BIND) and
one other VM that handles mail (base installation + Postfix + Dovecot).

Under the hood that's two QCOW2 images stored in /var/lib/libvirt/images.

With the old "bare metal" approach I could perform remote backups using Rsync,
so only the difference between two backups would get transferred over the
network. Now with KVM images it looks like every day I have to transfer the
whole image again. As soon as some images have lots of data on them (say, 100
GB for a small OwnCloud server), this quickly becomes unmanageable.

I googled around quite some time for "KVM backup best practices" and was a bit
puzzled to find many folks asking the same question and no real answer, at
least not without having to jump through burning loops.

Any suggestions ?


Microlinux - Solutions informatiques durables
7, place de l'église - 30730 Montpezat
Site : https://www.microlinux.fr
Blog : https://blog.microlinux.fr
Mail : info at microlinux.fr
Tél. : 04 66 63 10 32
Mob. : 06 51 80 12 12