我有两个服务器,A和B.我想将服务器A克隆到B. A运行Linux,它们都是远程的,我没有物理访问它们
解决这个问题的最佳方法是什么?
我有两个服务器,A和B.我想将服务器A克隆到B. A运行Linux,它们都是远程的,我没有物理访问它们
解决这个问题的最佳方法是什么?
Answers:
对于磁盘映像,我喜欢clonezilla,但您需要物理访问才能从磁盘启动以使其正常工作。老实说,我认为你不能做一个完全熄灭的远程全系统拷贝。rsync只会让你到目前为止。如果两者都已安装完整系统,并且它们在其他方面完全相同,那么您可以在主机B上安装与主机A上相同的应用程序。然后,只需将必要的配置文件从A复制到B即可。必须要复制一切。
bash脚本backup-images-1.0.sh自动执行克隆远程Linux机器磁盘的过程。它使用dd
命令ssh
和gzip
命令来复制和压缩远程磁盘,并通过SSH连接将它们即时发送到本地磁盘。
使用由Radovan Brezula编写的backup-images-1.0.sh将远程磁盘克隆到本地磁盘的示例,他编写了backup-images-1.0.sh。
使用“将本地磁盘克隆到远程磁盘”的示例 dd
dd if=/path/to/disk/image ibs=4096 conv=notrunc,noerror | (ssh 132.183.12.128 dd of=/remote-archive/test/remote-archive-test.img obs=4096)
ibs=4096
一次读取最多4096个字节
conv=notrunc,noerror
不要截断输出文件并在读取错误后继续
obs=4096
一次写入4096个字节
至少有三种不同的方法可以做到这一点。
此选项在具有适当文档的大型公司中非常有用,并且可能会扩展到使用PXE引导和木偶或类似设置的设置。
基本上,您重复用于在服务器B上配置服务器A的相同步骤。
如果您的设置足够大(例如,您运行100台服务器并且想要启动服务器101),这非常有效.PXE启动,告诉您的puppet配置它需要是$ type的服务器并在一小时后回来。完成!)。
建立了很多工作,但事后完善。并且所有设置工作可能不值得复制一次设置。
您可以将所有文件从服务器A复制到服务器B,同时保留其权限和用户。rsync
可能是最好的工具。
为此,您希望使用类似的设置准备目标服务器(例如,复制分区设置),然后rsync大多数文件。这里棘手的部分是你不想rsync一些文件(例如skip / proc和/ dev),你需要有东西来接收服务器B上的rsync文件。
对于最后一个,您可能希望从不同的磁盘启动服务器B,或使用ILO / DRAC / ..从桌面上的liveCD iso映像启动,使其磁盘裸露并准备好接收rsync文件。
这与复制文件系统不同。它更容易,可能更快,但原始磁盘访问(例如使用dd)忽略所有文件系统更改。这意味着您确实不想复制正在运行的文件系统。
为了帮助您更轻松地理解这一点,请对图书进 这本书有一个索引和四个故事。本书的其余部分是空白的,这也很好地在书籍索引中指出。
现在我们开始复制。我们复制索引。我们复制故事1,我们复制...
**暂时举行,让我在这里添加一个新故事并更改索引**
我们复制停止2,3,4和5 ......
我们现在有一本aq书,其中有一个索引显示四个故事(不是五个,因为我们在写故事5之前复制了它,还有五个故事)......一本腐败的书。
如果您使用原始磁盘访问来复制正在运行的系统,则会发生类似的事情。因此,在使用原始磁盘副本之前,请确保操作系统处于脱机状态。要么启动不同的东西(例如从第二个磁盘,从本地CD,或通过网络(PXE,DRAC,......),然后复制。
有关如何执行此操作的详细信息已在[su]上发布。