10.3. 迁移#

如果有群集,则可以使用以下命令将 VM 迁移到另一台主机

 qm migrate <vmid> <target>

有下面2种迁移机制:

  • 在线迁移

  • 离线迁移

10.3.1. 在线迁移#

如果虚拟机没有配置使用Proxmox VE服务器的本地资源(例如local存储上的虚拟磁盘,直通物理设备等),你可以增加-online参数发起在线迁移命令,也就是在虚拟机开机运行状态下进行迁移操作。

工作原理#

在线迁移时,目标服务器将启动一个Qemu进程,该进程设置有incoming标识,启动后将等待接收来自源虚拟机的内存数据和设备状态信息(由于其他资源,如磁盘数据等都在共享存储上,所以只需传输内存数据和设备状态即可)。

一旦建立连接,源虚拟机会以异步方式将内存数据传输给目标Qemu进程。如果在传输过程中内存数据发生了改变,相应的内存段会被标记成脏数据,并被再次传输。该过程将反复进行,直到剩余待传输数据量变得非常小,此时在线迁移将暂时冻结源虚拟机运行,并将剩余数据传输给目标,然后在目标节点恢复虚拟机继续运行,一般虚拟机中断运行时间不超过1秒钟。

先决条件#

使用在线迁移需要以下先决条件:

  • 虚拟机未使用本地资源(例如:直通设备,本地磁盘等)

  • 源主机和目标主机在同一个Proxmox VE集群中。

  • 源主机和目标主机有(可靠的)网络连接。

  • 目标主机Proxmox VE版本不低于源主机(从高版本主机向低版本迁移有可能也可以,但不保证一定成功)

10.3.2离线迁移#

即使虚拟机使用了Proxmox VE服务器本地资源,但只要虚拟硬盘所处的存储服务在源服务器和目的服务器都有配置,仍然可以离线迁移虚拟机。迁移操作中,Proxmox VE会通过网络将虚拟机硬盘镜像复制到目标服务器。