我正在寻找将实时服务器远程克隆到虚拟机中的方法,以便将其用作与实时服务器尽可能相同的测试环境。这将用于测试更改、新软件版本等。克隆需要包含启动管理器、分区信息等。
我可以通过哪些方法来实现这一点,同时对实时服务器的影响最小,同时生成可以启动的工作映像(假设它以正确的方式安装或在克隆后转换为映像)?
实时服务器运行 Centos 6.7,我计划使用 Virtualbox 来运行克隆。我正在使用 Homebrew 在 Mac 上执行此操作,如果答案可以在 Mac 上运行但可以在需要时使用 *nix,则加分。
我尝试使用 rsync 并从生成的文件夹创建图像,但它缺少分区和启动信息,因此如果不先安装 centos 然后复制所有文件,我就无法在 Virtualbox 中使用生成的图像 - 我觉得这不会对于测试环境不够忠实。
更新:我尝试过使用 VMware 转换器,但不幸的是它似乎仅适用于 Windows,而我无法使用它。
相反,我通过 ssh 使用 dd 下载服务器的映像。我计划使用 virtuablox 的命令行实用程序将该映像下载到 .vdi 后将其转换。如果这有效,我将用更多详细信息更新问题。
答案1
物理到虚拟 - P2V - 是您正在寻找的过程。
rsync
在这种情况下没有帮助。
您应该使用Vmware的免费VMware Converter工具将物理服务器的磁盘转换为虚拟磁盘,在VirtualBox中创建虚拟机并将现有的虚拟磁盘添加到其中。
您将找到完整的分步说明这里。
答案2
- 以救援模式启动
键入此命令以连接并下载服务器磁盘并将其保存到客户端位置
ssh [email protected] "dd if=/dev/sda " | dd of=/home/backups/centos_image.img
如果连接被拒绝,请确保在重新启动 cron 作业中添加 sshd 并使其能够在调试模式下运行。如果您想使用 Windows,请确保您有 Cygwin下载后
.img
,您将看到以下输出xxxxxxxxxx bytes (x.x GB) copied, xxx.xxx s, x.x MB/s
现在使用 VBoxManage 将其转换为
.vdi
VBoxManage convertfromraw --format VDI [filename].img [filename].vdi
将VDI挂载为硬盘
答案3
我写了一个详细的步骤回答我如何解决这个问题上的一个非常相似的挑战:将正在运行的Linux系统变成另一台机器上的KVM实例。我希望它也能成为这个问题的有用答案。
答案的目标:获取P
运行实时生产的物理 Linux 节点并将其虚拟化。无需创建和分配多 TB 磁盘,也不必在来宾中使用 md raid V
,因为目标虚拟机管理程序 (Proxmox 5) 使用 ZoL/ZFS。还希望减少正在运行的P
节点上的停机/重新启动。