12.3. 启动和取消实时迁移
您可以使用 OpenShift Container Platform Web 控制台或命令行启动虚拟机(VM)到另一节点实时迁移。
您可以使用 Web 控制台或命令行取消实时迁移。虚拟机保留在其原始节点上。
您还可以使用 virtctl migrate <vm_name> and virtctl migrate-cancel <vm_name> 命令启动和取消实时迁移。
12.3.1. 启动实时迁移 复制链接链接已复制到粘贴板!
12.3.1.1. 使用 Web 控制台启动实时迁移 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform web 控制台将正在运行的虚拟机 (VM) 实时迁移到集群中的不同节点。
Migrate 操作对所有用户可见,但只有集群管理员才能启动实时迁移。
先决条件
-
您有
kubevirt.io:migrateRBAC 角色或集群管理员。 - 虚拟机是可迁移的。
- 如果虚拟机配置了主机模型 CPU,集群有一个支持 CPU 模型的可用节点。
流程
-
在 web 控制台中进入到 Virtualization
VirtualMachines。 执行以下步骤:
-
点您要迁移的虚拟机旁的 Options 菜单
,将鼠标悬停在 Migrate 选项上,然后选择 Compute。
- 打开您要迁移的虚拟机的虚拟机详情页,点 Actions 菜单,将鼠标悬停在 Migrate 选项上,然后选择 Compute。
-
点您要迁移的虚拟机旁的 Options 菜单
在 Migrate Virtual Machine to a different Node 对话框中,选择 Automatically Selected Node 或 Specific Node。
- 如果您选择了 Specific Node 选项,请从列表中选择节点。
- 点 Migrate Virtual Machine。
12.3.1.2. 使用 CLI 启动实时迁移 复制链接链接已复制到粘贴板!
您可以使用命令行启动虚拟机(VM)的实时迁移,为虚拟机创建 VirtualMachineInstanceMigration 对象。
先决条件
-
已安装 OpenShift CLI(
oc)。 -
您有
kubevirt.io:migrateRBAC 角色或集群管理员。
流程
为您要迁移的虚拟机创建
VirtualMachineInstanceMigration清单:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建对象:
oc create -f <migration_name>.yaml
$ oc create -f <migration_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow VirtualMachineInstanceMigration对象会触发虚拟机的实时迁移。只要虚拟机实例在运行,该对象便始终存在于集群中,除非手动删除。
验证
运行以下命令来获取虚拟机状态:
oc describe vmi <vm_name> -n <namespace>
$ oc describe vmi <vm_name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
12.3.2. 取消实时迁移 复制链接链接已复制到粘贴板!
12.3.2.1. 使用 Web 控制台取消实时迁移 复制链接链接已复制到粘贴板!
您可以使用 OpenShift Container Platform web 控制台取消虚拟机的实时迁移。
先决条件
-
您有
kubevirt.io:migrateRBAC 角色或集群管理员。
流程
-
在 web 控制台中进入到 Virtualization
VirtualMachines。 -
在虚拟机的 Options 菜单
中选择 Cancel Migration。
12.3.2.2. 使用 CLI 取消实时迁移 复制链接链接已复制到粘贴板!
通过删除与迁移关联的 VirtualMachineInstanceMigration 对象来取消虚拟机的实时迁移。
先决条件
-
已安装 OpenShift CLI(
oc)。 -
您有
kubevirt.io:migrateRBAC 角色或集群管理员。
流程
删除触发实时迁移的
VirtualMachineInstanceMigration对象,本例中为migration-job:oc delete vmim migration-job
$ oc delete vmim migration-jobCopy to Clipboard Copied! Toggle word wrap Toggle overflow