Hi
I can only comment on some of your questions as I also can't say to
understand this completely.
Then, blkio.throttle can be used to set actual hard limits on IO
consumption -- like, no more than 10Mbps for this VM. I can already do
this with blkio cgroups, but just not from libvirt -- yes?
Yes.
But bear in mind that this only works for sync I/O, not for buffered I/O
(read my discussion with Gui).
Like many people using libvirt, I only use my hosts for running VMs,
and
I am most interested in limiting IO operations per host to make sure
that no host monopolizes our SAN. Is there a way for me to just set a
hard IO throttle limit for libvirt as a whole which would apply to all
child VMs created by libvirt? I saw a discussion on this list regarding
group hierarchy, but it went over my head.
I did not read the other discussion, but this comes to my mind when
thinking about your question: You could try to put the libvirtd process
into a cgroup that has certain limits configured. Every spawned child of
this process will inherit those limits.
Not sure if a VM is actually a libvirtd-child though, since at least
"ps" shows them as init's children on my systems.
If you try this, please report back what you did and how it worked.
Regards
Dominik