克隆可用的Linux服务器


18

我需要克隆一个正常工作的linux服务器。我们无法关闭正在运行的服务器。有什么方法可以获取克隆并将其部署到另一台服务器上?

linux  clone 

Answers:


14

有许多方法可以复制磁盘,文件系统或文件。通常,复制文件系统可为您提供一个很好的克隆,其灵活性在于目标系统上的大小可能略有不同。在目标系统运行从CDROM引导的某种实时Linux(knoppix,ubuntu live等)之后,您可以使用fdisk或您喜欢的分区应用程序在磁盘上创建分区。假设您在源系统上运行SSH服务器,请采用类似以下方法:

http://www.linuxfocus.org/English/March2005/article370.shtml

此命令正在发生魔术:

ssh sourcePC 'dump -0 -f - /' | restore -r -f -

当使用任何特定方法在实时Linux环境上克隆磁盘时,您唯一关心的可能就是数据库。备份和还原数据库的最佳方法是在文件系统转储之前,使用其转储工具对数据库进行ascii文件快照。对于mysql有:

mysqldump --all-databases > mysql_databases.sql

对于postgresql,有:

pg_dumpall > pg_databases.sql

如果在新系统上遇到任何一致性错误,请还原数据库。或者,在源系统上关闭服务后,请再次执行数据库转储,然后在目标上还原,并且不会丢失任何最近修改的数据。


1
+1为linuxfocus参考
Bozojoe 2012年

2

根据需要在新计算机上构造磁盘布局。

使用rsync转移磁盘内容。重复几次以完全赶上。

在新机器上进行实验,以进行正确的引导。例如,使Grub处于一致状态。

在可以关闭旧计算机之前,请定期执行rsync,以使新磁盘接近旧磁盘。

然后将旧的恢复到维护模式,再次rsync,然后启动应该像旧的那样运行的新的。


5
这可能会导致数据损坏。为了保证文件(包括活动数据库)的正确副本,您将需要能够在系统暂停时以一次原子操作运行整个rsync命令。LVM快照可以是原子快照,也可以建立RAID镜像,然后断开其中一个驱动器并将其放入新计算机中。即使这样,您仍然确实需要转到运行级别1(en.wikipedia.org/wiki/Runlevel#Typical_Linux_runlevels),进行快照,然后以更高的运行级别重新启动。
李B

1

我的同事通过System Imager发誓:

http://wiki.systemimager.org/index.php/Main_Page

我不知道它对“实时”系统的效果如何。

否则,我认为您无法手动执行操作:

  • 验证存储库之外没有任何安装应用程序
  • 转储已安装软件包的列表并将其安装在新服务器上
  • 复制配置文件
  • 恢复数据库

systemimager岩石。它确实可以在实时系统上运行,并且具有运行rsync复制实时系统状态的相同条件。在复制之前,某些应用程序将需要关闭或转储到磁盘(例如mysql DB),并且需要在新系统上还原。
gbjbaanb

0

如果您可以使数据库在磁盘上进入一致状态,则只需使用DAR制作所有内容的副本,然后将其写回到新服务器即可。

将数据库同步到磁盘上的一致状态可能会有些棘手,但是仅还原快照,然后在还原DAR映像后从快照还原即可。DAR在运行时会影响服务器性能。

不过,一旦获得图像,就可以调整网络设置,应该可以将其备份。

http://dar.linux.free.fr/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.