备份和恢复

This chapter contains information on the files you need to back up. With the built-in backup and restore solution (mgradm backup) you create SUSE Multi-Linux Manager backups. Information about restoring from your backups in the case of a system failure completes this chapter.

由于 SUSE Multi-Linux Manager 依赖数据库及已安装的程序和配置,因此备份安装的所有组件至关重要。请定期备份您安装的 SUSE Multi-Linux Manager 系统,以防止数据丢失并确保快速恢复。

无论您使用哪种备份方法,可用空间必须是当前安装使用的空间量的至少三倍。空间不足可能导致备份失败,因此请经常检查可用空间。

1. 借助 smdba 禁用旧方法

如果您全新安装了 SUSE Multi-Linux Manager 5.1,则可跳过本节内容。

随着内置解决方案的问世,借助 smdba 备份工具的旧方法已被弃用。如果您已从采用 smdba 的旧系统迁移至新解决方案,就必须禁用旧功能并去除旧备份归档。

您可以选择在迁移前禁用 smdba(推荐操作),也可在完成迁移后的 SUSE Multi-Linux Manager 5.1 系统中执行该操作。

过程:迁移前禁用已安装 smdba 的旧方法

本过程仅适用于仍安装有 smdba 的场景。

SUSE Manager 4.3(非容器化安装)与 SUSE Manager 5.0(容器化安装)系统中执行的命令有所不同(适用于 5.0 版本,或迁移前的 4.3 版本):

SUSE Manager 4.3

On the command line, as root, execute:

smdba backup-hot --enable=off
SUSE Manager 5.0

On the command line of the container host, as root, execute:

mgrctl exec -- smdba backup-hot --enable=off

此命令会按如下方式更改 /var/lib/pgsql/data/postgresql.conf 文件中的 archive_command 参数:

archive_command = '/bin/true'

至此,您的旧系统已准备就绪,可迁移至 SUSE Multi-Linux Manager 5.1。

Procedure: Disabling old method on SUSE Multi-Linux Manager 5.1 after migration

请在迁移后执行此过程(此时 smdba 已不可用)。

  1. 以 root 用户身份在容器主机中编辑 /var/lib/containers/storage/volumes/var-pgsql/_data/postgresql.conf 文件,并设置以下选项:

    archive_mode = off
    archive_command = '/bin/true'
  2. Restart the container:

    mgradm restart

2. 备份 SUSE Multi-Linux Manager

要备份 SUSE Multi-Linux Manager 安装,最全面的方法是使用 mgradm backup create 命令。这种方法不仅可以节省备份管理时间,还可以在发生故障时更快地重新安装和重新同步。不过,这种方法需要大量磁盘空间,并且可能要花费很长时间才能完成备份。

命令 mgradm backup create 可备份某个目录。这个目录可以是本地目录或挂载的远程存储空间。

命令 mgradm backup create 允许自定义备份内容。有关所有可用选项,请参见 mgradm backup create --help

2.1. Full backup of SUSE Multi-Linux Manager

SUSE Multi-Linux Manager 的完整备份包含以下组件的备份:

  • SUSE Multi-Linux Manager 卷

  • 数据库卷

  • podman 网络配置

  • podman 机密

  • SUSE Multi-Linux Manager systemd 服务

  • SUSE Multi-Linux Manager 容器映像

创建完整备份期间,SUSE Multi-Linux Manager 服务将自动停止。此期间的服务中断时间可能较长。备份完成后,服务会自动重启。

Procedure: Creating full backup with mgradm backup create
  1. 在容器主机上,以 root 身份执行以下命令创建备份:

    mgradm backup create $path

    请将 $path 替换为备份位置的路径。

2.2. Partial backup of SUSE Multi-Linux Manager

mgradm backup create 工具允许创建部分备份。您可以跳过个别卷或所有卷、跳过数据库备份和映像。

特别是,当跳过数据库备份时,系统会创建备份而不停止 SUSE Multi-Linux Manager 服务,备份可以作为两阶段备份流程中的一个阶段运行。

