我有一台CENTOS服务器正在运行,并且想要制作完全相同的副本(所有软件,用户),例如用于镜像目的的双机服务器。 我怎么做?
虽然dd会将一个装入的驱动器复制到另一个驱动器上,但副本将不一致 。 文件系统不断变化,如果你使用的是日志文件系统,更是如此。 当驱动器是静态的,即只读时,使用dd效果最好。 大多数情况下,这不是一个选项,但如果你只有只读,这将工作正常。
还有其他的工具来执行这个克隆function。 但最简单的就是简单地使用LVM的镜像function。 需要注意的是,您将需要在LVM上拥有现有的文件系统。 使用LVM镜像,您可以创build文件系统的热副本,而当您断开镜像以获取第二个驱动器时, 文件系统映像将处于一致状态 ,因为所有logging的更改都将一致发送。 除了启动镜像过程之外,它几乎不需要任何工作,并且在原始复制完成后停止它。
如果由于某种原因您不想使用镜像function,则可以始终创build文件系统的快照,并将只读快照复制到另一个驱动器。 虽然这不像镜像那样自动化,而且有点麻烦(额外的步骤),但它可以工作得很好。
最后,你总是可以尝试rsync你的方式进入这个。 这听起来像是一种奇怪的方式,但是我已经用它成功地将400英里外的服务器复制到本地驱动器。 问题是我不得不手动修改/etc/fstab文件(不同版本的版本),不然的话,它会启动正常。
这留下了一个痛点:使驱动器启动。 使用dd将复制引导加载程序(因为它是一个块的副本),但如果使用LVM或rsync方法,则需要重新安装引导加载程序。 幸运的是,这不是太难,而且可以很容易地完成驱动,而不是当前(原始的)根文件系统。
我想'dd'会做你正在寻找的东西 – 看看下面的文章。
Linux备份:硬盘克隆与“dd”
dd:最终的磁盘克隆工具
维基百科:dd
[编辑]
如果你正在寻找更多的系统模板,多个系统的安装和configuration方式相同,而不是一个确切的副本,那么Cobbler可能是你在找什么:
Cobbler是一个Linux安装服务器,可以快速设置networking安装环境。 它粘合在一起,并自动执行许多相关的Linux任务,因此在推出新系统时,不必在大量各种命令和应用程序之间跳转,并且在某些情况下更改现有的命令和应用程序。
我阅读了有关Linux格式的Hotcopy的几个问题。 应该做的伎俩。
要按照原始安装构build服务器,可以使用/root/anaconda-ks.cfg提供的anaconda提供的kickstart文件,您需要对其进行编辑以进行分区,可能还需要对networking/主机名进行编辑。
这将为您提供一个良好的可重复的基准服务器configuration,并使其可以快速构build机器。 有关更多详细信息,请参阅CentOS安装指南 。 我无法主张如何自动化您的构build过程是一个很好的做法。
对于你想完成的软件/configuration,你可以在kickstart中使用%packages部分和%post脚本,但我个人使用configurationpipe理工具 – 对我来说这主要是puppet 。 这允许您在机器的整个生命周期内改变事物,并确保对系统所做的更改被保留(通常在源代码pipe理中)。 即使只有less量服务器,在确保所有更改都在configuration中捕获的情况下,这在灾难恢复scheme中的帮助也会非常大。
为了开始puppet提供了一个名为ralsh的工具,它可以获取系统资源(比如用户或者包),并且可以用puppet语言的片段来构build系统的副本。
转移到configurationpipe理可能是一个很大的步骤,涉及改变你的工作方式。 对于直接克隆,你也可以看看SystemImager
更多细节将有助于…
如果这是一个生产,面向公众的系统,我会build议做一个全新的安装,并找出如何手动克隆它。 理由是你会知道你的系统是如何工作的,而且一旦你有了这些知识,就可以devise出更好的故障切换。 例如,如果这是一个数据库后端的Web应用程序,有两个安装不会真的给你一个很好的镜像,你会想看看各种数据库的复制。
我知道的其他主要选项是:
dd将直接复制硬盘来创build一个相同的版本。 但是,您需要设置一个定期的工作来完成这个任务,并且将这些驱动器交叉安装或者移动它们。
其他人已经处理了大部分解决scheme,但还有一个涵盖了克隆部分。 对于一次性拷贝,我会build议使用Clonezilla。 ( http://clonezilla.org/ )这就像Norton Ghost,但免费。 只要目标驱动器至less和源一样大(我不相信你可以克隆到一个更小的磁盘),它可以为你做所有的克隆。 如果您打算让两个系统并行运行,您必须在引导后login才能更改IP /主机名和其他一些内容。
你可能想看看一个整合DRBD和Pacemaker的解决scheme; DRBD的行为类似于networking级RAID-1configuration。 从那里你可以有两个相同的数据分区的服务器,那么当/如果一个系统失败,起搏器将隔离旧系统,另一个服务器捡起松弛。
这取决于你是否在寻找高可用性或负载平衡…… DRBD和Pacemaker是为了可用性,但最近的版本增加了“主 – 主”configuration,所以它也可以用于负载平衡,但它取决于你如何构build应用程序。 您也可以在Web上find使用Xen来创build在两个带有DRBD的系统上平衡的虚拟机的示例,并且可能会为您提供所需的内容。
阅读有关LVM和快照的信息 。 我认为这是你需要的。