系统迁移和容灾备份?对方扔给你一个Mondo Rescue


1. 简介

在企业生产工作中,可能会面临这样的情况:要将一个配置好的、包含数据文件的Linux系统做备份,以便在原系统被破坏的时候能够及时恢复;或者实验环境中部署了各种软件,上线的时候要在生产环境中的一台目标机器上安装相同的依赖包、配置相同的特性,怎么解决这类问题?相信有一些不同的方式能够实现这样的需要,这里要讲的方式是,通过把系统打包成镜像,完成系统备份、迁移部署等工作,在此利用的工具是Mondo Rescue,所用系统类型是CentOS 7.

Mondo Rescue提供了免费、可靠、全面的途径来将GNU/Linux服务器或工作站备份到磁带、CD-R、CD-RW、DVD-R[W]、DVD+R[W]、NFS或硬盘分区等介质上。如果发生灾难性数据丢失,能够在必要时恢复所有数据。目前可在主要的Linux发行版(Fedora、RHEL、OpenSUSE、SLES、Mageia、Debian、Ubuntu、Gentoo)运行[1]。


2. 系统备份

一日,我的一个朋友要完成这样的任务:把某个物理机上的系统备份到ISO镜像。安装Mondo[2],配置repo,然后用yum安装Mondo。

cd /etc/yum.repos.d/
wget ftp://ftp.mondorescue.org/centos/7/x86_64/mondorescue.repo
sed -i "s/gpgcheck=1/gpgcheck=0/g" mondorescue.repo

在制作镜像之前,修改分区挂载文件:/etc/fstab,使用盘符而非UUID去挂载。执行mondoarchive命令,开始备份。mondoarchive是一个图形界面,后续会跳出很多个选择的界面,只需要修改ISO镜像文件名称以及压缩方式(一般选择gzip)。默认生成ISO的存放路径是/var/cache/mondo,修改镜像名称的界面如下:
在这里插入图片描述
这些设置一路通过之后,等待制作完成。在/var/cache/mondo目录下可以查看到相应的ISO文件。

3. 系统迁移

翌日,我的那位朋友要完成这样的任务:把某个物理机上的系统迁移到另一个目标机器上。经过上面的备份流程,想到的方法就是,制作镜像之后导出来做成启动盘,接着进行装机。在此之前,先在虚拟机模拟一遍。

STEP 1: 模拟练手

创建一个VMware虚拟机,选择“稍后安装操作系统”,在虚拟机设置中选择的刚才的ISO文件,启动虚拟机进行系统恢复。

在这里插入图片描述
无须多余的操作,直到看见这个界面,克隆出相同的虚拟机的丝滑流程就此结束,上机试试吧!

STEP 2: 真机实练

用Rufus做成启动盘,连接上机房的物理机。由于解压ISO看到里面没有efi/目录,所以设置BIOS启动。不出意外的话,进入mondo恢复界面等待一下就完事了。没有一点点防备,它说不是可启动的介质。

在这里插入图片描述
回到制作ISO的步骤,将U盘连接上源Linux系统所在的机器,直接用Mondo Rescue将系统写入U盘:mondoarchive -OU -d /dev/sdb -s 16g –G。启动后见到这个在虚拟机看过的界面,然后顺畅装完:
在这里插入图片描述
开机验证,由于原先系统可能更新过内核,装完有两个可选的内核版本(除了rescue模式)。在那台目标机器上,低版本的内核可以成功启动进入系统。偶然看到有篇博客[3]提到一个简单但有用的观点:没有分区操作的情况下出现找不到分区的问题,是因为内核版本不兼容。多个内核中高版本可能启动不了的情况与机器性能相关。在物理机上恢复系统的流程总结如下:

  1. 安装Mondo Rescue;
  2. 将U盘直接连上要备份的系统,执行命令直接将系统刻录到U盘上,完成打包镜像和制作启动盘的过程;
  3. 将U盘插上目标机器,设置BIOS启动,选择U盘启动,安装好系统;
  4. 设置single模式进入rescue,修改root密码(若有需要);
  5. 测试哪个内核能在机器上正常启动,选择可以启动的版本。

参考资料

[1] Mondo Rescue Home Page
[2] CentOS7下使用Mondo Rescue实现系统全备份
[3] centos8 reboot进入Dracut模式,提示找不到分区错误


在这里插入图片描述

Guess you like

Origin blog.csdn.net/YiAnSociety/article/details/120456049