[Gelöst] libvirt, kvm, qemu -- Netzwerkgeschwindigkeit

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

[Gelöst] libvirt, kvm, qemu -- Netzwerkgeschwindigkeit

Beitrag von gbotti » 14.08.2012 13:26:07

Hallo.

Ich habe mir mit libvirt, KVM, qemu und einer Bridge zum basteln einen Rechner konfiguriert. Das Problem, welches ich hier Beschreibe, habe ich sowohl mit Squeeze, Ubuntu 12.04 und CentOS 6.3 (ich hab dafür 3 verschiedene Festplatten verwendet). Der Rechner selbst ist mit GBit ans lokale Netzwerk angebunden, was über die Bridge an die VM's weitergereicht wird.

Ich möchte nun die Netzwerkgeschwindigkeit für einzelne VM's drosseln -- Beispielsweise auf 100MBit. Am einfachsten wäre es vermutlich den Netzwerktreiber in der VM umzustellen, was aber leider ausfällt, da ich das nicht zentral verwalten kann.

Ich habe schon verschiedene virtuelle Netzwerkkarten ausprobiert, unter anderen:
e1000
virtio
ne2k_pci (hat permanent Abstürze der VM verursacht)
rtl8139 ... usw.

Mit brctl auf dem Host kann ich ja nichts einstellen, mit "ip link" und anderen Programmen (ethtool, mii-tool, ...) konnte ich nichts ausrichten.

Was habe ich übersehen? Hat jemand eine Idee, wie ich das lösen könnte?
Zuletzt geändert von gbotti am 16.08.2012 10:48:51, insgesamt 1-mal geändert.
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

nTraum
Beiträge: 19
Registriert: 13.08.2012 14:27:17

Re: libvirt, kvm, qemu -- Netzwerkgeschwindigkeit

Beitrag von nTraum » 14.08.2012 13:44:37

Soweit ich weiß bieten KVM bzw. die dazugehörigen Wrappertools kein Bandwidth Limiting nativ an. Über tc ist sowas jedoch möglich. Ob man das jetzt direkt auf dem Host oder in der VM konfigurieren sollte, kann ich nicht sagen. Zum Tool an sich finden sich jedoch etliche Anleitungen im WWW.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: libvirt, kvm, qemu -- Netzwerkgeschwindigkeit

Beitrag von Cae » 14.08.2012 14:23:19

nTraum hat geschrieben:Ob man das jetzt direkt auf dem Host oder in der VM konfigurieren sollte, kann ich nicht sagen.
Ich würde das als Einschränkung für die VM verstehen, die sie selbst nicht umgehen dürfen soll. Außerdem soll die Verwaltung zentral erfolgen, das spricht beides für "auf dem Host".

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: libvirt, kvm, qemu -- Netzwerkgeschwindigkeit

Beitrag von gbotti » 14.08.2012 16:22:31

Hallo.

Vielen Dank für die Antworten.

Ich habe inzwischen herausgefunden, dass man die "bandwidth" mit einem "average" belegen kann, da sind aber die Werte völlig merkwürdig.

Ich probiere tc mal aus. Falls noch jemand ne Idee hat, bitte gerne hier hin schreiben. :)
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

nTraum
Beiträge: 19
Registriert: 13.08.2012 14:27:17

Re: libvirt, kvm, qemu -- Netzwerkgeschwindigkeit

Beitrag von nTraum » 14.08.2012 16:49:36

Du scheinst Recht zu haben, laut libvirt-Doku (Punkt "Quality of service") kann man in der XML-Definition der Gäste QoS für diese definieren.

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: libvirt, kvm, qemu -- Netzwerkgeschwindigkeit

Beitrag von gbotti » 14.08.2012 17:04:16

Hi.
nTraum hat geschrieben:Du scheinst Recht zu haben, laut libvirt-Doku (Punkt "Quality of service") kann man in der XML-Definition der Gäste QoS für diese definieren.
Nur mit den Werten komm ich nicht klar.

Hier steht nämlich bits und dort stehen kilobytes per second.

