Relax-and-Recover is the leading Open Source bare metal disaster recovery and system migration solution. It is a modular framework with many ready-to-go workflows for common situations.
Relax-and-Recover produces a bootable image. This image can repartition the system. Once that is done it initiates a restore from backup. Restores to different hardware are possible. Relax-and-Recover can therefore be used as a migration tool as well.
Currently Relax-and-Recover supports various boot media (incl. ISO, PXE, OBDR tape, USB or eSATA storage), a variety of network protocols (incl. sftp, ftp, http, nfs, cifs) as well as a multitude of backup strategies (incl. IBM TSM, HP DataProtector, Symantec NetBackup, Bacula, rsync, Borg).
Relax-and-Recover was designed to be easy to set up, requires no maintenance and is there to assist when disaster strikes. Its setup-and-forget nature removes any excuse for not having a disaster recovery solution implemented.
Recovering from disaster is made straightforward by a 2-step recovery process so that it can be executed by operational teams when required. When used interactively (e.g. when used for migrating systems), menus help make decisions to restore to a new (hardware) environment.
Extending and integrating Relax-and-Recover into complex environments is made possible by its modular framework. Consistent logging and optionally extended output help understand the concepts behind Relax-and-Recover, troubleshoot during initial configuration and help debug during integration.
See [REFERENCES] for more detailed information about Relax-and-Recover.
Relax-and-Recover is written entirely in Bash and does not require any external programs. However, the rescue system that is created by Relax-and-Recover requires some programs that are needed to make our rescue system work:
-
mingetty or agetty
-
sfdisk or parted
-
grub2-efi-modules or similar package that provides Grub2 modules (/usr/lib/grub(2)/) if USB recovery on EFI is used
All other required programs (like sort, dd, grep, etc.) are so common, that we don’t list them as requirements. In case your specific workflow requires additional tools, Relax-and-Recover will tell you.
On RPM based systems you should use the rear RPM package. Either obtain it from the Relax-and-Recover homepage or build it yourself from the source tree with:
make rpm
This will create an RPM for your distribution. The RPM is not platform- dependent and should work also on other RPM based distributions.
On DEB based systems you can execute the command:
make deb
This quick start guide will show you how to run Relax-and-Recover from the git checkout and create a bootable USB backup.
Start by cloning the Relax-and-Recover sources from Github:
git clone https://github.com/rear/rear.git
Move into the rear/ directory:
cd rear/
Prepare your USB media. Change /dev/sdb to the correct device in your situation. Relax-and-Recover will own the device in this example.
This will destroy all data on that device.
sudo usr/sbin/rear format /dev/sdb
Relax-and-Recover asks you to confirm that you want to format the device:
Yes
The device has been labeled REAR-000 by the format workflow.
Now edit the etc/rear/local.conf configuration file:
cat > etc/rear/local.conf <<EOF ### write the rescue initramfs to USB and update the USB bootloader OUTPUT=USB ### create a backup using the internal NETFS method, using 'tar' BACKUP=NETFS ### write both rescue image and backup to the device labeled REAR-000 BACKUP_URL=usb:///dev/disk/by-label/REAR-000 EOF
Please make sure you have at least defined an OUTPUT
, BACKUP
and a
BACKUP_URL
variable.
Now you are ready to create a rescue image. We want verbose output (-v option).
sudo usr/sbin/rear -v mkrescue
The output I get is:
Relax-and-Recover <version> Using log file: /var/log/rear/rear-<hostname>.log Creating disk layout Creating root filesystem layout Copying files and directories Copying binaries and libraries Copying kernel modules Creating initramfs Writing MBR to /dev/sdb Copying resulting files to usb location
You might want to check the log file for possible errors or see what Relax-and-Recover is doing.
Now reboot your system and try to boot from the USB device.
If that worked, you can dive into the advanced Relax-and-Recover options and start creating full backups. If your USB device has enough space, initiate a backup using:
sudo usr/sbin/rear -v mkbackup
That is it. You are now better prepared for failure !
To configure Relax-and-Recover you have to edit the configuration files in /etc/rear/. All *.conf files there are part of the configuration, but only site.conf and local.conf are intended for the user configuration. All other configuration files hold defaults for various distributions and should not be changed.
In /etc/rear/templates/ there are also some template files which are use by Relax-and-Recover to create configuration files (mostly for the boot environment). You can use these templates to prepend your own configurations to the configuration files created by Relax-and-Recover, for example you can edit PXE_pxelinux.cfg to add some general pxelinux configuration you use (I put there stuff to install Linux over the network).
In almost all circumstances you have to configure two main settings and their
parameters: The BACKUP
method and the OUTPUT
method.
The backup method defines how your data is to be saved and whether Relax-and-Recover should backup your data as part of the mkrescue process or whether you use an external application, e.g. backup software to archive your data.
The output method defines how the rescue system is written to disk and how you plan to boot the failed computer from the rescue system.
See /usr/share/rear/conf/default.conf for an overview of the possible methods and their options. An example to use TSM for backup and PXE for output and would be to add these lines to /etc/rear/local.conf:
BACKUP=TSM OUTPUT=PXE
And since all your computers use NTP for time synchronisation, you should also add these lines to /etc/rear/site.conf:
TIMESYNC=NTP
Don’t forget to distribute the site.conf to all your systems.
The resulting PXE files (kernel, initrd and pxelinux configuration) will be written to files in /var/lib/rear/output/. You can now modify the behaviour by copying the appropriate configuration variables from default.conf to local.conf and changing them to suit your environment.
To use Relax-and-Recover you always call the main script /usr/sbin/rear:
# rear help Usage: rear [-h|--help] [-V|--version] [-dsSv] [-D|--debugscripts SET] [-c DIR] [-C CONFIG] [-r KERNEL] [--] COMMAND [ARGS...] Relax-and-Recover comes with ABSOLUTELY NO WARRANTY; for details see the GNU General Public License at: http://www.gnu.org/licenses/gpl.html Available options: -h --help usage information -c DIR alternative config directory; instead of /etc/rear -C CONFIG additional config file; absolute path or relative to config directory -d debug mode; log debug messages -D debugscript mode; log every function call (via 'set -x') --debugscripts SET same as -d -v -D but debugscript mode with 'set -SET' -r KERNEL kernel version to use; current: '3.12.49-3-default' -s simulation mode; show what scripts rear would include -S step-by-step mode; acknowledge each script individually -v verbose mode; show more output -V --version version information List of commands: checklayout check if the disk layout has changed dump dump configuration and system information format format and label media for use with rear mkbackup create rescue media and backup system mkbackuponly backup system without creating rescue media mkrescue create rescue media only recover recover the system restoreonly only restore the backup validate submit validation information Use 'rear -v help' for more advanced commands.
To view/verify your configuration, run rear dump
. It will print out the
current settings for BACKUP
and OUTPUT
methods and some system information.
To create a new rescue environment, simply call rear mkrescue
. Do not forget
to copy the resulting rescue system away so that you can use it in the case of
a system failure. Use rear mkbackup
instead if you are using the builtin
backup functions (like BACKUP=NETFS
)
To recover your system, start the computer from the rescue system and run
rear recover
. Your system will be recovered and you can restart it and
continue to use it normally.
The ReaR project was initiated in 2006 by Schlomo Schapiro and Gratien D’haese and has since then seen a lot of contributions by many authors. As ReaR deals with bare metal disaster recovery, there is a large amount of code that was contributed by owners and users of specialized hardware and software. Without their combined efforts and contributions ReaR would not be the universal Linux bare metal disaster recovery solution that it is today.
As time passed the project was lucky to get the support of additional developers to also help as maintainers: Dag Wieers, Jeroen Hoekx, Johannes Meixner, Vladimir Gozora, Sébastien Chabrolles and Renaud Métrich. We hope that ReaR continues to prove useful and to attract more developers who agree to be maintainers. Please refer to the MAINTAINERS file for the list of active and past maintainers.
To see the full list of authors and their contributions please look at the git history. We are very thankful to all authors and encourage anybody interested to take a look at our source code and to contribute what you find important.