ReaR: Relax-and-Recover

De jagfloriano.com
Ir a la navegaciónIr a la búsqueda

Introducción

En entornos empresariales, garantizar la recuperación de sistemas Linux es un requisito crítico dentro de cualquier estrategia de continuidad de negocio (BCP/DR).

Relax-and-Recover (ReaR) es una herramienta de recuperación ante desastres (Disaster Recovery) que permite reconstruir un servidor completo a partir de una copia de seguridad previamente generada.

ReaR combina la creación de una imagen de recuperación (ISO o medio de arranque) con la restauración de los datos del sistema, permitiendo recuperar un servidor tras fallos críticos como pérdida total de disco, corrupción del sistema o fallos de hardware.


Casos de uso

Algunos escenarios típicos donde ReaR es especialmente útil:

  • Fallo completo de disco (pérdida de MBR, particiones y datos)
  • Migración de servidores (P2V / V2V)
  • Recuperación tras incidentes críticos
  • Validación de planes de Disaster Recovery

Funcionalidades

ReaR permite:

  • Crear una imagen de recuperación del sistema (ISO/USB)
  • Realizar backups completos del sistema
  • Restaurar servidores tras fallos críticos
  • Automatizar procesos de Disaster Recovery
  • Integrarse con soluciones de backup externas (NFS, NetBackup, etc.)

Enfoque de este documento

En esta guía se realizará:

  • Configuración de ReaR en un entorno Linux
  • Generación de la imagen de recuperación
  • Simulación de fallo completo del sistema
  • Recuperación del servidor desde cero
  • Validación post-recuperación

Todo el proceso se realizará en un entorno virtual para garantizar su reproducibilidad y facilitar su uso en entornos de laboratorio.

Parte 1: Preparación del entorno

Antes de configurar ReaR (Relax-and-Recover), es necesario preparar el entorno de laboratorio, incluyendo un sistema de almacenamiento donde se guardarán los backups del sistema.

En este laboratorio se utilizarán tres servidores con Red Hat Enterprise Linux 9:

  • icecube.jagfloriano.com (Servidor NFS)
  • node1 (Cliente ReaR)



1. Configuración del servidor NFS

Se utilizará el servidor icecube como almacenamiento centralizado para los backups generados por ReaR.

1.1 Crear directorio de exportación

[root@icecube ~]# mkdir -p /srv/nfs/rear
[root@icecube ~]# chmod 777 /srv/nfs/rear

1.2 Configurar exportación NFS

Editar el fichero /etc/exports y añadir:

[root@icecube ~]# echo "/srv/nfs/rear 192.168.1.0/24(rw,sync,no_root_squash)" >> /etc/exports

[root@icecube ~]# cat /etc/exports|grep -i rear
/srv/nfs/rear 192.168.1.0/24(rw,sync,no_root_squash)

Aplicar la configuración:

[root@icecube ~]# exportfs -ra
[root@icecube ~]# systemctl restart nfs-server

Verificación:

[root@icecube ~]# showmount -e localhost
Export list for localhost:
/srv/samba/compartido_nfs_003 *
/srv/samba/compartido_nfs_002 *
/srv/samba/compartido_nfs_001 *
/srv/nfs/rear                 192.168.1.0/24

2. Montaje desde cliente

Desde un cliente, verificar el acceso al recurso NFS y montarlo.

[root@nodo1 ~]# mount -t nfs 192.168.1.79:/srv/nfs/rear /rear_bck
[root@nodo1 ~]# df -hT /rear_bck
Filesystem                 Type  Size  Used Avail Use% Mounted on
192.168.1.79:/srv/nfs/rear nfs4   17G  4.0G   14G  24% /rear_bck

Si el archivo aparece, el almacenamiento NFS está operativo.


3. Consideraciones

  • Se ha configurado acceso restringido a la red local (192.168.1.0/24)
  • Se utiliza la opción no_root_squash para permitir que ReaR escriba correctamente como root en el servidor NFS
  • En entornos de producción, se recomienda limitar aún más los accesos y evitar configuraciones abiertas

Parte 2: Instalación y configuración de ReaR

