我熟悉使用rsync备份系统中的各种文件,但是什么是完全还原计算机的最佳方法?
我过去尝试过的是:
- 从Fedora安装盘执行基本格式/重新安装
- 确保启用网络
- 将rsync备份中的所有内容复制到新安装的系统顶部
这种方式是可行的,但我认为安装的每个软件包都不能100%之后运行。
我希望能够以最小的工作量来还原系统,并且一切工作都与进行备份时相同。另外,如果可能,请安装到其他计算机上,并且essentailly的两台计算机具有相同的软件包和数据。
我熟悉使用rsync备份系统中的各种文件,但是什么是完全还原计算机的最佳方法?
我过去尝试过的是:
这种方式是可行的,但我认为安装的每个软件包都不能100%之后运行。
我希望能够以最小的工作量来还原系统,并且一切工作都与进行备份时相同。另外,如果可能,请安装到其他计算机上,并且essentailly的两台计算机具有相同的软件包和数据。
Answers:
这就是我所做的(假设/ dev / sda中只有一个磁盘)
使用dd备份MBR和分区表:“ dd bs = 512 count = 1 if = / dev / sda of = / backups / sda.layout”
使用rsync复制整个内容,例如:“ rsync -axvPH --numeric-ids ...”
在还原时,我这样做:
使用sysrescuecd引导目标计算机,我通常会在USB记忆棒上保存“ sda.layout”文件。
使用dd恢复MBR /分区表:“ dd bs = 512 count = 1 if = / path / to / sda.layout of = / dev / sda”
使用partprobe (感谢注释器Mark)来使内核重新读取分区表。
将所有各个分区挂载在/ restore /下。我在还原下使挂载点相同,因此,如果我的源上有/ boot,/ var,则最终得到/ restore / boot,/ restore / var等。
使用rsync还原整个事情。
我从不完全克隆系统。您永远都不知道可能会发生什么变化,并且您的系统克隆映像已经过时。最好的方法是建立一个过程,使您可以生产功能相同的系统。一种可能是像Kickstart,AutoYaST或类似工具。保留良好的配置备份,理想情况下,使用Bcfg2,Puppet或CFEngine之类的配置管理系统来配置所有内容,而无需手动进行。然后,当您需要创建一个与您拥有的另一个系统相似的新系统,或者重新创建一个现有系统时,这是一个简单且定义明确的过程。
您的过程可能会导致许多问题,应该避免。
有两种主要的推荐方法可以解决此问题,第三种是纯粹用于构建开发环境的方法。
影像学
如果要还原到的硬件相同或足够相似,请使用磁盘映像工具复制整个硬盘驱动器或阵列。当您希望还原时,只需使用该映像重新映像有问题的计算机。如果要映像到多台计算机,请注意,您将需要更新其他设备上的任何计算机特定的设置(主机名,静态IP地址等),以使它们彼此不冲突。
为了进行实际的映像,我建议您使用任何可以克隆硬盘驱动器的工具或产品。
配置/主目录备份
在主计算机上,定期(使用您喜欢的任何方法)备份以下所需的以下目录(或其他目录):
/ home-所有用户个人设置,文档和文件
/ etc-配置
/ opt-未通过软件包管理器安装的特殊软件
/ usr / local-未通过软件包管理器安装的特殊软件
/ var-日志等
还原时,在有问题的计算机上重新安装操作系统,然后将每一个(或仅相关文件)复制到其正确的位置。
带有快照的虚拟机
在VMWare中创建虚拟机(或您喜欢的其他任何一种)。按照您的期望进行配置后,创建快照。然后可以轻松地将此快照还原到任意数量的新虚拟机或现有虚拟机。
通常,您仅应备份数据和配置(无论如何定义它们)。操作系统和软件可以随时轻松地重建:只有您自己的内容才有价值。如果此设置用于开发,并且您需要确保相同的环境(而不是简单地使事情再次运行),那么虚拟机中的快照确实是您的最佳选择。
成像是强力解决方案。如果可以的话,只需备份您的数据,不必担心操作系统本身。试图完全还原它正在引起麻烦。
如果您可以在这里阐明最终目的,我可以提供更详细的解决方案。
由于您说“硬件会有所不同”,因此SystemImager可以派上用场。
这只是一堆围绕PXE和Rsync的包装脚本。因此,它创建的“备份”只是备份的Linux服务器的完整目录结构。您可以“ cd”到该目录中,并在进给时更改内容。(当推出图像时,SystemImager自行管理更改网络设置。)
您可以将根目录切换到备份的服务器上,并运行yum或apt来安装软件,然后再推出映像。
编辑:您可以看一下创建分区/逻辑卷并根据目标计算机的磁盘大小对其进行修改的SI脚本。您也可以添加/删除内核模块。
我在Mondo Rescue的工作非常顺利。基本上,它将所有文件和分区备份到可启动CD上,以备后用。它可以处理分区和驱动器中的更改。
partimage和partclone(Clonezilla的一部分)是用于创建完整系统映像的有用实用程序。
如您所见,完整的系统映像不一定是系统可移植的:通常是由于设备名称。
它可能很简单,例如在映像后(例如使用LiveCD)重新安装GRUB(最好在单独的/ boot分区上)和MBR。
另一种方法是使用配置管理工具来定义应用于基准映像的策略(例如Vagrant基本框);并将数据备份分离到块和/或对象存储中(EBS / S3,Openstack块存储/ Openstack对象存储)