部分备份仅针对部分数据执行,并未考量这些数据与其他未备份部分之间可能存在的依赖关系。因此,部分备份无法保障备份与恢复操作的一致性。

Procedure: Creating partial backup by skipping database backup
  1. 在容器主机上,以 root 身份执行以下命令创建备份:

    mgradm backup create --skipdatabase $path

    请将 $path 替换为备份位置的路径。

Procedure: Creating partial backup by skipping a volume
  1. 在容器主机上,以 root 身份执行以下命令创建备份:

    mgradm backup create --skipvolumes $volumes $path

    请将 $path 替换为备份位置的路径。

    Replace $volumes by the name of the volume name to be excluded from the backup, or by a comma separated list of volumes to be excluded.

    使用 all 可以跳过所有卷(数据库卷除外)。

2.3. 备份额外的卷

命令 mgradm backup 可使用 SUSE Multi-Linux Manager 卷的内部列表。如果安装期间配置了其他卷,或有其他卷需要添加到备份中,则需使用 --extravolumes $volumes 指定这些卷。

Procedure: Creating backup with additional custom volume
  1. 在容器主机上,以 root 身份执行以下命令创建备份:

    mgradm backup create --extravolumes $volume $path

    请将 $path 替换为备份位置的路径。

    请将 $volumes 替换为备份中要包含的某个卷或一系列以逗号分隔的卷名称。

2.4. Perform a manual database backup

Procedure: Performing a manual database backup
  1. 请为备份分配永久存储空间。

  2. 在 SUSE Multi-Linux Manager 容器主机的命令提示符处,以 root 身份执行以下命令:

    mgradm backup create --skipvolumes all --skipconfig --skipimages $path

3. Restore SUSE Multi-Linux Manager from the existing backup

从现有备份恢复 SUSE Multi-Linux Manager 时,系统将枚举卷、映像和配置的备份以进行恢复。与创建备份的场景不同,恢复操作不使用内部卷列表,而是自动检测备份中存在的所有卷或映像。

收集待恢复项目列表后,系统会执行存在性和完整性检查。存在性检查用于确保恢复备份时不会意外覆盖现有卷、映像或配置。完整性检查通过计算备份项目的校验和完成。

两项检查均通过后,才会执行实际的备份恢复操作。

恢复操作完成后,SUSE Multi-Linux Manager 服务不会自动启动。

Procedure: Restoring from an existing backup
  1. 在容器主机上以 root 身份运行以下命令,重新部署 SUSE Multi-Linux Manager 服务器:

    mgradm stop
    mgradm backup restore $path
    mgradm start

    请将 $path 替换为备份位置的路径。

验证备份操作用时可能会很长。如果可通过其他方法确保备份完整性,则可以使用 --skipverify 选项跳过验证。

如果出于某些原因需要跳过恢复备份中的某个卷,可以使用 --skipvolumes $volumes 选项。

Procedure: Recommended steps after SUSE Multi-Linux Manager restore
  1. 使用 SUSE Multi-Linux Manager Web UI 或在容器中的命令提示符处使用 mgr-sync 工具重新同步您的 SUSE Multi-Linux Manager 储存库。您可以选择重新注册产品,或跳过注册和 SSL 证书生成部分。

  2. On the container host, check whether you need to restore /var/lib/containers/storage/volumes/var-spacewalk/_data/packages/. If /var/lib/containers/storage/volumes/var-spacewalk/_data/packages/ was not in your backup, you need to restore it. If the source repository is available, you can restore /var/lib/containers/storage/volumes/var-spacewalk/_data/packages/ with a complete channel synchronization:

    mgrctl exec -ti -- mgr-sync refresh --refresh-channels
  3. 安排在下次启动 rhn-search 服务时重新创建搜索索引。此命令仅生成调试消息,而不生成错误消息。在容器主机上,输入以下命令:

    此命令将生成调试消息,成功完成时会返回以下输出:

    On the container host, enter:

    mgrctl exec -ti -- rhn-search cleanindex