Una vez preparado el almacenamiento NFS, el siguiente paso es instalar y configurar ReaR en los sistemas cliente que se desean proteger.

En este laboratorio se utilizará el nodo node1 como sistema principal para la generación de backups y pruebas de recuperación.


2.1 Instalación de ReaR

En el sistema cliente (node1), instalar el paquete:

[root@nodo1 ~]# dnf install -y rear
Updating Subscription Management repositories.
Waiting for process with pid 3504 to finish.
Red Hat Enterprise Linux 9 for x86_64 - BaseOS (RPMs)                                                                                                                                                                                                            19 MB/s | 110 MB     00:05
Red Hat Enterprise Linux 9 for x86_64 - AppStream (RPMs)                                                                                                                                                                                                         24 MB/s |  87 MB     00:03
Last metadata expiration check: 0:00:03 ago on Tue 07 Apr 2026 07:43:10 PM CEST.
Dependencies resolved.
================================================================================================================================================================================================================================================================================================
 Package                                                                    Architecture                                           Version                                                               Repository                                                                        Size
================================================================================================================================================================================================================================================================================================
Installing:
 rear                                                                       x86_64                                                 2.6-27.el9                                                            rhel-9-for-x86_64-appstream-rpms                                                 1.0 M
Installing dependencies:
 dhcp-client                                                                x86_64                                                 12:4.4.2-19.b1.el9                                                    rhel-9-for-x86_64-baseos-rpms                                                    794 k
 dhcp-common                                                                noarch                                                 12:4.4.2-19.b1.el9                                                    rhel-9-for-x86_64-baseos-rpms                                                    131 k
 ipcalc                                                                     x86_64                                                 1.0.0-5.el9                                                           rhel-9-for-x86_64-baseos-rpms                                                     44 k
 libburn                                                                    x86_64                                                 1.5.4-5.el9                                                           rhel-9-for-x86_64-appstream-rpms                                                 174 k
 libisoburn                                                                 x86_64                                                 1.5.4-5.el9_5                                                         rhel-9-for-x86_64-appstream-rpms                                                 418 k
 libisofs                                                                   x86_64                                                 1.5.4-4.el9                                                           rhel-9-for-x86_64-appstream-rpms                                                 224 k
 mtools                                                                     x86_64                                                 4.0.26-5.el9_7                                                        rhel-9-for-x86_64-baseos-rpms                                                    227 k
 syslinux                                                                   x86_64                                                 6.04-0.20.el9                                                         rhel-9-for-x86_64-baseos-rpms                                                    575 k
 syslinux-extlinux                                                          x86_64                                                 6.04-0.20.el9                                                         rhel-9-for-x86_64-baseos-rpms                                                    132 k
 syslinux-extlinux-nonlinux                                                 noarch                                                 6.04-0.20.el9                                                         rhel-9-for-x86_64-baseos-rpms                                                    399 k
 syslinux-nonlinux                                                          noarch                                                 6.04-0.20.el9                                                         rhel-9-for-x86_64-baseos-rpms                                                    578 k
 xorriso                                                                    x86_64                                                 1.5.4-5.el9_5                                                         rhel-9-for-x86_64-appstream-rpms                                                 321 k
Installing weak dependencies:
 geolite2-city                                                              noarch                                                 20191217-6.el9                                                        rhel-9-for-x86_64-appstream-rpms                                                  23 M
 geolite2-country                                                           noarch                                                 20191217-6.el9                                                        rhel-9-for-x86_64-appstream-rpms                                                 1.6 M
 grub2-efi-x64-modules                                                      noarch                                                 1:2.06-114.el9_7                                                      rhel-9-for-x86_64-baseos-rpms                                                    1.1 M

Transaction Summary
================================================================================================================================================================================================================================================================================================
Install  16 Packages

