将 Linux 服务器转移到虚拟机

将 Linux 服务器转移到虚拟机

我有一台 OpenSuse 服务器,运行一些服务(包括 Apache Web 服务器、邮件列表等)。现在我需要将所有这些服务移到虚拟机上(Virtualbox 可以在同一台物理机或其他地方运行)。

理想情况下,我可以“复制”所有内容到虚拟机中,这样虚拟机就可以像原始机器一样运行。所有用户的数据 (/home/*) 都存储在 NFS 中,不应传输到虚拟机。然后我可以拥有一个相对较小(几 GB)的虚拟机映像,以便每隔几天备份一次。

我需要将所有系统和应用程序设置移至 VM,这样我才能顺利切换使用 VM。

有没有什么工具或其他东西可以简单地做到这一点?如果没有,我该怎么做?

答案1

您可以直接使用 dd 来完成此操作。

dd if=/dev/you-root of=/mnt/temp/filesystem.raw bs=1M

现在,您可以使用 qemu-img 将此原始文件转换为任何所需的容器。或者甚至让 VM 使用块设备并将其复制到逻辑卷。对于 VirtualBox,它将是 vdi。

qemu-img convert -O vdi /mnt/temp/filesystem.raw /mnt/temp/filesystem.vdi

答案2

从技术上来说你可以使用Rsync为了这:

在虚拟机上启动实时 CD,并根据需要对磁盘进行分区,然后将“/”挂载为 /mnt/rootfs/,并从虚拟机运行以下命令:

rsync -aHAXz root@OLD-SERVER:/ --exclude=/sys/* --exclude=/proc/* --exclude=/dev/* /mnt/rootfs/

-a = archive mode; equals -rlptgoD (no -H,-A,-X)
-H = preserve hard links
-A = preserve ACLs (implies --perms)
-X = preserve extended attributes
-z = compress file data during the transfer

然后修复 GRUB、/etc/fstab 等...

假设您的“OLD-SERVER”具有 SSH 访问权限,那么这将(大部分)起作用......

我以前曾使用此方法来克隆物理机器......

答案3

我使用 'dd' 命令执行此类任务。但是,可以使用 Ghost 等商业解决方案以及类似以下开源解决方案执行此类任务克隆兹拉部分图像将主机从一个盒子移动到虚拟机就像将主机从一个盒子移动到一个新的盒子一样。

相关内容