rdiff-backup Woes

Posted by JD 07/10/2009 at 07:58

rdiff-backup rocks, mostly. But there are times when it doesn’t work as expected or doesn’t work at all. Usually, the not working at all part is a cockpit error, but sometimes not.

Key rdiff-backup features

  1. Simple 1 line backup command; rdiff-backup source target
  2. Reverse Incremental backup sets
  3. Extremely FAST backups. Entire server installations are just a few minutes, after the initial backup set is created.
  4. Last backup set is available as a complete copy of the files. Need to recover? Just copy the file(s) back.
  5. Control over how old backup sets can be. Deletion of “older than x days” sets is trivial.
  6. Compressed older differential backup sets
  7. Current backup is 1-for-1 sized. Older backups are tiny. As an example, a 5GB backup with hundreds of files with 30 days of incremental backups only takes 6GB total. Each daily backup is relatively tiny and based on changes made that day. Usually those changes are just a 10-40MB. Impressive.
  8. Recovery by date/time
  9. FOSS – we like Free and Open Source Software
  10. Cross platform – Unix, Linux, MacOS and MS-Windows.

Things that just work

  1. Linux local rdiff-backup runs, just work. Backing up a directory structure or an entire VM (not as a single huge file) to another mounted disk works very nicely with all the key features listed above.
  2. Win32 local rdiff-backup runs, provided there isn’t any networking involved nor huge files.
  3. Recovery of an entire VM fileset. I’ve needed a few recoveries the last 6 months due to user error. They worked flawlessly and only took 20 minutes from problem discovery to full recovery. That was manual recovery. If this were scripted, it could be less than 5 minutes.

Things that don’t work or work poorly

This is mostly on MS-Windows platforms, but some Linux stuff doesn’t work nicely either. Windows howto that wasn’t really much use.

  1. remote transmission over ssh on a non-standard port is broken regardless of platform. That doesn’t mean it can’t work, but I’ve never been successful in getting it to work. Neither push, nor pull command versions have worked. It shouldn’t be this hard.
  2. Large file differencing doesn’t seem to work on Linux or Windows. In theory, that means 4GB files, but smaller files get confused and end up as a complete copy too, not a block level differential copy.
  3. MS-Windows network backups don’t really work, even over samba connections. Ok, there are many strange things about rdiff-backup on Windows. For example:
    1. You have to `cd` to the drive and directory of the source if you want it to work.
    2. You have to use ‘/’ instead of ‘\’ characters, most of the time. This is a python thing, I guess.
    3. Backups to samba shares may or may not work. I haven’t figured the reason why or why not yet.
    4. Backups over ssh require less than trivial setup. Only push will work from windows unless an ssh server is setup. Then the complexity is exponentially more difficult.
    5. Many people use cygwin with all those faults (slow, heavy, bad directory access) to get around the win32/64 API issues.

So, rdiff-backup is great for local Linux system backups, but for remote backups, you’ll want to use different technology, like rsync. If you’re on Windows and want remote backups, check out some other solutions.

Good writeup on rdiff-backup features, method, and algorithm.

S1/Disk1 -rdff-backup→ S1/Disk2 -rsync/ZFS send→ R2/Disk1

If you have a lead or solution for my woes, please let me know! I often miss trivial solutions.

Here’s an actual rdiff-backup set to clarify:


Time Size Cumulative size
-—————————————————————————————————————
Fri Jul 10 01:32:13 2009 4.37 GB 4.37 GB (current mirror)
Thu Jul 9 01:32:13 2009 36.3 MB 4.41 GB
Wed Jul 8 01:32:13 2009 37.5 MB 4.45 GB
Tue Jul 7 01:32:14 2009 31.4 MB 4.48 GB
Mon Jul 6 01:32:13 2009 31.1 MB 4.51 GB
Sun Jul 5 01:32:13 2009 27.0 MB 4.53 GB
Sat Jul 4 01:32:14 2009 41.3 MB 4.57 GB
Fri Jul 3 01:32:12 2009 33.9 MB 4.61 GB
Thu Jul 2 01:32:13 2009 37.9 MB 4.64 GB
Wed Jul 1 01:32:14 2009 35.4 MB 4.68 GB
Tue Jun 30 01:32:13 2009 37.3 MB 4.71 GB
Mon Jun 29 01:32:14 2009 38.9 MB 4.75 GB
Sun Jun 28 01:32:13 2009 38.7 MB 4.79 GB
Sat Jun 27 01:32:15 2009 42.0 MB 4.83 GB
Fri Jun 26 01:32:13 2009 49.3 MB 4.88 GB
Thu Jun 25 01:32:13 2009 37.3 MB 4.92 GB
Wed Jun 24 01:32:14 2009 36.4 MB 4.95 GB
Tue Jun 23 01:32:13 2009 43.0 MB 4.99 GB
Mon Jun 22 01:32:15 2009 33.4 MB 5.03 GB
Sun Jun 21 01:32:15 2009 31.0 MB 5.06 GB
Sat Jun 20 01:32:13 2009 41.6 MB 5.10 GB
Fri Jun 19 01:32:14 2009 31.7 MB 5.13 GB
Thu Jun 18 01:32:14 2009 32.0 MB 5.16 GB
Wed Jun 17 01:32:15 2009 31.0 MB 5.19 GB
Tue Jun 16 01:32:17 2009 31.6 MB 5.22 GB
Mon Jun 15 01:32:16 2009 31.7 MB 5.25 GB
Sun Jun 14 01:32:14 2009 31.3 MB 5.28 GB
Sat Jun 13 01:32:14 2009 30.7 MB 5.31 GB
Fri Jun 12 01:32:14 2009 31.3 MB 5.34 GB
Thu Jun 11 01:32:15 2009 32.3 MB 5.37 GB

Trackbacks

Use the following link to trackback from your own site:
https://blog.jdpfu.com/trackbacks?article_id=299