Total download size: 30 M
Installed size: 81 M
Downloading Packages:
(1/16): ipcalc-1.0.0-5.el9.x86_64.rpm                                                                                                                                                                                                                           288 kB/s |  44 kB     00:00
(2/16): syslinux-extlinux-nonlinux-6.04-0.20.el9.noarch.rpm                                                                                                                                                                                                     2.1 MB/s | 399 kB     00:00
(3/16): syslinux-nonlinux-6.04-0.20.el9.noarch.rpm                                                                                                                                                                                                              2.5 MB/s | 578 kB     00:00
(4/16): syslinux-6.04-0.20.el9.x86_64.rpm                                                                                                                                                                                                                       3.5 MB/s | 575 kB     00:00
(5/16): syslinux-extlinux-6.04-0.20.el9.x86_64.rpm                                                                                                                                                                                                              909 kB/s | 132 kB     00:00
(6/16): dhcp-client-4.4.2-19.b1.el9.x86_64.rpm                                                                                                                                                                                                                  4.1 MB/s | 794 kB     00:00
(7/16): dhcp-common-4.4.2-19.b1.el9.noarch.rpm                                                                                                                                                                                                                  1.1 MB/s | 131 kB     00:00
(8/16): grub2-efi-x64-modules-2.06-114.el9_7.noarch.rpm                                                                                                                                                                                                         5.2 MB/s | 1.1 MB     00:00
(9/16): mtools-4.0.26-5.el9_7.x86_64.rpm                                                                                                                                                                                                                        1.5 MB/s | 227 kB     00:00
(10/16): libisofs-1.5.4-4.el9.x86_64.rpm                                                                                                                                                                                                                        1.5 MB/s | 224 kB     00:00
(11/16): libisoburn-1.5.4-5.el9_5.x86_64.rpm                                                                                                                                                                                                                    2.5 MB/s | 418 kB     00:00
(12/16): xorriso-1.5.4-5.el9_5.x86_64.rpm                                                                                                                                                                                                                       2.1 MB/s | 321 kB     00:00
(13/16): geolite2-city-20191217-6.el9.noarch.rpm                                                                                                                                                                                                                8.5 MB/s |  23 MB     00:02
(14/16): geolite2-country-20191217-6.el9.noarch.rpm                                                                                                                                                                                                             342 kB/s | 1.6 MB     00:04
(15/16): libburn-1.5.4-5.el9.x86_64.rpm                                                                                                                                                                                                                          35 kB/s | 174 kB     00:04
(16/16): rear-2.6-27.el9.x86_64.rpm                                                                                                                                                                                                                             362 kB/s | 1.0 MB     00:02
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                                                                                           5.0 MB/s |  30 MB     00:06
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                                                                                                                        1/1
  Installing       : libburn-1.5.4-5.el9.x86_64                                                                                                                                                                                                                                            1/16
  Installing       : geolite2-country-20191217-6.el9.noarch                                                                                                                                                                                                                                2/16
  Installing       : libisofs-1.5.4-4.el9.x86_64                                                                                                                                                                                                                                           3/16
  Installing       : libisoburn-1.5.4-5.el9_5.x86_64                                                                                                                                                                                                                                       4/16
  Running scriptlet: xorriso-1.5.4-5.el9_5.x86_64                                                                                                                                                                                                                                          5/16
  Installing       : xorriso-1.5.4-5.el9_5.x86_64                                                                                                                                                                                                                                          5/16
  Running scriptlet: xorriso-1.5.4-5.el9_5.x86_64                                                                                                                                                                                                                                          5/16
  Installing       : geolite2-city-20191217-6.el9.noarch                                                                                                                                                                                                                                   6/16
  Installing       : ipcalc-1.0.0-5.el9.x86_64                                                                                                                                                                                                                                             7/16
  Installing       : mtools-4.0.26-5.el9_7.x86_64                                                                                                                                                                                                                                          8/16
  Installing       : syslinux-6.04-0.20.el9.x86_64                                                                                                                                                                                                                                         9/16
  Installing       : syslinux-nonlinux-6.04-0.20.el9.noarch                                                                                                                                                                                                                               10/16
  Installing       : syslinux-extlinux-nonlinux-6.04-0.20.el9.noarch                                                                                                                                                                                                                      11/16
  Installing       : syslinux-extlinux-6.04-0.20.el9.x86_64                                                                                                                                                                                                                               12/16
  Running scriptlet: syslinux-extlinux-6.04-0.20.el9.x86_64                                                                                                                                                                                                                               12/16
  Installing       : grub2-efi-x64-modules-1:2.06-114.el9_7.noarch                                                                                                                                                                                                                        13/16
  Installing       : dhcp-common-12:4.4.2-19.b1.el9.noarch                                                                                                                                                                                                                                14/16
  Installing       : dhcp-client-12:4.4.2-19.b1.el9.x86_64                                                                                                                                                                                                                                15/16
  Installing       : rear-2.6-27.el9.x86_64                                                                                                                                                                                                                                               16/16
  Running scriptlet: rear-2.6-27.el9.x86_64                                                                                                                                                                                                                                               16/16
  Verifying        : ipcalc-1.0.0-5.el9.x86_64                                                                                                                                                                                                                                             1/16
  Verifying        : syslinux-extlinux-nonlinux-6.04-0.20.el9.noarch                                                                                                                                                                                                                       2/16
  Verifying        : syslinux-nonlinux-6.04-0.20.el9.noarch                                                                                                                                                                                                                                3/16
  Verifying        : syslinux-6.04-0.20.el9.x86_64                                                                                                                                                                                                                                         4/16
  Verifying        : syslinux-extlinux-6.04-0.20.el9.x86_64                                                                                                                                                                                                                                5/16
  Verifying        : dhcp-client-12:4.4.2-19.b1.el9.x86_64                                                                                                                                                                                                                                 6/16
  Verifying        : dhcp-common-12:4.4.2-19.b1.el9.noarch                                                                                                                                                                                                                                 7/16
  Verifying        : grub2-efi-x64-modules-1:2.06-114.el9_7.noarch                                                                                                                                                                                                                         8/16
  Verifying        : mtools-4.0.26-5.el9_7.x86_64                                                                                                                                                                                                                                          9/16
  Verifying        : geolite2-city-20191217-6.el9.noarch                                                                                                                                                                                                                                  10/16
  Verifying        : libisofs-1.5.4-4.el9.x86_64                                                                                                                                                                                                                                          11/16
  Verifying        : geolite2-country-20191217-6.el9.noarch                                                                                                                                                                                                                               12/16
  Verifying        : libisoburn-1.5.4-5.el9_5.x86_64                                                                                                                                                                                                                                      13/16
  Verifying        : xorriso-1.5.4-5.el9_5.x86_64                                                                                                                                                                                                                                         14/16
  Verifying        : libburn-1.5.4-5.el9.x86_64                                                                                                                                                                                                                                           15/16
  Verifying        : rear-2.6-27.el9.x86_64                                                                                                                                                                                                                                               16/16
