我需要克隆一个工作的Linux服务器。 我们不能closures工作的服务器。 有什么办法可以得到一个克隆,并将其部署到另一台服务器上?
有许多方法来复制磁盘,文件系统或文件。 一般来说,复制文件系统给你一个很好的克隆,并且灵活性可以在目标系统上稍有不同。 目标系统运行某种活的Linux(knoppix,ubuntu live等),从cdrom启动,您可以使用fdisk或您喜欢的分区应用程序在磁盘上创build分区。 假设你有一个在源系统上运行的SSH服务器,采取类似这样的方法:
http://www.linuxfocus.org/English/March2005/article370.shtml
这个命令发生了魔法:
ssh sourcePC 'dump -0 -f - /' | restore -r -f -
当使用任何特定方法克隆实时Linux环境中的磁盘时,您唯一担心的可能是数据库。 备份和还原数据库的最佳方法是使用其转储工具在文件系统转储之前创build数据库的ascii文件快照。 对于MySQL有:
mysqldump --all-databases > mysql_databases.sql
对于postgresql,有:
pg_dumpall > pg_databases.sql
如果在新系统上遇到任何types的组合错误,请恢复数据库。 或者,一旦您closures了源系统上的服务,再次执行数据库转储,并在目标上进行恢复,并且不会错过任何最近修改的数据。
根据需要在新机器上构build磁盘布局。
使用rsync传输磁盘的内容。 重复几次,以完全赶上。
在新的机器实验中,您将需要另外做些正确的启动。 例如Grub,并使其处于一致的状态。
直到你可以closures旧的机器,定期rsync保持新的磁盘接近旧的一个。
然后把旧的那个恢复到维护模式,rsync再次启动一个新的应该像旧的一样。
我的同事发誓系统相机:
http://wiki.systemimager.org/index.php/Main_Page
我不知道它对于“现场”系统有多好。
否则,我认为你被卡住做手动:
如果您可以使您的数据库在磁盘上处于一致状态,则可以简单地使用DAR复制所有内容,然后将其写回新服务器。
将您的数据库同步到磁盘上的一致状态可能会非常棘手,但是只要创build一个快照,然后在还原DAR映像后恢复即可。 DAR将在运行时影响服务器的性能。
一旦你有了你的形象,你可以调整networking设置,并应该能够带回来没有问题。