适用于 SUSE Linux Enterprise High Availability Extension 12

19 使用 Rear (Relax-and-Recover) 实现灾难恢复

Relax-and-Recover(以前称为 ReaR,在本章中缩写为 Rear)是用于创建灾难恢复映像的管理员工具集。灾难恢复信息可通过网络储存,也可本地储存在硬盘、USB 设备、DVD/CD-R、磁带或类似媒体上。备份数据储存在网络文件系统 (NFS) 上。

请记住,必须在发生任何灾难之前配置并测试 Rear。如果灾难已经发生,使用 Rear 也无济于事。

警告
警告:需要大量测试

每当创建灾难恢复媒体时,都始终必须使用相同的测试计算机测试灾难恢复。只有此过程的结果令人满意,才说明灾难恢复系统的设置正确、可靠。

19.1 概念概述

Rear 支持多种备份工具(Tivoli Storage Manager、QNetix Galaxy、Symantec NetBackup、EMC NetWorker 和 HP DataProtector),并可以将其恢复媒体输出到 CD 或 PXE 环境中。恢复步骤可通过 NFS、CIFS 或其他网络文件系统执行。

要使用 Rear,至少需要两个相同的系统:储存生产环境的主计算机,以及测试计算机。相同的在此环境中表示,例如,使用同一内核驱动程序的网卡可以相互替换。如果某个硬件组件使用的是不同的驱动程序,则 Rear 不会认为它与其他组件相同。

SUSE Linux Enterprise Server 在 rear版本包中随附了一个灾难恢复系统。

请按以下方式使用 Rear:

  1. 准备.  制作可引导的 CD 备份系统。

  2. 测试.  在任何灾难发生之前,全面测试恢复过程并测试主系统所在硬件上的备份!

  3. 恢复.  从恢复媒体引导,然后从备份恢复系统。

为了准备救援媒体,Rear 将会执行以下步骤:

Rear 准备恢复媒体
  1. 从目标系统收集系统信息。

  2. 储存磁盘布局(分区、文件系统、LVM、RAID 和引导加载程序)。

  3. 克隆系统(内核驱动程序和模块、设备驱动程序配置、网络配置、系统软件和工具)。

  4. 备份系统和用户数据。

  5. 使用系统配置创建可引导的恢复媒体。

当灾难发生时,恢复过程包括以下操作:

恢复过程
  1. 从恢复媒体引导。

  2. 恢复磁盘布局(分区、RAID 配置、LVM 和文件系统)。

  3. 恢复系统和用户数据。

  4. 恢复引导加载程序。

  5. 重引导系统。

注意
注意:Rear 和 Btrfs 文件系统中的子卷与快照

您应该了解,由于技术和概念方面的问题,Rear 和 Btrfs 工具存在一些限制:

  • 包含子卷但不包含快照的 Btrfs. 至少需要使用 Rear 版本 1.15,因为此版本支持恢复 Btrfs 子卷结构。可以备份和恢复数据。

  • 包含子卷和快照的 Btrfs. 无法对快照中的数据执行一般的备份和恢复。普通的备份工具(例如 tar)无法将数据与 Btrfs 快照结构区分开。解决方法之一是排除 Btrfs 快照中的数据,并将此数据与一般数据分开储存。

19.2 应对最坏情境:灾难恢复方案

发生最坏情境之前,采取措施准备灾难恢复计划。灾难恢复计划是一个文档,它集中了所有风险、基础设施和预算。您可能已经准备了一些计划,但下面是常规概述:

  • 风险分析.  对基础设施进行可靠的风险分析。列出所有可能的威胁并评估它们的严重性。确定这些威胁的相似程度并划分优先级。建议使用简单的分类:可能性和影响。

  • 预算计划.  分析结果是一个概述,指出哪些风险可以忍受,哪些风险对业务非常关键。请自问一下,如何最大限度降低风险以及降低风险所需的费用。根据公司的规模,在灾难恢复方面的花费占总体 IT 预算的 2% 到 15%。

  • 灾难恢复计划开发.  制作核对清单、测试过程、建立并指派优先级以及列出 IT 基础设施库存。定义当基础设施中的一些服务失败时,如何处理问题。

  • 测试.  定义详细的计划后,测试该计划。每年至少测试一次。使用与主要 IT 基础设施相同的测试硬件。

19.3 设置 Rear

要配置 Rear,请将您的选项添加到配置文件 /etc/rear/local.conf 中。以前的文件 /etc/rear/sites.conf 已从包中去除。如果您上次设置时添加了这样一个文件,Rear 将会继续使用该文件。

定义输出方法,为此,请使用 OUTPUT 变量. 例如,要将恢复媒体输出为 ISO 映像,请使用:

OUTPUT=ISO

更改配置文件后,请通过运行以下命令来确保所有设置都正确无误:

rear dump

检查输出并查看有无错误。

要了解更多信息,请参见 Rear 的手册页 (man rear)。

19.4 在 NFS 服务器上储存备份

Rear 可在多种情境下使用。以下示例使用 NFS 服务器作为备份储存:

