Parallels 的 Ubuntu Server 常规克隆

Parallels 的 Ubuntu Server 常规克隆

采取常规的实时(Ubuntu LTS Hardy)服务器的副本/图像/任何内容,以便我可以将其作为 Parallels 中的本地测试和备份环境运行。

更多详情:

  • 我有一个实时的网络服务器,托管在 Ubuntu 上,可以通过 SSH/SCP/SFTP 等方式访问。
  • 我的 OS X 开发机器上安装了 Parallels。

我希望拥有尽可能精确的实时机器副本,在 Parallels 中运行以进行测试并作为最后的备份。

我认为低技术含量的方法是在 Parallels 中安装 Ununtu,然后定期对服务器目录结构进行 sftp/scp 复制。

不过,我想知道是否有一种“更聪明”的方法来做到这一点,比如从现有系统中自动创建某种形式的虚拟机 - 就像重影一样。

答案1

我不知道自动 VM 创建工具;我只是想提供一些有关您的低技术方法的详细信息。

具体来说,有两种“低技术”的方法,取决于您是否能够承受服务器暂时离线。

  1. 使服务器脱机,连接备份驱动器,运行并dd覆盖/任何其他主要系统分区以在备份驱动器上创建精确映像,分离备份驱动器,将服务器恢复服务。备份驱动器现在包含备份时服务器的完整映像。(这可能不是您想每隔几周执行一次的操作,但您可以使用rsync或类似方法逐步更新此类映像。)

  2. 不要让服务器下线;而是列出系统上安装的所有软件包和版本(例如dpkg -l > server.packages.list);在 Parallels 中安装基本系统;安装与服务器列表相匹配的软件包;备份服务器的/etc、任何其他主要配置文件和任何主要数据源(例如/var/www),并将它们复制到您的 Parallels 系统。

在没有虚拟化工具的情况下,选择选项 2 可能更容易。初始 VM 创建需要一些时间,但您可以在应用从实时服务器获取的更改之前轻松创建和备份该系统的映像。然后,您将获得一个即时全新安装的映像,并且可以编写从服务器备份然后恢复到 VM 的脚本,这样就可以相当轻松地偶尔从头开始(或从备份的全新安装)重做。

事实上,您可能还是会选择 #2,并将其视为定期检查备份解决方案的机会:如果您可以从备份恢复到全新安装的映像,则说明您的备份解决方案很好。如果不能,则说明您需要做一些工作。

答案2

我自己做这件事的方式在某种程度上与~quack 的答案#2 类似。

我首先会在虚拟机中安装与实时服务器上相同的基础系统(这是为了识别硬件、使 grub 正常运行等...)。然后,我会将所有相关文件树(例如不是 /proc 或 /dev 或 /tmp)从实时服务器 rsync 到开发服务器。

由于 rsync 基于只复制更改的数据的理念,因此在初始设置之后,可以相当快速地将开发服务器与实时服务器重新同步。

我可以预见的困难(但我相信更多的困难即将来临!)是一些配置文件实际上可能需要与众不同在两个系统上(例如包含设备 UUID 的系统),可能很难理解哪些系统并将它们排除在 rsync 进程之外。

附注两点观察:

  • 我发现,对于大多数需求而言,我不需要开发环境与生产服务器如此紧密匹配。我使用版本控制系统(代码)和脚本(数据库)的混合来“配对”我的两个系统。
  • 如果你主要关心的是拥有正在运行的系统的精确副本,以便在备份时可以轻松恢复它,那么你可以尝试G4L结合同步(这是一个与 rsync 类似的概念,但专门为分区映像和 cd ISO 等大文件开发)。

嗨嗨。

相关内容