Installed products updated.

Installed:
  dhcp-client-12:4.4.2-19.b1.el9.x86_64  dhcp-common-12:4.4.2-19.b1.el9.noarch geolite2-city-20191217-6.el9.noarch geolite2-country-20191217-6.el9.noarch grub2-efi-x64-modules-1:2.06-114.el9_7.noarch ipcalc-1.0.0-5.el9.x86_64              libburn-1.5.4-5.el9.x86_64
  libisoburn-1.5.4-5.el9_5.x86_64        libisofs-1.5.4-4.el9.x86_64           mtools-4.0.26-5.el9_7.x86_64        rear-2.6-27.el9.x86_64                 syslinux-6.04-0.20.el9.x86_64                 syslinux-extlinux-6.04-0.20.el9.x86_64 syslinux-extlinux-nonlinux-6.04-0.20.el9.noarch
  syslinux-nonlinux-6.04-0.20.el9.noarch xorriso-1.5.4-5.el9_5.x86_64

Complete!
[root@nodo1 ~]#

Verificar la instalación:

[root@nodo1 ~]# rear -V
Relax-and-Recover 2.6 / 2020-06-17

2.2 Configuración de almacenamiento (NFS)

ReaR utilizará el servidor NFS configurado previamente como destino de los backups.

No es necesario montar el recurso manualmente, ya que ReaR gestionará el acceso automáticamente mediante la configuración del fichero local.conf.


2.3 Análisis de volúmenes

Antes de configurar ReaR, es importante analizar la estructura de almacenamiento del sistema para determinar qué volúmenes deben incluirse en el Backup.

