12.3. 迁移虚拟机实例到另一节点

使用 web 控制台或 CLI 手动将虚拟机实例实时迁移到另一节点。

注意

如果虚拟机使用主机模型 CPU,则只能在支持其主机 CPU 模型的节点之间进行实时迁移。

12.3.1. 在 web 控制台中启动虚拟机实例的实时迁移

将正在运行的虚拟机实例迁移到集群中的不同节点。

注意

Migrate 操作对所有用户可见,但只有 admin 用户可以启动虚拟机迁移。

流程

  1. 在 OpenShift Container Platform 控制台中,从侧边菜单中点 VirtualizationVirtualMachines
  2. 您可从此页面启动迁移,这有助于在同一页面上对多个虚拟机执行操作,也可从 VirtualMachine 详情页面(您可以在其中查看所选虚拟机的综合详情):

    • 点虚拟机旁边的 Options 菜单 kebab 并选择 Migrate
    • 点虚拟机名称,打开 VirtualMachine 详情页面,然后点击 ActionsMigrate
  3. 点击 Migrate 把虚拟机迁移到另一节点。

12.3.1.1. 使用 Web 控制台监控实时迁移

您可以在 web 控制台OverviewMigrations 选项卡中监控所有实时迁移的进度。

您可以在 web 控制台的 VirtualMachine detailsMetrics 选项卡中查看虚拟机的迁移指标。

12.3.2. 在 CLI 中启动虚拟机实例的实时迁移

通过在集群中创建 VirtualMachineInstanceMigration 对象并引用虚拟机实例的名称来启动正在运行的虚拟机实例的实时迁移。

流程

  1. 为要迁移的虚拟机实例创建 VirtualMachineInstanceMigration 配置文件。例如 VMI-migrate.yaml

    apiVersion: kubevirt.io/v1
    kind: VirtualMachineInstanceMigration
    metadata:
      name: migration-job
    spec:
      vmiName: vmi-fedora
  2. 运行以下命令在集群中创建对象:

    $ oc create -f vmi-migrate.yaml

VirtualMachineInstanceMigration 对象触发虚拟机实例的实时迁移。只要虚拟机实例在运行,该对象便始终存在于集群中,除非手动删除。

12.3.2.1. 在 CLI 中监控虚拟机实例的实时迁移

虚拟机迁移的状态保存在 VirtualMachineInstance 配置的 Status 组件中。

流程

  • 在正在迁移的虚拟机实例上使用 oc describe 命令:

    $ oc describe vmi vmi-fedora

    输出示例

    # ...
    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

12.3.3. 其他资源