Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第 27 章 Relax-and-Recover (ReaR)

当软件或硬件故障破坏系统时,系统管理员需要三项任务来将其恢复为新硬件环境中的完全正常工作状态:

  1. 在新硬件中引导救援系统
  2. 复制原始存储布局
  3. 恢复用户和系统文件

大多数备份软件仅解决第三个问题。要解决第一个和第二个问题,请使用 Relax-and-Recover(ReaR),这是灾难恢复和系统迁移实用程序。

备份软件创建备份.通过创建救援系统为备份软件提供补充.在新硬件上启动救援系统可让您发出 rear restore 命令,从而启动恢复过程。在此过程中,ReaR 复制分区布局和文件系统,提示从备份软件创建的备份中恢复用户和系统文件,最后安装启动加载器。默认情况下,由 ReaR 创建的救援系统仅恢复存储布局和启动加载器,而不是实际的用户和系统文件。

本章论述了如何使用 ReaR。

27.1. 基本 ReaR 用法

27.1.1. 安装 ReaR

作为 root 运行以下命令安装 rear 软件包:

~]# yum install rear

27.1.2. 配置 ReaR

rear 在 /etc/rear/local.conf 文件中配置。通过添加以下行来指定救援系统配置:

OUTPUT=output format
OUTPUT_URL=output location

使用救援系统 格式替换输出 格式,例如: ISO 磁盘镜像的 ISO 或 USB 用于可引导 USB。

使用将 输出位置 替换为本地文件系统目录的 file:///mnt/rescue_system/,或 SFTP 目录的 sftp://backup:.0.0/

例 27.1. 配置救援系统格式和位置

要将 ReaR 配置为将救援系统作为 ISO 镜像输出到 /mnt/rescue_system/ 目录中,请将这些行添加到 /etc/rear/local.conf 文件中:

OUTPUT=ISO
OUTPUT_URL=file:///mnt/rescue_system/

有关所有选项的列表,请参阅 rear(8)man page 的"救援映像配置"一节。

特定于 ISO 的配置

使用 例 27.1 “配置救援系统格式和位置” 中的配置会在两个位置生成两个等同的输出文件:

  • /var/lib/rear/output/ - rear 的默认输出位置
  • /mnt/rescue_system/HOSTNAME/rear-localhost.iso - 在 OUTPUT_URL中指定的输出位置

但是,通常只需要一个 ISO 镜像。要使 ReaR 只在用户指定的目录中创建 ISO 镜像,请将这些行添加到 /etc/rear/local.conf 中:

OUTPUT=ISO
BACKUP=NETFS
OUTPUT_URL=null
BACKUP_URL="iso:///backup"
ISO_DIR="output location"

将输出位置替换为输出的所需位置

27.1.3. 创建救援系统

以下示例演示了如何创建带有详细输出的救援系统:

~]# rear -v mkrescue
Relax-and-Recover 1.17.2 / Git
Using log file: /var/log/rear/rear-rhel7.log
mkdir: created directory '/var/lib/rear/output'
Creating disk layout
Creating root filesystem layout
TIP: To login as root via ssh you need to set up /root/.ssh/authorized_keys or SSH_ROOT_PASSWORD in your configuration file
Copying files and directories
Copying binaries and libraries
Copying kernel modules
Creating initramfs
Making ISO image
Wrote ISO image: /var/lib/rear/output/rear-rhel7.iso (124M)
Copying resulting files to file location

使用 例 27.1 “配置救援系统格式和位置” 中的配置,ReaR 会打印上述输出。最后两行确认救援系统已成功创建并复制到配置的备份位置 /mnt/rescue_system/。因为系统的主机名是 rhel7,备份位置现在包含与救援系统的目录 rhel7/ 以及一个辅助文件:

~]# ls -lh /mnt/rescue_system/rhel7/
total 124M
-rw-------. 1 root root 202 Jun 10 15:27 README
-rw-------. 1 root root 166K Jun 10 15:27 rear.log
-rw-------. 1 root root 124M Jun 10 15:27 rear-rhel7.iso
-rw-------. 1 root root 274 Jun 10 15:27 VERSION

将救援系统传输到外部介质,以便在出现灾难时不会丢失它。

27.1.4. 调度 ReaR

要将 ReaR 调度为使用 cron 作业 调度程序定期创建救援系统,请在 /etc/crontab 文件中添加以下行:

minute hour day_of_month month day_of_week root /usr/sbin/rear mkrescue

将以上命令替换为 cron 时间规范(在 第 24.1.2 节 “调度 Cron 作业”中详细介绍)。

例 27.2. 调度 ReaR

要使 ReaR 每个工作日在 22:00 创建救援系统,请将此行添加到 /etc/crontab 文件中:

0 22 * * 1-5 root /usr/sbin/rear mkrescue

27.1.5. 执行系统救援

执行恢复或迁移:

  1. 在新硬件上启动救援系统。例如:将 ISO 镜像刻录到 DVD 并从 DVD 引导。
  2. 在控制台界面中,选择 "Recover" 选项:

    图 27.1. rescue system: 菜单

    Rear rescue system 菜单
  3. 您将进入提示:

    图 27.2. rescue system: prompt

    修复救援系统提示
    警告

    当您在下一步中开始恢复后,它可能无法被撤销,您可能丢失系统物理磁盘上的任何存储内容。

  4. 运行 rear restore 命令,以执行恢复或迁移。然后,救援系统会重新创建分区布局和文件系统:

    图 27.3. 救援系统:运行"rear restore"

    恢复救援系统
  5. 将备份中的用户和系统文件恢复到 /mnt/local/ 目录。

    例 27.3. 恢复用户和系统文件

    在这个示例中,备份文件是按照 第 27.2.1.1 节 “配置内部备份方法” 中的说明创建的 tar 归档。首先,从存储中复制存档,然后将文件解压缩到 /mnt/local/ 中,然后删除归档:

    ~]# scp root@192.168.122.7:/srv/backup/rhel7/backup.tar.gz /mnt/local/
    ~]# tar xf /mnt/local/backup.tar.gz -C /mnt/local/
    ~]# rm -f /mnt/local/backup.tar.gz

    新存储必须有足够的空间用于归档和提取的文件。

  6. 验证这些文件是否已恢复:

    ~]# ls /mnt/local/

    图 27.4. 救援系统:从备份中恢复用户和系统文件

    修复救援系统恢复备份
  7. 确保 SELinux 在下次引导时重新标记文件:

    ~]# touch /mnt/local/.autorelabel

    否则,您可能无法登录系统,因为 /etc/passwd 文件的 SELinux 上下文可能不正确。

  8. 通过输入 exit 来完成恢复。rear 将重新安装启动加载器。之后,重启系统:

    图 27.5. 救援系统:完成恢复

    Rear rescue 系统完成恢复

    重新引导后,SELinux 将重新标记整个文件系统。然后,您将能够登录恢复的系统。