Meine Aktuelle Konfiguration schaut nun so aus:

Code: Alles auswählen

...
      <bandwidth>
        <inbound average='100000' peak='100000' burst='1024'/>
        <outbound average='100000' peak='100000' burst='1024'/>
      </bandwidth>
...
Damit krieg ich aber etwa 130 MBit/s zusammen.

Wenn ich es mit den kilobyte-Werten probiere, also in etwa so:

Code: Alles auswählen

...
      <bandwidth>
        <inbound average='12500' peak='12500' burst='1024'/>
        <outbound average='12500' peak='12500' burst='1024'/>
      </bandwidth>
...
bekomme ich merkwürdige Werte unter 10 MBit/s zusammen.

Weiß jemand, was ich falsch mache?

Edit: Übrigens. Ich verwende iperf im Netzwerk auf einen Squeeze-Rechner mit 1GBit-Anbindung (keine virtuelle Maschine). Ohne die bandwidth-Werte komme ich mit iperf auf etwa 800 MBit/s.
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

nTraum
Beiträge: 19
Registriert: 13.08.2012 14:27:17

Re: libvirt, kvm, qemu -- Netzwerkgeschwindigkeit

Beitrag von nTraum » 15.08.2012 10:21:13

Hi,

ich finde in beiden Dokus folgenden Satz wieder:
Accepted values for attributes are integer numbers, The units for average and peak attributes are kilobytes per second, and for the burst just kilobytes.
Den Satz davor "It specifies average bit rate on interface being shaped." würde ich eher als allgemeine Beschreibung verstehen und nicht als konkrete Einheitenangabe.

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

[Gelöst] Re: libvirt, kvm, qemu -- Netzwerkgeschwindigkeit

Beitrag von gbotti » 16.08.2012 10:48:30

Hi.
nTraum hat geschrieben:Hi,

ich finde in beiden Dokus folgenden Satz wieder:
Accepted values for attributes are integer numbers, The units for average and peak attributes are kilobytes per second, and for the burst just kilobytes.
Den Satz davor "It specifies average bit rate on interface being shaped." würde ich eher als allgemeine Beschreibung verstehen und nicht als konkrete Einheitenangabe.
Diesen Satz habe ich auch gesehen. Jedoch wenn ich 12500 kilobytes per second eintrage, dann komme ich mit iperf auf einen Wert um die 10 MBit/s. Jetzt habe ich 100000 eingestellt, jetzt klappt es ungefähr. Ungenau ist immer noch besser als garnicht. Es geht eigentlich hauptsächlich darum, dass eine einzelne VM den nicht physikalischen Port blockieren kann :)

Aber danke für die Antworten. Ich markiere das hier vorerst mal als "gelöst"
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

nTraum
Beiträge: 19
Registriert: 13.08.2012 14:27:17

Re: [Gelöst] libvirt, kvm, qemu -- Netzwerkgeschwindigkeit

Beitrag von nTraum » 16.08.2012 11:45:30

12.500 kB/s sind doch 10.000 MBit/s, oder missverstehen wir uns gerade?

gbotti
Beiträge: 846
Registriert: 16.07.2010 14:24:43
Wohnort: München

Re: [Gelöst] libvirt, kvm, qemu -- Netzwerkgeschwindigkeit

Beitrag von gbotti » 16.08.2012 12:02:44

Hi.

Also. Laut der Doku ist der Wert für "average" in "kilobytes per second" anzugeben. 12500 kilobytes per second sind etwa 100.000 MBit/s. Wenn ich aber 12500 bei average eintrage, dann bekomme ich mit iperf gerade mal etwa 10 MBit/s ausgespuckt. Bei dem Wert 100.000 bekomme ich etwas mehr als 100 MBit/s angezeigt.
Georg
RTFM, LMGTFY, Orakel... Ach... Warum muss man suchen...
Schrödingers Backup --- "Der Zustand eines Backups ist unbekannt, solange man es nicht wiederherstellt" --- Quelle: Nixcraft

Antworten