如何控制 KVM 上的虚拟机流量

如何控制 KVM 上的虚拟机流量

我在 KVM 虚拟机管理程序上运行多个虚拟机。其中一个虚拟机占用了大部分可用带宽,导致其他虚拟机难以使用。我如何控制每个虚拟机的带宽使用情况。我想保证每个虚拟机的带宽。我想知道这是否通常在虚拟机管理程序级别完成,如果是,如何完成?或者在虚拟交换机级别完成(如果我有)。

答案1

libvirt 域规范已包含此功能。您可以为传入和传出流量指定单独的设置。libvirt 文档中给出的示例是:

<devices>
  <interface type='network'>
    <source network='default'/>
    <target dev='vnet0'/>
    <bandwidth>
      <inbound average='1000' peak='5000' floor='200' burst='1024'/>
      <outbound average='128' peak='256' burst='256'/>
    </bandwidth>
  </interface>
<devices>

您可以在上游阅读更多内容http://libvirt.org/formatdomain.html#elementQoS

答案2

根据虚拟机的网络连接方式(桥接或路由),你也许可以使用TC(8)在主机中提供优先级排队。

有一个提供完整的操作方法

答案3

虽然这可能有点过头了,但我认为值得研究一下Open vSwitch。它是一种使用 OpenFlow 提供第 2 层和第 3 层功能的软件交换机。这包括路由和 QoS。您可能更适合使用 tc,我只是想确保您知道这一点。

相关内容