• D
    Change default cgroup layout for QEMU/LXC and honour XML config · db44eb1b
    Daniel P. Berrange 提交于
    Historically QEMU/LXC guests have been placed in a cgroup layout
    that is
    
       $LOCATION-OF-LIBVIRTD/libvirt/{qemu,lxc}/$VMNAME
    
    This is bad for a number of reasons
    
     - The cgroup hierarchy gets very deep which seriously
       impacts kernel performance due to cgroups scalability
       limitations.
    
     - It is hard to setup cgroup policies which apply across
       services and virtual machines, since all VMs are underneath
       the libvirtd service.
    
    To address this the default cgroup location is changed to
    be
    
        /system/$VMNAME.{lxc,qemu}.libvirt
    
    This puts virtual machines at the same level in the hierarchy
    as system services, allowing consistent policy to be setup
    across all of them.
    
    This also honours the new resource partition location from the
    XML configuration, for example
    
      <resource>
        <partition>/virtualmachines/production</partitions>
      </resource>
    
    will result in the VM being placed at
    
        /virtualmachines/production/$VMNAME.{lxc,qemu}.libvirt
    
    NB, with the exception of the default, /system, path which
    is intended to always exist, libvirt will not attempt to
    auto-create the partitions in the XML. It is the responsibility
    of the admin/app to configure the partitions. Later libvirt
    APIs will provide a way todo this.
    Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
    db44eb1b
qemu_cgroup.c 28.2 KB