Quality of Service di Libvirt

Quality of Service (QOS) pada libvirt berguna untuk mengelola atau mengontrol trafik VM agar terbagi rata serta tidak mengganggu trafik VM lainnya. Fitur ini tidak didukung untuk mode forward passthrough, private, atau hostdev.

Untuk konfigurasinya menggunakan element <bandwidth> yang bisa Anda terapkan pada virtual network atau dengan mengedit element <interface> pada VM secara langsung.

Contoh network XML untuk implementasi QOS

<network>
  <name>backup</name>
  <forward mode='open'/>
  <bridge name='br0' stp='on' delay='0' macTableManager='libvirt'/>
  <bandwidth>
    <inbound average='12500' peak='12500' burst='16000'/>
    <outbound average='12500' peak='12500' burst='16000'/>
  </bandwidth>
  <ip address='10.10.100.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='10.10.100.128' end='10.10.100.200'/>
    </dhcp>
  </ip>
</network>

average: menentukan kecepatan rata rata dalam kilobytes/second.

peak: menentukan kecepatan maksimum dalam kilobytes/second.

burst: menentukan jumlah kibibyte yang dapat ditransmisikan dalam satu burst setelah mencapai kecepatan maksimum.

Jika 1 kilobytes = 8 kilobit. Maka dari penjelasan diatas dapat diartikan jika konfigurasi network tersebut melimit trafik keluar dan masuk dengan rata-rata 100Mb, maksimum 100Mb, dan burst 128Mb.

Apabila ingin melimit bandwidth per VM dengan pengaturan yang berbeda, Anda bisa menggunakan perintah virsh

virsh attach-interface --domain cirros-p1 --type network --source backup \
  --model virtio \
  --inbound 12500,12500,16000 \
  --outbound 12500,12500,16000