我想知道有没有办法快照式将 Linux 系统备份到单个文件和恢复在另一个系统中?
您知道,Windows 中有一些程序可以将驱动器(如 C:\ )的副本制作成单个映像文件。因此,如果您被感染或发生其他情况,您可以稍后恢复此文件。
每次我想迁移我的虚拟专用服务器到另一台主机,我必须从头开始设置新服务器并手动移动文件。我可以对整个系统进行快照备份并将其恢复到其他地方(或在同一台服务器上)吗?
我不熟悉 Linux,也不知道这在技术上是否可行?分区、配置、系统文件等是否是每个系统独有的?
我听说过同步,但这不是我想要的。
答案1
虽然在某些情况下可以使用快照式备份,但在这种情况下它们毫无用处。主要原因是 VPS 提供商很少会向您提供足够低级别的系统访问权限,让您能够以这种方式恢复数据。
真正的答案是使用配置管理系统来管理您的服务器。Puppet 和 Chef 是目前最流行的两种配置管理系统。使用系统行,您可以在一组文本文件中指定您希望如何配置您的服务器、要安装哪些软件包等。然后这些配置可以应用于任何服务器,无论其位置如何。
答案2
创建文件系统的映像是完全可能的。事实上,对于某些发行版(如 Gentoo),这实际上是首选方法,不仅可以备份现有系统,还可以基于现有基础安装部署新系统。Gentoo 特别从源代码编译每个包,因此部署新安装的最快方法是将现有的通用安装打包并提取到新系统上,从而节省数小时的编译时间。这称为第 4 阶段安装,详情请参阅Gentoo 维基。
但是,为了恢复这样的映像,您需要使用 Live CD 启动新系统,如果您运行的是 VPS,这可能是不可能的。如果这不是问题,您可以按照以下步骤归档和恢复系统:
归档系统
在归档现有安装时,需要注意一些事项,最重要的是您应该不是包含在存档中。例如,您肯定不想包含/dev
,同样,包含/proc
目录也毫无意义。以下是创建存档时应排除的目录的通用列表:
.bash_history
/mnt/*
/tmp/*
/proc/*
/sys/*
/dev/*
/etc/mtab
/etc/ssh/ssh_host_*
/usr/src/*
/path/to/save/at/the_archive_file_you_are_creating.tar.bz2
当然,这个列表会因发行版而异,但对于大多数系统来说,这些是安全的默认设置。请注意列表中的最后一行 - 您必须在排除列表中包含您正在创建的存档文件的文件名。
要创建档案,请使用以下命令:
tar cvjf /path/to/save/at/archive.tar.bz2 / -X excluded.txt
(其中excluded.txt
是包含要排除的目录列表的文本文件。)
以下是用于创建档案的标志的简要概述:
c - create archive
v - verbosely list files processed
j - use bzip2 compression
f - specify file name
X - use the specified exclusion file
恢复档案
我必须强调,这个过程会因你使用的发行版而异。这个过程很大程度上是基于第 4 阶段Gentoo 的安装过程与其它发行版的安装过程大致相同。总体过程如下:
- 使用 Live CD 启动
- 进入控制台
- 创建分区、创建文件系统并挂载文件系统(为了便于解释,将分区挂载在
/mnt/recovery
- 将存档文件复制到已安装的分区上
- 提取档案并
tar -xvjpf archive.tar.bz2
特别注意此过程中使用的标志。 - 创建一些基本的设备节点:
mknod -m 660 /mnt/recovery/dev/console c 5 1
mknod -m 660 /mnt/recovery/dev/null c 1 3
mknod -m 600 /mnt/recovery/dev/initctl p
完成后,您还需要配置 GRUB 以确保您的启动配置正确;这是您最有可能出错的地方,因此请再三检查您的 GRUB 配置以确保一切正确。
我强烈建议您浏览 Gentoo wiki 上的第 4 阶段指南。这是一个非常棒的资源,详细介绍了这个过程。
总而言之,这是您问题的理想解决方案,但我怀疑由于您使用的是 VPS,因此它不太可能是最实用的,因为您可能无法轻松访问 DVD 驱动器或 IPKVM 交换机来在从头配置系统时执行系统工作。如果您决定采用这种方式,我建议您在本地机器上执行此过程几次;如果您以前从未这样做过,这可能会有点棘手,而您最不想要的就是在恢复存档时在远程服务器上遇到不小的问题的压力。
更新:我刚刚注意到你说你不熟悉 Linux。我在这里描述的过程并不简单,所以如果你不太熟悉 Linux,你可能会遇到困难。不幸的是,我想不出一种更简单、更可靠的方法来创建和恢复整个系统的快照。
答案3
您可能需要使用一些能够理解特定配置并能制作系统配置有用副本的解决方案。
实现此策略的一些软件示例是;
http://www.cfg2html.com/
webmin 备份
系统配置收集器
和蓝图
另一种选择是迁移到能够理解配置的工具,并可以使用该工具将该配置重新部署到另一台机器。此类软件的示例包括:
厨师
木偶
cfengine
答案4
查看Linux 版 Ghost。我已成功将其用于生产项目。命令行界面非常直观。