Disk-based network backups with BackupPC
18 Jan
What is BackupPC?
BackupPC is open source (free!) software that runs on Linux and BSD servers. Once properly configured, it will back up the data on any Windows, Mac, Linux, or Unix computers on your network using a combination of SSH, Rsync, Samba, and Tar. Administration and restores are made simple through an Apache based web interface. Setup and configuration is through a few simple text files. Best of all, installation on platforms like Ubuntu and Debian are made very simple as BackupPC (and all of its dependancies) is installed and configured automatically by a simple sptitude command.
BackupPC has several things going for it:
- Disk is cheap – Backups are saved to hard disk on the BackupPC server. Hard disks are inexpensive and its easy to put together an enormous amount of storage in a simple RAID 1 or 5 disk array.
- Centralized administration – Virtually all of the configuration is performed on the BackupPC server. There is no client software for you to install on the rest of your computers.
- Easy to use web interface – The web interface is well designed and easy to use. Checking on backups and performing restores is simple and intuitive.
- Laptop friendly – BackupPC checks for the presence of client computers on your network every hour. If a laptop is plugged into the network after a long trip, BackupPC will sense the presence of the laptop on the network and back it up immediately. Computers that are always on the network are automatically backed up during non-business hours (this is configurable).
- BackupPC is efficient – BackupPC makes use of compression and file pooling to minimize the size of backups on the backup server. I currently have over 70GB of data backed up on my server and it is only taking up 28GB of disk space after compression and pooling.
- Flexible restores – Restore directly to any configured computer on the network or download the restored files as a zip/tar file via web browser.
- Reliable – Once configured, BackupPC runs with very little administrative overhead. You will be notified of backup failures via email, but I find that it typically runs for months without any need for administrative intervention.
- Backup local and remote computers – I use BackupPC to backup all the computers on my network. I also use BackupPC to backup my remote web server over an IPSEC VPN connection. VPN backups are efficient because they use Rsync which only transfers files that have changed.
- Well documented – The documentation for BackupPC is outstanding. You can’t say that about a lot of open source projects.
- End user restores – BackupPC can be configured to allow users on your network to login to the web interface and restore their own files.
- Highly configurable – The default configuration for BackupPC is to keep two weekly full backups and two weeks of daily incrementals. You can easily change this retention schedule to virtually any combination of fulls and incrementals you can possibly dream of!
That’s just the tip of the iceberg!
If you’ve never tried BackupPC then you don’t know what you’re missing. It is without a doubt one of the best engineered and most useful pieces of open source technology that I’ve ever had the pleasure of using. It just works, it is relatively easy to configure and administer, and it has saved my butt on many occasions.
Hardware Requirements
For small networks, BackupPC is not hardware intensive. My current BackupPC server is an Intel P3 with 384MB of RAM and 2 x 80GB IDE disks in a Linux RAID One array. I’m backing up 5 computers (2 Macs, 2 Windows, 1 Linux) with no performance issues at all. If you want to backup more computers then I’d suggest going with a faster processor and larger hard drives as disk compression and concurrent backups will be more processor intensive.
Cool! I want it! Where do I start?
There are some excellent tutorials on the web and the project documentation really is very good. If you have any experience with the Linux command line then you should have no problems following the documentation. If you get stuck there is also an active and helpful mailing list.
Read more:
- BackupPC Home Page
- BackupPC Wikipedia Page
- Configuring BackupPC on Debian
- BackupPC Mailing List
- BackupPC FAQ
I am just wondering if it is possible to run this in a virtual machine, like Virtual PC 2007 or perhaps VMware?
Sure! I see no reason why it wouldn’t work in a VM. Just make sure you’ve got lots of disk space.
Casey,
Had you had a chance to compare the BackupPC software against FreeNAS (www.freenas.org)
Freenas is basically a FreeBSD distribution that you attach disks to and then access on SMB, FTP, etc. It doesn’t really have any brains as far as I can tell. Its a great way to add storage to your network, but it isn’t going to do thinks like incremental backups. That is up to you.