是否可以将进程从本机转移到虚拟机?
Is it possible to transfer a process from a native machine to a virtual machine?
假设我有一个进程 foo 在我的计算机上(本地)执行。在它执行一段时间后,我想把这个过程移到虚拟机中——例如,我使用 QEMU 或 Virtualbox 创建一个 VM。可以这样做吗?
据我了解,如果可能的话,这也是非常困难的——你需要克隆堆栈和堆;您需要修改两个位置的任何虚拟地址;并且您需要对 CPU 的当前状态进行采样以在 VM 上重新创建它。这些假设是否正确,还是我遗漏了什么?
我发现一些证据表明,这已经以 openMosix/LinuxPMI 的形式用于计算集群,但没有关于物理机到虚拟机的信息。
你的假设是正确的。现在可以通过 virsh
从来宾计算机到来宾计算机进行实时 KVM 迁移,因此正在取得进展。我确信最终会有进程从来宾迁移到来宾,但我不太确定是否有人在处理主机到来宾的进程迁移。听起来您对技术细节很感兴趣,所以这里是 RedHat 在 VM live migrations.
上的一篇很好的读物
假设我有一个进程 foo 在我的计算机上(本地)执行。在它执行一段时间后,我想把这个过程移到虚拟机中——例如,我使用 QEMU 或 Virtualbox 创建一个 VM。可以这样做吗?
据我了解,如果可能的话,这也是非常困难的——你需要克隆堆栈和堆;您需要修改两个位置的任何虚拟地址;并且您需要对 CPU 的当前状态进行采样以在 VM 上重新创建它。这些假设是否正确,还是我遗漏了什么?
我发现一些证据表明,这已经以 openMosix/LinuxPMI 的形式用于计算集群,但没有关于物理机到虚拟机的信息。
你的假设是正确的。现在可以通过 virsh
从来宾计算机到来宾计算机进行实时 KVM 迁移,因此正在取得进展。我确信最终会有进程从来宾迁移到来宾,但我不太确定是否有人在处理主机到来宾的进程迁移。听起来您对技术细节很感兴趣,所以这里是 RedHat 在 VM live migrations.