[root@nodo1 ~]# pvs
  PV                 VG        Fmt  Attr PSize   PFree
  /dev/mapper/mpathb vg_shared lvm2 a--   39.96g    0
  /dev/sda2          rhel      lvm2 a--  <19.00g    0

En este sistema se identifican dos Volume Groups:

  • rhel: contiene el sistema operativo (root filesystem y configuración)
  • vg_shared: volumen adicional destinado a almacenamiento de datos y que no nos interesa para una recuperación del sistema.

2.4 Criterio de inclusión en el backup

El objetivo de ReaR es permitir la recuperación del sistema operativo y su configuración tras un fallo completo del sistema.

Por este motivo:

  • Se debe incluir el Volume Group que contiene el sistema (rhel)
  • Se deben excluir volúmenes de datos no críticos para el arranque del sistema

En entornos empresariales, los datos suelen gestionarse mediante soluciones independientes (cabinas SAN, backups específicos, etc.), por lo que no es necesario incluirlos en el proceso de Disaster Recovery del sistema operativo.


2.5 Configuración de ReaR

Editar el fichero de configuración:

vi /etc/rear/local.conf

Añadir la siguiente configuración:

[root@nodo1 ~]# cat /etc/rear/local.conf
BACKUP=NETFS
BACKUP_URL=nfs://192.168.1.79/srv/nfs/rear
OUTPUT=ISO

ONLY_INCLUDE_VG=( "rhel" )

BACKUP_PROG_EXCLUDE=( "/tmp/*" )

2.6 Explicación de la configuración

  • BACKUP=NETFS
 Define el uso de un sistema de almacenamiento en red (NFS) para guardar el backup.
  • BACKUP_URL
 Especifica la ubicación del almacenamiento remoto.
  • OUTPUT=ISO
 Genera una imagen arrancable que permite recuperar el sistema.
  • ONLY_INCLUDE_VG
 Limita el backup únicamente al Volume Group del sistema operativo,
 excluyendo volúmenes adicionales como vg_shared.
  • BACKUP_PROG_EXCLUDE
 Excluye directorios temporales que no aportan valor al backup.

2.7 Beneficios de esta configuración

  • Reducción del tamaño del backup
  • Mejora del tiempo de ejecución
  • Recuperación más rápida del sistema
  • Separación entre sistema operativo y datos
  • Alineación con buenas prácticas de Disaster Recovery

Parte 4: Generación del backup con ReaR

Una vez configurado ReaR, se puede proceder a la generación del backup del sistema junto con la imagen de recuperación.


4.1 Ejecución del backup

El backup se genera mediante el siguiente comando:

