I built a small veneer on top of ZFS and rsync that I've been running for well over a decade. It has worked flawlessly, mostly because it is so simple.<p>A few years ago I got my company to release the code: <a href="https://github.com/tummy-dot-com/tummy-backup" rel="nofollow">https://github.com/tummy-dot-com/tummy-backup</a><p>I use it almost exclusively with Linux systems, but it should work with anything that rsync does a good job with.<p>The hardware is mostly commodity rackmount boxes with 8-12 drives running ZFS (zfs+fuse or ZFSonLinux more recently). Deduplication takes a shockingly large amount of RAM, so mostly I disable it.<p>The job of tummy-backup is to schedule backups, prune older backups, and complain if something is wrong. There is also a web interface for creating backups, manually running them and managing them, and exploring and recovering files (via a downloaded tar file).<p>BACKSTORY<p>I was running a small dedicated hosting business, and we had hundreds of machines to back up. We started off with the old hardlink + rsync trick, but it had two problems: Append-only files would cause huge growth (log files, ZODB), and managing creating and deleting the hard links would take tons of time.<p>We tried backuppc for a while and liked it, but it still had the problem with append only files growing, and lots of our backups were taking more than 24 hours to run.<p>So I took my old rsync+hardlink script, which had proven itself really robust, it lives on in this file:<p><a href="https://github.com/tummy-dot-com/tummy-backup/blob/master/sbin/zfsharness" rel="nofollow">https://github.com/tummy-dot-com/tummy-backup/blob/master/sb...</a><p>I started using it on Nexenta when they had their free release. That was ok, but about once every month or two the boxes would fall over and have to be rebooted. I realized in retrospect this was probably due to not having enough RAM for deduplication or just not having enough RAM period. Or maybe bugs in ZFS.<p>But Nexenta wasn't something our staff had experience with. So I started testing it with fuse+zfs. This also had bugs, but the developers worked with me to find bugs, and I created stress tests that I would run, sometimes for months, to report problems to them. Eventually, this was pretty reliable.<p>Now I am running it with ZFSOnLinux, and that has been very stable.<p>I'd love to try it with HAMMER to get deduplication, but I just haven't had the cycles. btrfs was also on my radar but at the time I was really looking for an alternative to ZFS, btrfs had been getting more and more unusable (I ran it for a year on my laptop but then experienced several data corruptions every time I tried it for 2-3 years after that).<p>Recently I've been playing with borgbackup of my laptop. I was hoping I could use it as an engine to get deduplication, but it really is only designed for a single system use. For a single system it seems good.