for comment
"Preferrably all these definitions should be shared with <iotune> as any
change would now need to change two places."
do you mean we use domain xml like the following one(which reuse <iotune>
definition):
<domain>
...
<iotunes>
<iotune>
<group_name>limit0</group_name>
<total_bytes_sec>10000000</total_bytes_sec>
<read_iops_sec>400000</read_iops_sec>
<write_iops_sec>100000</write_iops_sec>
</iotune>
</iotunes>
...
</devices>
<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 iotune='limit2'/>
<throttlefilter iotune='limit012'/>
</throttlefilters>
</disk>
</devices>
...
</domain>