[libvirt] RFC: APIs for managing resource groups
Daniel P. Berrange
berrange at redhat.com
Mon Feb 25 16:57:31 UTC 2013
On Mon, Feb 25, 2013 at 09:48:16AM -0700, Eric Blake wrote:
> On 02/25/2013 05:41 AM, Daniel P. Berrange wrote:
> > Historically for the QEMU/LXC drivers we've simply put each virtual
> > instance in a dedicated cgroup, under the path
> >
>
> > We need to simplify our layout and also introduce some APIs for the
> > grouping of VMs. I won't go into specifics of a new cgroups layout
> > here, just focus on the question of defining a set of APIs that are
> > generic to any hypervisor, for the purpose of setting up VM resource
> > groups.
>
> I'm very much in favor of VM resource groups. In fact, this RFC has
> come up in the past, if it gives you any ideas of what you replied back
> then:
> https://www.redhat.com/archives/libvir-list/2011-March/msg01546.html
>
> >
> > I'm calling the resource cgroup a "partition", since this is all about
> > partitioning workloads.
>
> Yes, that naming is workable, and a bit better than what I tried last time.
>
> >
> > I anticipate a new top level object and APIs for creating/defining it
> > in the usual manner:
>
> <snip good API>
>
> >
> > There'd also likely be a new VM XML element
> >
> > <partition name="..partition name..."/>
> >
> > which is what the Get/SetPartition methods would be touching.
>
> Earlier, you pointed out that it might make sense to have multiple
> partitions per domain - that is, have one partitioning that controls
> only memory usage, and another partitioning that controls only cpu
> usage, then have a domain that belongs to two orthogonal partitions to
> cap both memory and cpu. Your proposal today doesn't seem to deal with
> the idea of having multiple partitions per domain. Also, while you
> proposed having a domain belong to a partition, you didn't cover whether
> it makes sense to have a hierarchy of partitions, where one partition
> can provide further constraints on top of a parent partition.
While cgroups currently allows you to setup different hiearchies
for memory, cpu, blockio, etc controls, these days it is agreed
that this is an anti-feature causing no end of trouble for all
involved. In the future I expect the kernel will enforce that we
use the same hierarchy for all cgroup controllers. In other words,
we only want a single partition for all resources.
I do anticipate that we'll be able to create partition hierarchies,
though it may be discouraged since it has performance implications
for the kernel that are currently somewhat unacceptable.
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list