5.4. 使用并置 Ceph 监控器恢复 undercloud 和 control plane 节点
如果在更新或升级过程中发生错误,您可以使用 ReaR 备份将 undercloud 或 overcloud control plane 节点或两者恢复到之前的状态。
前提条件
- 安装和配置 ReaR。如需更多信息,请参阅 安装和配置 ReaR。
- 准备备份节点。如需更多信息,请参阅准备 备份节点。
- 执行备份过程。如需更多信息,请参阅 执行备份过程。
流程
在备份节点上,导出 NFS 目录以托管 Ceph 备份。将
<IP_ADDRESS/24
> 替换为网络的 IP 地址和子网掩码:[root@backup ~]# cat >> /etc/exports << EOF /ceph_backups <IP_ADDRESS/24>(rw,sync,no_root_squash,no_subtree_check) EOF
[root@backup ~]# cat >> /etc/exports << EOF /ceph_backups <IP_ADDRESS/24>(rw,sync,no_root_squash,no_subtree_check) EOF
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 undercloud 节点上,提供 undercloud 凭证并运行以下脚本:
source stackrc
# source stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow #! /bin/bash for i in `openstack server list -c Name -c Networks -f value | grep controller | awk -F'=' '{print $2}' | awk -F' ' '{print $1}'`; do ssh -q heat-admin@$i 'sudo systemctl stop ceph-mon@$(hostname -s) ceph-mgr@$(hostname -s)'; done
#! /bin/bash for i in `openstack server list -c Name -c Networks -f value | grep controller | awk -F'=' '{print $2}' | awk -F' ' '{print $1}'`; do ssh -q heat-admin@$i 'sudo systemctl stop ceph-mon@$(hostname -s) ceph-mgr@$(hostname -s)'; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要验证
ceph-mgr@controller.service
容器是否已停止,请输入以下命令:sudo docker ps | grep ceph
[heat-admin@overcloud-controller-x ~]# sudo docker ps | grep ceph
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 undercloud 节点上,提供 undercloud 凭证并运行以下脚本:
source stackrc
# source stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在您要恢复的节点上完成以下任务:
- 在继续操作前关闭该节点。
-
使用您在备份过程中创建的 ReaR 备份文件恢复节点。该文件位于备份节点的
/ceph_backups
目录中。 -
在
Relax-and-Recover
boot 菜单中,选择Recover <CONTROL_PLANE_NODE>
;,其中 <CONTROL_PLANE_NODE
> 是 control plane 节点的名称。 在提示符处输入以下命令:
RESCUE <CONTROL_PLANE_NODE> :~ # rear recover
RESCUE <CONTROL_PLANE_NODE> :~ # rear recover
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 镜像恢复过程完成后,控制台会显示以下信息:
Finished recovering your system Exiting rear recover Running exit tasks
Finished recovering your system Exiting rear recover Running exit tasks
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于您要恢复的节点,将
/ceph_backups
目录中的 Ceph 备份复制到/var/lib/ceph
目录中:确定系统挂载点:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /dev/vda2
文件系统被挂载到/mnt/local
上。创建临时目录:
RESCUE <CONTROL_PLANE_NODE>:~ # mkdir /tmp/restore RESCUE <CONTROL_PLANE_NODE>:~ # mount -v -t nfs -o rw,noatime <BACKUP_NODE_IP_ADDRESS>:/ceph_backups /tmp/restore/
RESCUE <CONTROL_PLANE_NODE>:~ # mkdir /tmp/restore RESCUE <CONTROL_PLANE_NODE>:~ # mount -v -t nfs -o rw,noatime <BACKUP_NODE_IP_ADDRESS>:/ceph_backups /tmp/restore/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 control plane 节点上,删除现有
/var/lib/ceph
目录:RESCUE <CONTROL_PLANE_NODE>:~ # rm -rf /mnt/local/var/lib/ceph/*
RESCUE <CONTROL_PLANE_NODE>:~ # rm -rf /mnt/local/var/lib/ceph/*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 恢复前面的 Ceph 映射。将
<CONTROL_PLANE_NODE
> 替换为 control plane 节点的名称:RESCUE <CONTROL_PLANE_NODE>:~ # tar -xvC /mnt/local/ -f /tmp/restore/<CONTROL_PLANE_NODE>/<CONTROL_PLANE_NODE>.tar.gz --xattrs --xattrs-include='*.*' var/lib/ceph
RESCUE <CONTROL_PLANE_NODE>:~ # tar -xvC /mnt/local/ -f /tmp/restore/<CONTROL_PLANE_NODE>/<CONTROL_PLANE_NODE>.tar.gz --xattrs --xattrs-include='*.*' var/lib/ceph
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证文件是否已恢复:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
关闭节点:
RESCUE <CONTROL_PLANE_NODE> :~ # poweroff
RESCUE <CONTROL_PLANE_NODE> :~ # poweroff
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 打开节点。节点恢复之前的状态。