[root@nodo1 ~]# rear -v mkbackup
Relax-and-Recover 2.6 / 2020-06-17
Running rear mkbackup (PID 35106)
Using log file: /var/log/rear/rear-nodo1.log
Running workflow mkbackup on the normal/original system
Using backup archive '/var/tmp/rear.Z19EY90tfzQHAYc/outputfs/nodo1/backup.tar.gz'
Using autodetected kernel '/boot/vmlinuz-5.14.0-611.27.1.el9_7.x86_64' as kernel in the recovery system
Creating disk layout
Excluding Volume Group vg_shared
GRUB found in first bytes on /dev/sda and GRUB 2 is installed, using GRUB2 as a guessed bootloader for 'rear recover'
Verifying that the entries in /var/lib/rear/layout/disklayout.conf are correct ...
Creating recovery system root filesystem skeleton layout
Copying logfile /var/log/rear/rear-nodo1.log into initramfs as '/tmp/rear-nodo1-partial-2026-04-07T19:57:01+02:00.log'
Copying files and directories
Copying binaries and libraries
Copying all kernel modules in /lib/modules/5.14.0-611.27.1.el9_7.x86_64 (MODULES contains 'all_modules')
Copying all files in /lib*/firmware/
Testing that the recovery system in /var/tmp/rear.Z19EY90tfzQHAYc/rootfs contains a usable system
/usr/lib64/systemd/libsystemd-core-252.so requires libraries where 'ldd' shows 'not found'
/usr/lib64/systemd/libsystemd-core-252.so requires libsystemd-shared-252.so which was not found by 'ldd' but exists as /var/tmp/rear.Z19EY90tfzQHAYc/rootfs/usr/lib64/systemd/libsystemd-shared-252.so
Creating recovery/rescue system initramfs/initrd initrd.cgz with gzip default compression
Created initrd.cgz with gzip default compression (901115018 bytes) in 35 seconds
Making ISO image
Wrote ISO image: /var/lib/rear/output/rear-nodo1.iso (877M)
Copying resulting files to nfs location
Saving /var/log/rear/rear-nodo1.log as rear-nodo1.log to nfs location
Copying result files '/var/lib/rear/output/rear-nodo1.iso /var/tmp/rear.Z19EY90tfzQHAYc/tmp/VERSION /var/tmp/rear.Z19EY90tfzQHAYc/tmp/README /var/tmp/rear.Z19EY90tfzQHAYc/tmp/rear-nodo1.log' to /var/tmp/rear.Z19EY90tfzQHAYc/outputfs/nodo1 at nfs location
Making backup (using backup method NETFS)
Creating tar archive '/var/tmp/rear.Z19EY90tfzQHAYc/outputfs/nodo1/backup.tar.gz'
Archived 3133 MiB [avg 13258 KiB/sec] OK
WARNING: tar ended with return code 1 and below output:
  ---snip---
  tar: /var/lib/gssproxy/default.sock: socket ignored
  tar: /var/lib/gssproxy/ipa_ccache_sweeper.sock: socket ignored
  tar: /local_fs: File removed before we read it
  ----------
This means that files have been modified during the archiving
process. As a result the backup may not be completely consistent
or may not be a perfect copy of the system. Relax-and-Recover
will continue, however it is highly advisable to verify the
backup in order to be sure to safely recover this system.

Archived 3133 MiB in 243 seconds [avg 13203 KiB/sec]
Exiting rear mkbackup (PID 35106) and its descendant processes ...
Running exit tasks

Este proceso realiza:

  • Creación de una imagen ISO arrancable
  • Backup completo del sistema según la configuración definida
  • Almacenamiento en el servidor NFS

4.2 Verificación del backup

Tras la ejecución, se debe comprobar:

  • Que la imagen ISO ha sido generada correctamente
  • Que el backup está disponible en el servidor NFS
  • Que no se han producido errores durante el proceso
[root@nodo1 ~]# df -hT /rear_bck
Filesystem                 Type  Size  Used Avail Use% Mounted on
192.168.1.79:/srv/nfs/rear nfs4   17G  8.2G  8.9G  48% /rear_bck
[root@nodo1 ~]# ls -lrt /rear_bck/nodo1/
total 4112512
-rw-------. 1 root root  918857728 Apr  7 19:59 rear-nodo1.iso
-rw-------. 1 root root        269 Apr  7 19:59 VERSION
-rw-------. 1 root root        202 Apr  7 19:59 README
-rw-------. 1 root root     181564 Apr  7 19:59 rear-nodo1.log
-rw-------. 1 root root 3285509341 Apr  7 20:03 backup.tar.gz
-rw-------. 1 root root    6642807 Apr  7 20:03 backup.log
-rw-------. 1 root root          0 Apr  7 20:03 selinux.autorelabel
[root@nodo1 ~]#

4.3 Automatización (opcional)

ReaR está diseñado para escenarios de Disaster Recovery, por lo que no es necesario ejecutarlo de forma frecuente.

Se recomienda:

  • Ejecutar el backup tras cambios relevantes en el sistema
  • O programar su ejecución de forma periódica (por ejemplo, semanal)

Ejemplo de cronjob:

0 3 * * 0 /usr/sbin/rear -v mkbackup >> /var/log/rear/cron-rear.log 2>&1

4.4 Consideraciones

  • Evitar ejecuciones innecesarias
  • Mantener actualizada la imagen de recuperación
  • Verificar periódicamente los backups generados
  • Ejecutar tras cambios en el sistema (kernel, paquetes, almacenamiento)

Resultado

Se genera una copia completa del sistema junto con una imagen de recuperación, lista para ser utilizada en un proceso de Disaster Recovery.