第 27 章 Relax-and-Recover (ReaR)
当软件或硬件故障破坏系统时,系统管理员需要三项任务来将其恢复为新硬件环境中的完全正常工作状态:
- 在新硬件中引导救援系统
- 复制原始存储布局
- 恢复用户和系统文件
大多数备份软件仅解决第三个问题。要解决第一个和第二个问题,请使用 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://backup:.0.0/
用于 SFTP 目录。
例 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 软件包提供的 /etc/cron.d/
crontab 文件会在 1:30 AM 每天自动运行 rear
rear mkrescue
命令,以计划定期创建救援系统的 Relax-and-Recover (ReaR)工具。该命令只创建一个救援系统,而不是数据备份。您仍需要自行计划定期备份数据。例如:
-
您可以添加将调度
rear mkbackuponly
命令的另一个 crontab。 -
您还可以更改现有的 crontab 来运行
rear mkbackup
命令,而不是默认的/usr/sbin/rear checklayout || /usr/sbin/rear mkrescure
命令。 - 如果使用外部备份方法,您可以调度外部备份。详情取决于您在 ReaR 中使用的备份方法。如需了解更多详细信息,请参阅将 ReaR 与备份软件集成。
rear
软件包中提供的 /etc/cron.d/rear
crontab 文件已弃用,因为默认情况下,无法执行备份。详情请查看对应的 已弃用的功能 shell 和命令行工具。
27.1.5. 执行系统救援
执行恢复或迁移:
- 在新硬件上启动救援系统。例如:将 ISO 镜像刻录到 DVD 并从 DVD 引导。
在控制台界面中,选择 "Recover" 选项:
您将进入提示:
图 27.2. rescue system: prompt
警告当您在下一步中开始恢复后,它可能无法被撤销,您可能丢失系统物理磁盘上的任何存储内容。
运行
rear restore
命令,以执行恢复或迁移。然后,救援系统会重新创建分区布局和文件系统:图 27.3. 救援系统:运行"rear restore"
将备份中的用户和系统文件恢复到
/mnt/local/
目录。例 27.2. 恢复用户和系统文件
在这个示例中,备份文件是按照 第 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
新存储必须有足够的空间用于归档和提取的文件。
验证这些文件是否已恢复:
~]# ls /mnt/local/
图 27.4. 救援系统:从备份中恢复用户和系统文件
确保 SELinux 在下次引导时重新标记文件:
~]# touch /mnt/local/.autorelabel
否则,您可能无法登录系统,因为
/etc/passwd
文件的 SELinux 上下文可能不正确。通过输入
exit
来完成恢复。rear 将重新安装启动加载器。之后,重启系统:图 27.5. 救援系统:完成恢复
重新引导后,SELinux 将重新标记整个文件系统。然后,您将能够登录恢复的系统。