×

您可以使用OpenShift Container Platform Web 控制台命令行启动虚拟机 (VM) 的实时迁移到另一个节点。

您可以使用Web 控制台命令行取消实时迁移。虚拟机将保留在其原始节点上。

您还可以使用virtctl migrate <vm_name>virtctl migrate-cancel <vm_name>命令启动和取消实时迁移。

启动实时迁移

使用 Web 控制台启动实时迁移

您可以使用 OpenShift Container Platform Web 控制台将正在运行的虚拟机 (VM) 实时迁移到集群中的不同节点。

所有用户都可以看到**迁移**操作,但只有集群管理员才能启动实时迁移。

先决条件
  • 虚拟机必须可迁移。

  • 如果虚拟机配置了主机模型 CPU,则集群必须具有支持 CPU 模型的可用节点。

步骤
  1. 在 Web 控制台中导航到**虚拟化**→**虚拟机**。

  2. 从虚拟机旁边的“选项”菜单kebab中选择**迁移**。

  3. 单击**迁移**。

使用命令行启动实时迁移

您可以使用命令行创建虚拟机的VirtualMachineInstanceMigration对象来启动正在运行的虚拟机 (VM) 的实时迁移。

步骤
  1. 为要迁移的虚拟机创建VirtualMachineInstanceMigration清单

    apiVersion: kubevirt.io/v1
    kind: VirtualMachineInstanceMigration
    metadata:
      name: <migration_name>
    spec:
      vmiName: <vm_name>
  2. 运行以下命令创建对象

    $ 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

取消实时迁移

使用 Web 控制台取消实时迁移

您可以使用 OpenShift Container Platform Web 控制台取消虚拟机 (VM) 的实时迁移。

步骤
  1. 在 Web 控制台中导航到**虚拟化**→**虚拟机**。

  2. 在虚拟机旁边的“选项”菜单kebab中选择**取消迁移**。

使用命令行取消实时迁移

通过删除与迁移关联的VirtualMachineInstanceMigration 对象来取消虚拟机的实时迁移。

步骤
  • 删除触发实时迁移的VirtualMachineInstanceMigration 对象,本例中为migration-job

    $ oc delete vmim migration-job