如何克隆一个Linux的活服务器不停止它?

这是我目前的情况:+一个包含多个Web应用程序的Linux服务器,不能通过ssh进行物理访问而无法停止。

这是我需要的:我需要将其复制到我的计算机上的虚拟机,以便做出一些可能有风险的操作。

我试过的:我试过在生命服务器上运行这个命令的dump命令:

 dump -0aLf / | ssh user@backup-server dd of=/path/to/destination/data.dump 

但是无法打开/dev/显示此消息的设备:

 DUMP: Date of this level 0 dump: Mon Sep 1 16:52:14 2014 DUMP: Dumping /dev/vzfs (/) to /dev/tape DUMP: Cannot open /dev/vzfs DUMP: The ENTIRE dump is aborted. 

我的问题:

  • 我应该从转储命令中排除/ dev / tree吗? 这应该怎么做?
  • 我应该运行另一个命令来制作这个副本吗?

你没有办法克隆Linux服务器没有pipe理权限(阅读:根)。

看来你正在试图确保一个变化首先在一个单独的环境中进行testing(目前不存在)。 问题是,这个变化将会触及什么层次?

如果您知道哪些组件将要更新/更改,您就知道要关注什么。 假设这是运行MySQL 5.1的CentOS 6服务器,并且升级到MySQL 5.5(不pipe)。 build立一个单独的CentOS 6机器,安装MySQL 5.1,复制数据和configuration,然后尝试升级和testing。

如果这台机器不能停止,你怎么修补它? 我希望你是。 如果是这样,它可以停下来,只需要一些安排。 你最好的select就是停下来,考虑做一个p2v的操作,这样你就可以在一个虚拟机上运行一个确切的系统来进行试验(如果需要,很容易中断和恢复)。

你总是可以做一个tar.gz. 我已经做到了克隆系统。 显然,在解压目标系统之前,你需要创build分区,格式化和挂载。 另外,你需要在源机器上安装grub,当然还需要root权限。

我通常分别列出每个分区,并使用--one-file-system 。 例如,假设你有一个带有//boot/usr/var/tmp不同分区的系统。 你可以像这样做一个整个系统的tarball:

 tar --one-file-system -cjpf backup.tar.bz2 / /boot /usr /var" 

还需要在目标系统中创build/sys/dev/proc/tmp/dev可以包含在tarball中,不会造成伤害。 在这里你正在拷贝/var/tmp只是因为它不是从/var分开的分区,如果你不想拷贝它,你总是可以使用--exclude 。 通常我不在乎它是否太大。

除此之外,这将复制可能包含某些不一致的正在运行的系统(例如正在运行的数据库)。 第一次启动副本的效果就好像机器突然closures一样。