搜索

8.8. 热插二级网络接口

download PDF

您可以在不停止虚拟机(VM)的情况下添加或删除二级网络接口。OpenShift Virtualization 支持热插和热拔使用 VirtIO 设备驱动程序的 Linux 网桥接口。

重要

热插和热拔桥接网络接口只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

8.8.1. virtio 限制

每个 VirtIO 接口使用虚拟机中的有限 Peripheral Connect Interface (PCI) 插槽之一。总共有 32 个插槽可用。PCIe 插槽也被其他设备使用,必须提前保留,因此插槽可能按需提供。OpenShift Virtualization 为热插接口保留最多四个插槽。这包括任何现有插入的网络接口。例如,如果您的虚拟机有两个现有的 plugged 接口,您可以热插两个网络接口。

注意

可用于热插的实际插槽数量也取决于机器类型。例如,q35 机器类型的默认 PCI 拓扑支持热插一个额外的 PCIe 设备。有关 PCI 拓扑和热插支持的更多信息,请参阅 libvirt 文档

如果在热插接口后重启虚拟机,则该接口就成为标准网络接口的一部分。

8.8.2. 使用 CLI 热插网桥网络接口

在虚拟机运行时热插到虚拟机(VM)的桥接网络接口。

先决条件

  • 网络附加定义与虚拟机相同的命名空间中配置。
  • 已安装 virtctl 工具。

流程

  1. 如果要热插网络接口的虚拟机没有运行,请使用以下命令启动它:

    $ virtctl start <vm_name> -n <namespace>
  2. 使用以下命令,将新网络接口热插到正在运行的虚拟机中。virtctl addinterface 命令向虚拟机和虚拟机实例(VMI)规格添加新网络接口,但不会将其附加到正在运行的虚拟机中。

    $ virtctl addinterface <vm_name> --network-attachment-definition-name <net_attach_dev_namespace>/<net_attach_def_name> --name <interface_name>

    其中:

    <vm_name>
    VirtualMachine 对象的名称。
    <net_attach_def_name>
    NetworkAttachmentDefinition 对象的名称。
    <net_attach_dev_namespace>
    NetworkAttachmentDefinition 对象关联的命名空间的标识符。支持的值是 default 或虚拟机所在的命名空间的名称。
    <interface_name>
    新网络接口的名称。
  3. 要将网络接口附加到正在运行的虚拟机中,请使用以下命令实时迁移虚拟机:

    $ virtctl migrate <vm_name>

验证

  1. 使用以下命令验证虚拟机实时迁移是否成功:

    $ oc get VirtualMachineInstanceMigration -w

    输出示例

    NAME                        PHASE             VMI
    kubevirt-migrate-vm-lj62q   Scheduling        vm-fedora
    kubevirt-migrate-vm-lj62q   Scheduled         vm-fedora
    kubevirt-migrate-vm-lj62q   PreparingTarget   vm-fedora
    kubevirt-migrate-vm-lj62q   TargetReady       vm-fedora
    kubevirt-migrate-vm-lj62q   Running           vm-fedora
    kubevirt-migrate-vm-lj62q   Succeeded         vm-fedora

  2. 通过检查 VMI 状态来验证新接口是否已添加到虚拟机中:

    $ oc get vmi vm-fedora -ojsonpath="{ @.status.interfaces }"

    输出示例

    [
      {
        "infoSource": "domain, guest-agent",
        "interfaceName": "eth0",
        "ipAddress": "10.130.0.195",
        "ipAddresses": [
          "10.130.0.195",
          "fd02:0:0:3::43c"
        ],
        "mac": "52:54:00:0e:ab:25",
        "name": "default",
        "queueCount": 1
      },
      {
        "infoSource": "domain, guest-agent, multus-status",
        "interfaceName": "eth1",
        "mac": "02:d8:b8:00:00:2a",
        "name": "bridge-interface", 1
        "queueCount": 1
      }
    ]

    1
    热插接口会出现在 VMI 状态中。

8.8.3. 使用 CLI 热拔网桥网络接口

您可以从正在运行的虚拟机(VM)中删除桥接网络接口。

先决条件

  • 您的虚拟机必须正在运行。
  • 虚拟机必须在运行 OpenShift Virtualization 4.14 或更高版本的集群中创建。
  • 虚拟机必须附加了一个桥接网络接口。

流程

  1. 运行以下命令来热拔网桥网络接口。virtctl removeinterface 命令从客户机中分离网络接口,但接口仍然存在于 pod 中。

    $ virtctl removeinterface <vm_name> --name <interface_name>
  2. 通过迁移虚拟机从 pod 中删除接口:

    $ virtctl migrate <vm_name>

8.8.4. 其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.