BURP - BackUp and Restore Program


Q. What operating systems do I need to be running?

The burp server (where the backups are stored) needs to run on a Linux-style operating system. Personally, I use Debian. The burp client (from which backups are taken) can run on Linux, Windows, or Mac.

Q. What are the main dependencies?

A. They are:

  • librsync
  • openssl
  • zlib (>=1.2.5 is recommended)
  • uthash

Q. Do I need to install cygwin on Windows?

A. No.

Q. How do I build a static Linux binary?

A. Use the --enable-static and --disable-libtool configure script options.
Depending on your OS, you may need to add extra linker options to the 'static-burp' section in src/Makefile.
For example, while using Debian Wheezy, I had to add: -ltinfo -ldl -lgpm

Q. I get errors like "/0000/0000/1ACA.gz: File too large" in my log.

A. This is burp trying to open a backed up file on the burp server. Older versions of zlib can have problems opening large files. Try upgrading zlib to at least version 1.2.5.

Q. Are you going to do data deduplication on the server side?

A. Yes, new in version 1.2.4, using 'bedup'. Note, that there are file systems (like btrfs, zfs and btrfs) coming along that will do data deduplication automatically, and probably better than bedup.

Q. Are you going to do inline data deduplication?

A. Yes, in burp 2.

Q. What is the best file system to use on the server?

A. I have done all my testing on ext4, and it works for me. The main concern is not to run out of file system inodes. You can configure the number of inodes when you create the ext4 file system, but you cannot change the number later without reformatting.

One of my test clients has over a million files. Because I had used the ext3 optimisation option for large files on the storage device (having previously been using it for bacula), I initially ran out of inodes. Reformatting the file system to have more inodes has solved the problem.

To see how many inodes I have, I use the command 'df -i'

Here is a helpful 10-year old mailing list post about ext3 inodes: http://markmail.org/message/ergkrg6thswonkgo

(ignore the recommendation for reiserfs - I believe that ext3 has moved on more than reiserfs over the last 10 years!)

Q. I specified LDFLAGS="-L /opt/somepath" to build burp, but when I run it, it uses the system libraries instead of the libraries I installed in /opt/somepath!

A. Try this: LDFLAGS="-L /opt/somepath -R /opt/somepath"

Q. On Windows, the client exits with a message like: "Could not open 'C:/Documents and Settings/Administrator/NTUSER.DAT': The file is in use by another process." Why?

A. On newer versions of Windows, things called 'junction points' have been added. In the example given, 'include = C:/Documents and Settings' was set in the client burp.conf, but 'C:/Documents and Settings' is a junction point and the real path is 'C:/Users'.
Pointing burp at the junction point means that it goes outside of the VSS snapshot, and hence cannot open files that other processes have open. Use the real path instead.

Q. My backup fails with the message 'error in async_rw'. Why?

A. This normally means that the other side of the connection went away. For example, it happens to me when I close my laptop lid, or when my laptop goes into hibernate mode, or when I pull the network cable out.
Otherwise, if you are seeing this message on the server, it is worth running the backup by hand from a console on the client (if you are not already doing so), as it may give you more information to work with.

Q. Can you use librsync to do rsync feature X?

A. No, rsync has nothing to do with librsync other than them both using the same algorithm. Put another way, rsync does not use librsync.

Donate with Bitcoin

Burp is open and free software. I work on it in my spare time. If you would like this work to continue, please consider making a small donation.

Burp, don't suck. Last updated: December 2022
By Graham Keeling