mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-30 18:50:18 +03:00
schema: Add new domain elements to support multiple throttle filters
Introduce schema for defining '<throttlefilters>' element which references throttling groups to form filter chain in qemu for specific disk * Add new elements '<throttlefilters>' * <ThrottleFilters> can include multiple throttlegroup references to form filter chain in qemu * Chained throttle filters feature in qemu is described at https://gitlab.com/qemu-project/qemu/blob/master/docs/throttle.txt Signed-off-by: Chun Feng Wu <danielwuwy@163.com> Signed-off-by: Harikumar Rajkumar <harirajkumar230@gmail.com> Reviewed-by: Peter Krempa <pkrempa@redhat.com> Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
2463533aad
commit
8ce2d2df0e
@ -2819,6 +2819,15 @@ paravirtualized driver is specified via the ``disk`` element.
|
||||
</backingStore>
|
||||
<target dev='vdh' bus='virtio'/>
|
||||
</disk>
|
||||
<disk type='file' device='disk'>
|
||||
<driver name='qemu' type='qcow2' />
|
||||
<source file='/var/lib/libvirt/images/disk.qcow2'/>
|
||||
<target dev='vdh' bus='virtio'/>
|
||||
<throttlefilters>
|
||||
<throttlefilter group='limit2'/>
|
||||
<throttlefilter group='limit012'/>
|
||||
</throttlefilters>
|
||||
</disk>
|
||||
</devices>
|
||||
...
|
||||
|
||||
@ -3321,6 +3330,18 @@ paravirtualized driver is specified via the ``disk`` element.
|
||||
:since:`since after 0.4.4`; "sata" attribute value :since:`since 0.9.7`;
|
||||
"removable" attribute value :since:`since 1.1.3`;
|
||||
"rotation_rate" attribute value :since:`since 7.3.0`
|
||||
``throttlefilters``
|
||||
The optional ``throttlefilters`` element provides the ability to provide additional
|
||||
per-device throttle chain :since:`Since 11.2.0`
|
||||
For example, if we have four different disks and we want to limit I/O for each one
|
||||
and we also want to limit combined I/O of all four disks, we can leverage
|
||||
``throttlefilters`` to achieve this goal by setting two ``throttlefilter`` for
|
||||
each disk: disk's own filter(e.g. limit2) and combined filter(e.g. limit012).
|
||||
The order of such ``throttlefilter`` doesn't matter within ``throttlefilters``.
|
||||
``throttlefilters`` and ``iotune`` should be used exclusively.
|
||||
|
||||
``throttlefilter``
|
||||
The optional ``throttlefilter`` element is to reference defined throttle group.
|
||||
``iotune``
|
||||
The optional ``iotune`` element provides the ability to provide additional
|
||||
per-device I/O tuning, with values that can vary for each device (contrast
|
||||
|
@ -1630,7 +1630,10 @@
|
||||
<ref name="encryption"/>
|
||||
</optional>
|
||||
<optional>
|
||||
<ref name="diskIoTune"/>
|
||||
<choice>
|
||||
<ref name="throttlefilters"/>
|
||||
<ref name="diskIoTune"/>
|
||||
</choice>
|
||||
</optional>
|
||||
<optional>
|
||||
<ref name="alias"/>
|
||||
@ -6888,6 +6891,20 @@
|
||||
</element>
|
||||
</optional>
|
||||
</define>
|
||||
<!--
|
||||
A set of throttlefilters to reference throttlegroups
|
||||
-->
|
||||
<define name="throttlefilters">
|
||||
<element name="throttlefilters">
|
||||
<zeroOrMore>
|
||||
<element name="throttlefilter">
|
||||
<attribute name="group">
|
||||
<data type="string"/>
|
||||
</attribute>
|
||||
</element>
|
||||
</zeroOrMore>
|
||||
</element>
|
||||
</define>
|
||||
<!--
|
||||
A set of optional features: PAE, APIC, ACPI, GIC, TCG,
|
||||
HyperV Enlightenment, KVM features, paravirtual spinlocks and HAP support
|
||||
|
Loading…
x
Reference in New Issue
Block a user