libvirt KVM 虚拟化 - 定义一些客户机使用一个 NIC,其他客户机使用不同的 NIC?

libvirt KVM 虚拟化 - 定义一些客户机使用一个 NIC,其他客户机使用不同的 NIC?

我在具有两个物理网卡(1Gbps)的服务器上运行 30 个 libvirt 定义的 KVM VM。

目前我正在使用 NATted 虚拟网络,定义虚拟机的接口(作为完整虚拟机定义的一部分,而不是单独的网络定义),如下所示:

<interface type='bridge'>
  <source bridge='virbr0'/>
  <target dev='vnet0'/>
  <model type='virtio'/>
  <alias name='net0'/>
</interface>

[编辑] 一切按预期运行。30 台虚拟机使用主机的默认以太网接口 - 但其带宽上限为 1Gbps。

为了最大限度地提高虚拟机的吞吐量(特别是 RX),我希望一半的虚拟机使用其中一个物理网卡,另一半使用另一个网卡。主机也必须使用其中一个网卡。

可以这样做吗?我正在寻找虚拟机上的最大 RX 性能。

我们不能使用桥接模式,因为我们可能没有足够的 IP 来支持我们想要运行的虚拟机数量(在该服务器的多个副本上)。

答案1

今年早些时候,我遇到了同样的问题,这是我经过一番研究后得出的结论。

一般来说,物流如下;由于您已经创建了 xml 文件,因此您需要首先定义网络,启动并使其随服务启动自动运行,然后需要将其附加到您选择的 VM。

例如,如果您有一个 net0.xml 文件,那么您可以执行:

$ sudo virsh net-define net0.xml   //To define the network from the xml file without starting it
$ sudo virsh net-start net0    //To start an already defined network 
$ sudo virsh net-autostart net0 //To configure the net0 network to automatically start along with the service

要确认桥的创建,您可以发出以下命令:

$ ip a 

或者

$ virsh net-list --all 

现在要将网络连接到虚拟机,请执行:

$ sudo virsh attach-interface --domain <vm-name-here> --type bridge \
--source net0 --model virtio --config --live 

使用以下命令,您可以检查已连接到特定虚拟机的虚拟网络。

$ sudo virsh domiflist <vm-name-here>

Interface Type Source Model MAC
-------------------------------------------------------
vnet0 bridge virbr0 virtio 52:54:00:e9:ad:17
vnet1 bridge net0 virtio 52:54:00:47:e1:eb

如果您需要从虚拟机中分离网络(例如默认网络或之前创建和连接的网络),那么您可以执行上述命令来复制 MAC 地址,然后执行以下命令从虚拟机中分离接口。

$ sudo virsh detach-interface --domain <vm-name-here> --type bridge --mac
52:54:00:47:e1:eb --config

$ sudo virsh domiflist <vm-name-here>
Interface Type Source Model MAC
-------------------------------------------------------
vnet0 bridge net0 virtio 52:54:00:e9:ad:17

如果由于某种原因桥接器没有连接,你可以发出:

$ sudo nmcli connection up net0

要查看 net0 连接的具体信息,您可以使用以下命令:

$ sudo nmcli connection show net0

使用以下命令,您可以检查为虚拟机创建的网络列表,还可以检查与每个网络的状态、持久性和自动启动相对应的标志。

virsh net-list --all 

一切都有记录这里他们说得比我好。

通常,我在以下站点中找到了许多有关 KVM 管理程序或 Linux 管理的答案:

泰克明

RedHat-网络接口文档

另外,也许你想检查一下座舱。它为您的服务器提供了一个基于 Web 的界面,您可以通过常规存储库将其添加到您的计算机。添加 cockpit-machines 软件包后,您可以为您的服务器提供一个非常整洁的管理环境。不过,我建议您手动安装它,因为存储库中的版本比当前版本早几个版本。

希望这可以帮助。

相关内容