Il 2021-03-31 14:41 Nicolas Kovacs ha scritto: > Hi, > > 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 > machine. > > 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 ? > > Niki Hi Nicolas, the simpler approach would be to use a filesystem which natively supports send/recv on another host. You can be tempted to use btrfs, but having tested it I strongly advice against it: it will horribly fragments and performance will be bad even if disabling CoW (which, by the way, is automatically re-enabled by snapshots). I currently just use ZFS on Linux and it works very well. However, using it in CentOS is not trouble-free and it has its own CLI and specific issues to be aware; so, I understand if you don't want to go down this rabbit hole. The next best thing I can suggest is to use lvmthin and XFS, with efficient block-level copies done to another host via tools as bdsync [1] or blocksync [2] (of which I forked an advanced version). On the receiving host, you should (again) use lvmthin and XFS with periodic snapshots. Finally, I would leave the current rsnapshot backups in-place: you will simply copy from a virtual machine rather than from a bare metal host. I found rsnapshot really useful and reliable, so I suggest to continue using it even if efficient block-level backup are taken. Just my 2 cents. Regards. -- Danti Gionatan Supporto Tecnico Assyoma S.r.l. - www.assyoma.it email: g.danti at assyoma.it - info at assyoma.it GPG public key ID: FF5F32A8