10.3. 启动和取消实时迁移
您可以使用 OpenShift Container Platform Web 控制台或命令行启动虚拟机(VM)到另一节点实时迁移。
您可以使用 Web 控制台或命令行取消实时迁移。虚拟机保留在其原始节点上。
您还可以使用 virtctl migrate <vm_name>
and virtctl migrate-cancel <vm_name>
命令启动和取消实时迁移。
10.3.1. 启动实时迁移
10.3.1.1. 使用 Web 控制台启动实时迁移
您可以使用 OpenShift Container Platform web 控制台将正在运行的虚拟机 (VM) 实时迁移到集群中的不同节点。
Migrate 操作对所有用户可见,但只有集群管理员才能启动实时迁移。
先决条件
- 虚拟机必须是可修改的。
- 如果虚拟机配置了主机模型 CPU,集群必须具有支持 CPU 模型的可用节点。
流程
-
在 web 控制台中进入到 Virtualization
VirtualMachines。 - 从虚拟机 旁边的 Options 菜单 选择 Migrate。
- 点 Migrate。
10.3.1.2. 使用命令行启动实时迁移
您可以使用命令行启动虚拟机(VM)的实时迁移,为虚拟机创建 VirtualMachineInstanceMigration
对象。
流程
为您要迁移的虚拟机创建
VirtualMachineInstanceMigration
清单:apiVersion: kubevirt.io/v1 kind: VirtualMachineInstanceMigration metadata: name: <migration_name> spec: vmiName: <vm_name>
运行以下命令来创建对象:
$ oc create -f <migration_name>.yaml
VirtualMachineInstanceMigration
对象会触发虚拟机的实时迁移。只要虚拟机实例在运行,该对象便始终存在于集群中,除非手动删除。
验证
运行以下命令来获取虚拟机状态:
$ oc describe vmi <vm_name> -n <namespace>
输出示例
# ... Status: Conditions: Last Probe Time: <nil> Last Transition Time: <nil> Status: True Type: LiveMigratable Migration Method: LiveMigration Migration State: Completed: true End Timestamp: 2018-12-24T06:19:42Z Migration UID: d78c8962-0743-11e9-a540-fa163e0c69f1 Source Node: node2.example.com Start Timestamp: 2018-12-24T06:19:35Z Target Node: node1.example.com Target Node Address: 10.9.0.18:43891 Target Node Domain Detected: true
10.3.2. 取消实时迁移
10.3.2.1. 使用 Web 控制台取消实时迁移
您可以使用 OpenShift Container Platform web 控制台取消虚拟机的实时迁移。
流程
-
在 web 控制台中进入到 Virtualization
VirtualMachines。 - 在虚拟机的 Options 菜单 中选择 Cancel Migration。
10.3.2.2. 使用命令行取消实时迁移
通过删除与迁移关联的 VirtualMachineInstanceMigration
对象来取消虚拟机的实时迁移。
流程
删除触发实时迁移的
VirtualMachineInstanceMigration
对象,本例中为migration-job
:$ oc delete vmim migration-job