如何在不停止 Linux 实时服务器的情况下克隆它?

如何在不停止 Linux 实时服务器的情况下克隆它?

这是我目前的情况:+ 一个 Linux 服务器,包含几个无法停止的 Web 应用程序,无法对其进行物理访问,只能通过 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.

我的问题:

  • 我是否应该从 Dump 命令中排除 /dev/tree?如何做?
  • 我应该运行另一个命令来制作这个副本吗?

答案1

您始终可以只执行 tar.gz。我曾这样做过来克隆系统。显然,您需要在目标系统上解压之前创建分区、格式化和挂载。此外,您还需要在源计算机上安装 grub,当然还需要 root 权限。

我通常单独列出每个分区并使用。--one-file-system例如,假设您的系统有/、、和不同的分区。您可以像这样制作整个系统的 tarball:/boot/usr/var/tmp

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

此外/sys,需要在目标系统中创建 、/dev/proc。可以包含在 tarball 中,这不会造成任何损害。在这里您复制也只是因为它不是与 分开的分区,如果您不想复制它,您可以随时使用。通常我不介意它不是太大。/tmp/dev/var/tmp/var--exclude

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

答案2

如果没有管理权限(即:root),你是无法克隆Linux服务器的。

看起来你正在尝试确保更改首先在单独的环境中进行测试(目前尚不存在)。问题是,此更改将触及哪些层?

如果您知道哪些组件将要更新/更改,您就知道要关注什么。假设这是一台运行 MySQL 5.1 的 CentOS 6 服务器,更改是升级到 MySQL 5.5(无论什么)。构建一台单独的 CentOS 6 机器,安装 MySQL 5.1,复制数据和配置,然后尝试升级和测试。

如果这台机器无法停止,你打算如何修补它?我希望你能。如果是这样,它可以被停止,只需要一些安排。你最好的选择是停止它,并考虑做一个 p2v 操作,这样你就可以在某个虚拟机中运行一个精确的系统来进行实验(如果需要,可以更容易地多次中断和恢复)。

相关内容