使用Mondo Rescue进行系统全备份

转自: http://www.linuxfly.org/post/411/
 一套完整的生产应用系统,其部署和实施可能需要涉及多方厂商的协助和配合,如有硬件工程师、软件开发商、操作系统厂商、数据库厂商、系统集成商等等。若应用架构比较复杂,可能就完成基础的部署都需要一个不短的周期。项目开始时,协调这些人力、物理可能是比较简单的,但系统是不可能不发生问题的,若因某些原因,后期更换了服务器硬件或需重新部署整套应用,那该是多麻烦的一件事情。另外,如果需要同时在多台服务器上安装几乎完全相同的软件,一台一台安装相信也不是一个好办法吧。
    这时,Mondo Rescue软件或许可以帮到您。他有点像Windows下的Ghost,但也有点不同。Ghost对Linux的操作,若采用全盘复制功能时,两边的硬盘大小不一会很难处理;若采用分区复制,那MBR需要手动创建,操作比较麻烦。而Mondo采用自带启动镜像的方式,不需要依赖第三方的操作系统软件,可直接进行系统复制的工作,操作简单。

一、Mondo Rescue简介
Mondo Rescue(以下简称Mondo)可以说是Linux 下的Ghost,它可以将你的系统像照相一样备份至磁带,CD-R,CD-RW,NFS或硬盘分区。Mondo广泛支援LVM,RAID,ext2, ext3, JFS, XFS,ReiserFS,VFAT等。这个软件可以让大家一步一步地将Linux系统备份出来,一旦今后出了问题,只要用创建好的MondoCD将系统还原至上次备份时的状态即可。
与Ghost相似,在进行备份的使用,应把应用与数据的备份分开处理。也就是说,使用Mondo来备份系统的基本应用配置,生产数据使用资料备份的方式处理,如定时备份到磁带等。

Mondo Rescue的官方网站:这里

架构:
Mondo Rescue由Mondo和Mindi两个包组成。Mondo是主程序用来备份和还原。Mindi则类似一个迷你的Linux,它包括核心,模块,函数库及一些做系统维护的重要工具。目前,Mondo已经支持Asianux 2/3系统平台。

二、安装和使用
使用时,先在需要备份的系统上安装Mondo软件,然后运行其后,根据提示进行备份,并生成今后使用的备份光盘。还原时,使用该光盘启动恢复即可。
1、准备
备份前,先把需要部署的应用都安装和配置完成。
然后,重新改系统,挂载需要备份的分区,停止已经启动的应用,建议把系统保留在“干净”的状态下进行备份的工作。
备份时的方式有多种,建议先备份到本地磁盘上。所以,需要在本地准备一个空闲空间,可足够存放后续备份的光盘镜像。

2、安装
在需要备份的系统上安装Mondo软件。需要安装的rpm包有好几个,为方便起见,我使用Asianux 3 for x86 做演示,其支持yum更新。

# cd /etc/yum.repos.d
# wget ftp://ftp.mondorescue.org/asianux/3/mondorescue.repo

yum源缺了一个buffer包,先安装后yum install 即可:

# wget ftp://ftp.mondorescue.org/rhel/5/buffer-1.19-1.i386.rpm
# rpm -ivh buffer-1.19-1.i386.rpm
# yum install mindi mindi-busybox mondo

本地下载:
下载文件
点击这里下载文件

※ 注意
如果您使用的是Asianux 2.0(对应红旗DC Server 5.0)版本,请从下面的链接获取对应的软件包:
引用
ftp://ftp.mondorescue.org/asianux
ftp://ftp.mondorescue.org/src/

3、执行备份
在英文环境下,启动备份程序:

# unset LANG
# mondoarchive

选择备份到本地硬盘:
点击在新窗口中浏览此图片
选择备份路径:
点击在新窗口中浏览此图片
选择压缩率:
点击在新窗口中浏览此图片
如果系统比较庞大,为方便今后刻录光盘,可把镜像分块,在这里输入每个镜像光盘的大小:
(一般,CD最大700MB,DVD最大4300MB)
点击在新窗口中浏览此图片
镜像的名称:
点击在新窗口中浏览此图片
需备份的路径:
(“/”表示系统全系统,后面可排除某些目录)
点击在新窗口中浏览此图片
需排除在外的目录,这些目录不会备份到光盘镜像中:
(通常都是一些临时目录和资料数据目录)
点击在新窗口中浏览此图片
这里,需要您确认创建备份镜像后,是否进行校验:
点击在新窗口中浏览此图片
需要您确认是否标准的Linux 核心,“Yes”即可:
点击在新窗口中浏览此图片
确认后,开始备份:
点击在新窗口中浏览此图片
先后收集今后Mindi启动必须的文件信息,如BusyBox等:
点击在新窗口中浏览此图片
进行备份:
点击在新窗口中浏览此图片
完成:
点击在新窗口中浏览此图片
请留意最后的日志信息:
引用
# mondoarchive
Initializing...
See /var/log/mondoarchive.log for details of backup run.
Checking sanity of your Linux distribution
Done.
Execution run ended; result=0
Type  'less /var/log/mondoarchive.log' to see the output log

结果:
引用
# ll -h /var/cache/mondo/qktest-1.iso
-rw-r--r-- 1 root root 2.1G 05-25 15:00 /var/cache/mondo/qktest-1.iso

三、恢复数据
使用刻录机,把上面生成的镜像刻录出来。需要恢复数据时,把机器设置为光驱引导,然后使用该光盘启动机器。
启动后的界面:
(有几个参数供选择,例如,如果硬盘已经分好区,不希望重新调整分区的,可以输入nuke noresize后回车)
点击在新窗口中浏览此图片
选择自动恢复:
(交互方式可选择性更多,例如可恢复指定的目录数据等)
(ncurse库不是很匹配,屏幕有点错位,但不影响使用)
点击在新窗口中浏览此图片
清除原磁盘数据后,进行分区及格式化:
点击在新窗口中浏览此图片
恢复数据:
点击在新窗口中浏览此图片
提示您编辑multipath.conf文件:
(若不需要修改,使用vi 的:q退出)
点击在新窗口中浏览此图片
问您是否需要重建initrd.img镜像文件:
(如果备份后,曾经加入了新的硬件或做了其他驱动方面的改动的话,则需要重建initrd.img文件)
点击在新窗口中浏览此图片
完成:
(会自动创建Grub,然后,可使用exit 重启机器)
点击在新窗口中浏览此图片

四、可能的错误
我第一次运行的时候,提示错误:
引用
Perhaps Mindi's MakeMountlist() subroutine has a bug. We'll see.
Failed.
Fatal error... Pre-param initialization phase failed. Please review the error messages above, make the specified changes, then try again. Exiting...

后来,查询相关的日志文件:/var/log/mondoarchive.log,有:
引用
FATAL ERROR. Your system uses a LABEL partition (LABEL=SWAP-sda2), but you lack the tool to support it.
Please replace labels with their correct devices in /etc/fstab or install findfs|blkid|vol_id

原来,我把SWAP分区删掉了,但/etc/fstab中仍保存后相关的挂载配置,注释后,问题解决。

五、其他软件
除Mondo Rescue外,还有其他的开源软件采用类似的工作原理,如果您在使用Mondo Rescue时遇到问题,或许可试试它们:
mkCDrec 网址:http://mkcdrec.ota.be/project/
Partition Image 网址:http://www.partimage.org/

你可能感兴趣的:(linux,备份,休闲,rescue,Mondo)