February 19, 2008

Create a backup server with Restore

Author: Susan Linton

Perhaps the number one reason why people neglect to back up their desktops is the lack of workable solution. It can be difficult to find a method configurable enough to suite everyone's needs. One promising answer may be Restore, an application for enterprise and data center backup for Windows, Mac OS X, and Unix/Linux systems. It is GPLv2-licensed and freely available to download as a set of Debian/Ubuntu packages, virtual machine, or 455MB installable live CD.

For testing purposes, I downloaded the installable live CD that boots a complete operating system featuring the Restore backup utility. The OS is based on Ubuntu and uses the Xfce desktop. You can install it to a hard drive using Ubuntu's familiar installer.

You manage Restore through a browser interface, which means you can run it over networks and the Internet. The management interface is polished and responsive.

What Restore can do

Depending upon your install method, Restore may or may not launch when Firefox is opened. In my case it did, but if it doesn't, you can specify http://localhost/restore on the actual Restore server or http://ip_of_server/restore for remote sessions. The software first displays an introduction screen with a link to the actual Restore application. The first Restore screen asks you to log in. Using the default username "admin" with the password "password" will take you to either the Restore homepage or the Resellers dashboard, depending upon the version you're using. At the Resellers screen you can add or modify resellers, and reseller administrators can add or modify clients and their quotas.

Navigating and deciphering the options is not difficult. The home page contains links to dashboard pages that let you begin the backup or restore process, change preferences, or visit the Restore Web site to "Get Involved" or "Register." It displays a main area containing icons, links, and brief explanations. The top of all screens displays tabs for tasks such as Filestores, Preferences, and Admin. At the bottom are feeds for Restore News, Updates, and Help.

The Preferences tab opens a small input box that lets you change your password, notification options, and email address for notifications.

The Admin tab allows you to create new users, and resellers can create new clients.

The Filestores tab opens the page where you actually set up backups and restorations. A filestore is defined as the location on the Restore server where a backup is stored. Restore supports only hard drives; it can't burn backups to CD-ROMs, and it doesn't support tape stores. To create a new backup, click on the Add Target icon. A target is defined as the source files for the backup (and to be restored). Each client has to be set up as a separate target. Step 1 asks you to pick one of four access types or connection protocols: MySQL (for MySQL databases), SFTP (encrypted SSH connections), FTP (through an FTP account), or Windows Files Share (Windows Network File Sharing and Samba). In testing these protocols, I had trouble only the the SFTP (SSH) connection, which would not seem to connect; instead, it displayed a perpetual "busy" icon. You can run MySQL database backups (and restores) while the database is in use; the tables are temporarily locked while the operation is completed.


Commonly saved filetypes can be backed up while in use. They are stored in /var/lib/restore/data with a structure similar to the targets' original directory structure. They are stored as they are copied, and not compressed or archived, which means backups take up more space than they need to and results in excessive network traffic. MySQL database snapshots are dumps of the individual tables, and are stored in a location that's set in a configuration file at /etc/restore/restore.yml. It can be set to any mount point, including removable devices such as USB hard drives or pendrives, as long as they are mounted.

You must give each backup a unique plain text name during the Target setup. Saved targets are listed under the Filestores tab. Targets can be updated by creating differential backups, saving on storage requirements while allowing the user to choose to restore versions based up date. You can set or change targets' owner and group permissions, and change the contents (add new files or subtract those no longer important) of future backups. You can set a schedule for automatic backups, as well as retention schedules, which enables you to rotate backup snapshots at desired intervals based on date or time span rather than predefined schemes. Most importantly, you can restore backups to their original or alternative locations.

What Restore can't do

As nice as Restore is, it does have a few drawbacks. The most significant limitation is the lack of local file support. This means you cannot back up files on the host machine upon itself. This is acceptable for users or organizations with a separate backup server, but it certainly wouldn't work for home users with only one machine. I was hoping to be able to run Restore from one of my two always-on machines to back both up. I don't want to have to exclude one, run Restore on both, or dedicate a third machine for backups.

Restore does what it claims to do and does it well, with the exception of the SFTP (SSH) access type bug. I found the other access types worked well and files were restored without corruption for the Linux and Windows machines I tested.

Restore's Web site provides links to documentation and screenshots, testimonials, and a wiki and support forum. The program is free of cost to download and use, but commercial support is being developed.

Although Restore will not be replacing my old mysqldumps or tar-and-burn methods, I liked it and will give it another test run if local file support is added. As it is now, Restore would be great for users who can work within its capabilities. Data centers and enterprise customers should find it accommodating, as could home users with a spare machine to dedicate to the cause.


  • Reviews
  • Backup & Data Recovery
Click Here!