介绍如何进行 oVirt Engine 的备份、恢复以及相关操作,包括自动备份脚本、手动备份步骤、托管引擎的恢复流程,以及恢复后的配置和验证步骤。
1. Engine 备份部分
1.1 备份使用的脚本
以下是一个用于自动备份 oVirt Engine 的 Bash 脚本:
#!/bin/bash
# 设置备份目录
backup_dir="/data/backup"
backup_file="$backup_dir/engine_backup_$(date +\%Y\%m\%d_\%H\%M\%S).tar"
# 设置日志文件名
log_file="$backup_dir/backup_log_$(date +\%Y\%m\%d).log"# 显示进度条的函数
show_progress() {local percentage="$1"local width=50local completed=$((percentage * width / 100))local remaining=$((width - completed))printf "["for ((i=0; i<completed; i++)); doprintf "#"donefor ((i=0; i<remaining; i++)); doprintf " "doneprintf "] (%d%%)\r" "$percentage"
}# 后台运行 engine-backup 命令并记录输出日志
(engine-backup --mode=backup --file="$backup_file" > "$log_file" 2>&1) &# 获取 engine-backup 进程的 PID
backup_pid=$!# 显示 "Starting engine backup..."
echo "Starting engine backup..."while ps -p $backup_pid > /dev/null; doif [ -f "$log_file" ]; then# 从日志文件中读取进度信息progress_line=$(tail -n 1 "$log_file")if [[ $progress_line == *"Progress: "* ]]; thenprogress_percentage=$(echo "$progress_line" | grep -oP "Progress: \K[0-9]+")show_progress "$progress_percentage"fifisleep 1
done# 在备份完成时确保进度条达到 100%
show_progress "100"
1.2 手动备份
可以通过以下命令手动备份 oVirt Engine:
engine-backup --mode=backup --file=./ops-ovirt-engine.tar.gz --log=./ops-ovirt-engine.bak.log
2. 在原 Engine 上进行数据恢复
2.1启用全局维护模式:
登录到 Hosted Engine 虚拟机的宿主机。
2.2.清理 Engine 数据:
engine-cleanup选项解释
● OK:继续执行清理操作,这将删除所有与 oVirt 相关的组件,并导致数据丢失。
● Cancel:取消清理操作,保留当前的 oVirt 组件和数据。
如果您选择继续清理操作(OK):
1. 数据丢失:清理操作会移除所有 oVirt 组件,包括数据库、配置文件、日志等,导致所有数据丢失。请确保您已备份所有重要数据。
2. 系统清理:系统将清理所有 oVirt 相关的文件和配置,恢复到清理之前的状态。
如果您选择取消清理操作(Cancel):
1. 保留现有设置:当前的 oVirt 组件和配置将保持不变,您可以继续使用当前环境。
2. 安全退出:取消清理操作不会对当前系统造成任何影响。
推荐操作
在确认清理操作前,您需要考虑以下几点:
● 备份数据:如果您决定继续清理,请确保所有重要数据已备份。
● 评估影响:清理操作不可逆,请确认清理后系统是否能够满足您的需求。
● 再确认需求:如果不确定是否需要清理,选择 Cancel 退出清理操作,并再次确认您的需求。
2.3 使用 engine-backup
工具恢复完整的备份
恢复 oVirt Engine 和 Data Warehouse 的命令如下:
engine-backup --mode=restore --file=/data/backups/engine/ops-ovirt-engine.tar.gz --log=/data/backups/engine/ops-ovirt-engine.bak.log --provision-db --provision-dwh-db --restore-permissions
3. 配置恢复后的 Engine
3.1运行 engine-setup
engine-setup
在大多数情况下,engine-setup 提供的默认选项是合理的,您可以直接按回车键接受默认值。如果您对某些配置不确定,建议保留默认值。
3.2.yum源替换
4.3.10 setup 安装组件用到的yum源(CentOS 7 yum官方源失效),替换成下面
[ovirt-4.3]
name=Latest oVirt 4.3 Release
baseurl=http://mirror.massclouds.com/ovirt/ovirt-4.3/rpm/el$releasever/
#baseurl=https://resources.ovirt.org/pub/ovirt-4.3/rpm/el$releasever/
#mirrorlist=https:///pub/yum-repo/mirrorlist-ovirt-4.3-el$releasever
enabled=1
skip_if_unavailable=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-ovirt-4.3
[ovirt-4.3-epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
includepkgs=ansible,ansible-doc,epel-release,facter,golang,golang-github-stretchr-testify-devel,golang-bin,golang-github-davecgh-go-spew-devel,golang-github-pmezard-go-difflib-devel,golang-github-stretchr-objx-devel,golang-src,hiera,libtomcrypt,libtommath,nbdkit,nbdkit-devel,nbdkit-plugin-python2,nbdkit-plugin-python-common,nbdkit-plugin-vddk,ovirt-guest-agent*,puppet,python2-crypto,python2-ecdsa,python-ordereddict,ruby-augeas,rubygem-rgen,ruby-shadowgpgcheck=0
gpgkey=https://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7[ovirt-4.3-centos-gluster6]
name=CentOS-$releasever - Gluster 6
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/storage/$basearch/gluster-6/
gpgcheck=0
enabled=1
gpgkey=https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Storage[ovirt-4.3-virtio-win-latest]
name=virtio-win builds roughly matching what will be shipped in upcoming RHEL
baseurl=http://fedorapeople.org/groups/virt/virtio-win/repo/latest
enabled=1
gpgcheck=0[ovirt-4.3-centos-qemu-ev]
name=CentOS-7 - QEMU EV
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/virt/$basearch/kvm-common/
gpgcheck=0
enabled=1
gpgkey=https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Virtualization[ovirt-4.3-centos-ovirt43]
name=CentOS-7 - oVirt 4.3
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/virt/$basearch/ovirt-4.3/
gpgcheck=0
enabled=1
gpgkey=https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Virtualization[ovirt-4.3-centos-ovirt-common]
name=CentOS-7 - oVirt common
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/virt/$basearch/ovirt-common/
gpgcheck=0
enabled=1
gpgkey=https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-Virtualization[ovirt-4.3-centos-opstools]
name=CentOS-7 - OpsTools - release
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/opstools/$basearch/
gpgcheck=0
enabled=1
gpgkey=https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-OpsTools[centos-sclo-rh-release]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos-vault/7.9.2009/sclo/$basearch/rh/
gpgcheck=0
enabled=1
gpgkey=https://www.centos.org/keys/RPM-GPG-KEY-CentOS-SIG-SCLo[sac-gluster-ansible]
name=Copr repo for gluster-ansible owned by sac
baseurl=https://copr-be.cloud.fedoraproject.org/results/sac/gluster-ansible/epel-7-$basearch/
type=rpm-md
skip_if_unavailable=False
gpgcheck=0
gpgkey=https://copr-be.cloud.fedoraproject.org/results/sac/gluster-ansible/pubkey.gpg
repo_gpgcheck=0
enabled=1
enabled_metadata=1
- 检查配置过程中的错误,日志文件位于
/var/log/ovirt-engine/setup/
目录下。 - 在宿主机上取消全局维护模式:
4. 登录验证
完成恢复后,通过 Web 浏览器访问 oVirt 管理控制台,验证系统的正常运行状态。
参考Ovirt和红帽RHV官网
https://www.ovirt.org/documentation/
Red Hat Documentation index | Red Hat Product Documentation