10.2. 配置实时迁移


您可以配置实时迁移设置,以确保迁移过程不会给集群造成大量问题。

您可以配置实时迁移策略,将不同的迁移配置应用到虚拟机组。

10.2.1. 配置实时迁移限制和超时

通过更新位于 openshift-cnv 命名空间中的 HyperConverged 自定义资源(CR)为集群配置实时迁移限制和超时。

流程

  • 编辑 HyperConverged CR 并添加必要的实时迁移参数:

    $ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv

    配置文件示例

    apiVersion: hco.kubevirt.io/v1beta1
    kind: HyperConverged
    metadata:
      name: kubevirt-hyperconverged
      namespace: openshift-cnv
    spec:
      liveMigrationConfig:
        bandwidthPerMigration: 64Mi 1
        completionTimeoutPerGiB: 800 2
        parallelMigrationsPerCluster: 5 3
        parallelOutboundMigrationsPerNode: 2 4
        progressTimeout: 150 5

    1
    每个迁移的带宽限制,其中值为每秒字节数。例如,2048Mi 表示 2048 MiB/s。默认:0,代表没有限制。
    2
    如果迁移未能在此时间内完成则会取消,以每 GiB 内存秒数为单位。例如,如果有 6GiB 内存的虚拟机在 4800 秒内还没有完成,则超时。如果 Migration MethodBlockMigration,则迁移磁盘的大小纳入计算中。
    3
    集群中并行运行的迁移数。默认:5
    4
    每个节点的最大出站迁移数。默认:2
    5
    如果内存复制未能在此时间内取得进展,则会取消迁移,以秒为单位。默认:150
注意

您可以通过删除该键/值对并保存文件来恢复任何 spec.liveMigrationConfig 字段的默认值。例如,删除 progressTimeout: <value> 以恢复默认的 progressTimeout: 150

10.2.2. 实时迁移策略

您可以创建实时迁移策略,将不同的迁移配置应用到由 VM 或项目标签定义的虚拟机组。

提示

您可以使用 OpenShift Virtualization web 控制台创建实时迁移策略。

10.2.2.1. 使用命令行创建实时迁移策略

您可以使用命令行创建实时迁移策略。kubevirt 使用任意标签组合将实时迁移策略应用到所选虚拟机 (VM):

  • VM 标签,如 size, os, 或 gpu
  • 项目标签,如 priority, bandwidth, 或 hpc-workload

要使策略应用到特定的虚拟机组,VM 组的所有标签都必须与策略标签匹配。

注意

如果多个实时迁移策略应用到 VMI,则具有最高匹配标签的策略会优先使用。

如果多个策略满足此条件,则策略按照匹配标签键的字母顺序排序,并且第一个策略具有优先顺序。

流程

  1. 编辑要应用实时迁移策略的 VM 对象,并添加对应的 VM 标签。

    1. 打开资源的 YAML 配置:

      $ oc edit vm <vm_name>
    2. 调整配置的 .spec.template.metadata.labels 部分中所需的标签值。例如,出于迁移策略的目的,将 VM 标记为 production VM,添加 kubevirt.io/environment: production 行:

      apiVersion: migrations.kubevirt.io/v1alpha1
      kind: VirtualMachine
      metadata:
        name: <vm_name>
        namespace: default
        labels:
          app: my-app
          environment: production
      spec:
        template:
          metadata:
            labels:
              kubevirt.io/domain: <vm_name>
              kubevirt.io/size: large
              kubevirt.io/environment: production
      # ...
    3. 保存并退出配置。
  2. 使用对应标签配置 MigrationPolicy 对象。以下示例配置适用于标记为 production 的所有虚拟机的策略:

    apiVersion: migrations.kubevirt.io/v1alpha1
    kind: MigrationPolicy
    metadata:
      name: <migration_policy>
    spec:
      selectors:
        namespaceSelector: 1
          hpc-workloads: "True"
          xyz-workloads-type: ""
        virtualMachineInstanceSelector: 2
          kubevirt.io/environment: "production"
    1
    指定项目标签。
    2
    指定 VM 标签。
  3. 运行以下命令来创建迁移策略:

    $ oc create migrationpolicy -f <migration_policy>.yaml

10.2.3. 其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.