hi, Michal Privoznik
i am a bit confusion about type of vm's interface .
<interface type='network'> and <interface type='bridge'>
do the Qos in libvirt can apply to both case?
thanks
At 2014-01-10 17:45:23,"Michal Privoznik" <mprivozn@redhat.com> wrote:
>On 10.01.2014 09:37, yue wrote:
>> hi,all
>> if we can control the bandwidth of vm at hypervisor level?
>> i know linux tc command can control traffic, but it is at ISO level 3,
>> vm;s network is on bridge at level 2.
>>
>> how libvirt implement traffic control over vm?
>>
>> thanks
>>
>
>I'm not sure the linux traffic shaper works on layer 3. I'd say linux
>inserts a new layer (called "queuing layer") in between layers 2 and 3
>just to allow traffic shaping on bridges too. Hence, there's no need for
>libvirt to treat bridges differently than the rest of devices when it
>comes to traffic shaping (e.g. TUN/TAP device). If your bridge is
>managed by libvirt, you can insert a simple XML snippet to corresponding
>network configuration, e.g.:
>
> <bandwidth>
> <inbound average='1000' peak='5000' burst='5120'/>
> <outbound average='128' peak='256' burst='256'/>
> </bandwidth>
>
>http://libvirt.org/formatnetwork.html#elementQoS
>
>Same applies for each domain's interface:
>
> <bandwidth>
> <inbound average='1000' peak='5000' floor='200' burst='1024'/>
> <outbound average='128' peak='256' burst='256'/>
> </bandwidth>
>
>
>http://libvirt.org/formatdomain.html#elementQoS
>
>If you're interested in implementation details I'd suggest to dive into
>
>http://libvirt.org/git/?p=libvirt.git;a=blob;f=src/util/virnetdevbandwidth.c;h=ed6a19d7faa3b564e4aa6c184418ebd85305a712;hb=HEAD#l45
>
>Libvirt creates rather a complex tree of qdiscs (things get complicated
>once a device hotplug is allowed). But there's nearly a page comment
>with a picture showing what's going on.
>
>Michal