过程 19.1 在 NFS 服务器上储存备份
  1. 根据《SUSE Linux Enterprise Server 12 管理指南》的“通过 NFS 共享文件系统”一章中所述,使用 YaST 设置 NFS 服务器。网址:http://www.suse.com/documentation/

  2. 确保 /etc/exports 文件中包含 NFS 服务器的正确配置:

    /srv/nfs    *(fsid=0,crossmnt,rw,no_root_squash,sync,no_subtree_check)
  3. 调整配置文件 /etc/rear/local.conf。用自己的值替换 NETFS_URL

    如果您的 NFS 主机不是 IP 地址而是主机名,则在恢复备份时,DNS 必须处于运行状态。以下网址处的文档的 Various Settings(各种设置)部分列出了更多选项:http://rear.github.com/documentation/

    # Create rear rescue media as ISO image:
    OUTPUT=ISO
    # Store the backup file via NFS on an NFS server:
    BACKUP=NETFS
    # BACKUP_OPTIONS variable contains the NFS mount options and
    # with 'mount -o nolock' no rpc.statd (plus rpcbind) are needed:
    BACKUP_OPTIONS="nfsvers=3,nolock"
    # If the NFS server is not an IP address but a hostname,
    # DNS must work in the rear recovery system when the backup is restored.
    BACKUP_URL=nfs://192.168.1.1/nfs/rear/
    # Keep an older copy of the backup in a HOSTNAME.old directory
    # provided there is no '.lockfile' in the HOSTNAME directory:
    NETFS_KEEP_OLD_BACKUP_COPY=yes
    # Files in btrfs subvolumes are excluded by 'tar --one-file-system'
    # so that such files must be explictly included to be in the backup.
    # Files in the following SLE12 default btrfs subvolumes are
    # in the below example not included to be in the backup
    #   /.snapshots/*  /var/tmp/*  /tmp/*  /var/crash/*
    # but files in /home/* are included to be in the backup
    # (one line!):
    BACKUP_PROG_INCLUDE=( '/home/*' '/var/spool/*' '/var/opt/*' '/var/log/*' 
      '/var/lib/pgsql/*' '/var/lib/mailman/*' '/var/lib/named/*' '/usr/local/*' 
      '/srv/*' '/boot/grub2/x86_64-efi/*' '/opt/*' '/boot/grub2/i386-pc/*' )
    # Avoid that "rear recover" is 'Creating btrfs-filesystem' by default
    # also for every mounted btrfs subvolume by excluding the mountpoints
    # of the mounted btrfs subvolumes from component recreation
    # see /usr/share/doc/packages/rear/user-guide/06-layout-configuration.txt
    # and /usr/share/rear/conf/default.conf
    # When /home is a separated filesystem remove "fs:/home" from the list below
    # (one line!):
    EXCLUDE_RECREATE=( "${EXCLUDE_RECREATE[@]}" "fs:/home" "fs:/.snapshots" 
       "fs:/var/tmp" "fs:/var/spool" "fs:/var/opt" "fs:/var/log" 
       "fs:/var/lib/pgsql" "fs:/var/lib/mailman" "fs:/var/lib/named" 
       "fs:/usr/local" "fs:/tmp" "fs:/srv" "fs:/var/crash" 
       "fs:/boot/grub2/x86_64-efi" "fs:/opt" "fs:/boot/grub2/i386-pc" )
    # This option defines a root password to allow SSH connection
    # without a public/private key pair
    #SSH_ROOT_PASSWORD="password_on_the_rear_recovery_system"
  4. 运行以下命令准备备份:

    rear -v mkbackup

要在测试机上执行灾难恢复,请如下所示继续:

过程 19.2 在测试机上执行灾难恢复
  1. 找到以 /var/lib/rear/output/rear-主机名.iso 名称储存的恢复 ISO 映像,将其刻录到 CD 上。

  2. 使用恢复 CD 引导测试机。

  3. 从菜单选项中选择恢复名称并按 Enter

  4. root 用户身份登录(无需密码)。

  5. 输入 rear recover 以启动恢复过程。恢复过程安装并配置计算机并从 NFS 服务器检索备份数据。

执行此过程后,确保测试机已正确设置,并可替代主机。定期测试此过程,确保一切按预期运行。保留恢复 CD 的副本,以防媒体损坏。

要将 EMC Networker 用作备份工具,请使用以下配置文件(相应地更改 BACKUP_URL):

BACKUP=NSR
OUTPUT=ISO
BACKUP_URL=nfs://dd990.example.com/data/col1/rear/backup
OUTPUT_URL=nfs://dd990.example.com/data/col1/rear/output
NSRSERVER=backupserver.example.com
RETENTION_TIME="Month"

19.5 使用 YaST Rear 模块

YaST Rear 模块可用于进行基本设置。Rear 将恢复映像和数据保存于 NFS 后端或闪存盘中。但是,YaST Rear 模块不支持从灾难中恢复。这需要一些专业知识,并且需要由管理员手动完成。

要启动基本设置,请按如下操作:

  1. 确定如何启动恢复系统。如果您要从闪存盘引导,请选择 USB;如果要从 CD-ROM 引导,请选择 ISO

  2. 确定备份要存储的位置。选择 NFSUSB

    • 如果需要使用提供网络文件系统的服务器,请选择 NFS。指定该位置为 nfs://hostname/directory

    • 如果您想将数据存储在 USB 记忆棒中,请选择 USB。如果没有显示 USB 设备,请连接闪存盘或 USB 磁盘,然后单击重新扫描 USB 设备

  3. 如果您想保存以前的备份副本,请查看保存旧的备份

  4. 如果您想添加也应包含于备份中的附加目录,请使用高级菜单并选择备份中其他目录

  5. 如果因内核模块缺失而使救援系统无法引导,请使用高级菜单,选择救援系统中的其他内核模块,并将相应的内核模块添加到为救援系统添加的模块的列表中。

  6. 单击立即保存并运行 rear按钮,启动备份进程。

YaST Rear 模块完成备份后,请测试备份以确保其按预期工作。

19.6 更多信息

打印此页