cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From r...@apache.org
Subject [5/5] git commit: updated refs/heads/master to c0fde9a
Date Tue, 25 Aug 2015 08:34:56 GMT
Merge pull request #731 from remibergsma/centos7-kvm

CLOUDSTACK-8443: Support CentOS 7 as KVM hypervisorThis adds support for CentOS 7 as a KVM
hypervisor. As discussed in the Jira issue, the root cause of the issue was the `cloudstack-setup-agent`
script that added this line to `/etc/libvirt/qemu.conf`:

`cgroup_controllers=["cpu"]`

On CentOS 6 this 'works', but since by default no cgroups are mounted, this setting is ignored
by `libvirtd`. On CentOS 7 is does not work, because the `cpu` and `cpuacct` are 'co-mounted'.
This simpy means you cannot use one without the order. The config line above instructs `libvirtd`
to only use the `cpu` cgroup, which it can't.

There was code added to make sure the `cpu` cgroup was not co-mounted. It did this with a
shell script, but after a reboot it was gone. It wasn't reliable and not even a solution at
all. I went ahead and removed the code, because the co-mounted cgroups work fine. The real
issue was the config line we put in `/etc/libvirt/qemu.conf` so much better to fix that instead.

The default for `libvirtd` is to use only cgroups that are mounted. When you remove the 'cgroup_controllers'
line, the default kicks in. According to the `qemu.conf` file, the default is:

`cgroup_controllers = ["cpu", "devices", "memory", "blkio", "cpuacct", "net_cls"]`

Then again, if it's not mounted, it's not used. So, that's a nice way to control it.
This works just fine for both RHEL/CentOS 6 and RHEL/CentOS 7.

Along the debugging, I came across some small issues here and there which I also fixed in
this PR.

If you test this, be sure to build RPMs from this branch and install those on the KVM hypervisor.

At Schuberg Philis we run KVM hypervisors on CentOS 7 for months with these fixes. Now I took
the time to fix the issues in CloudStack, rather than work around them.

@bhaisaab @karuturi could you please review this? Thanks!

Please note:
The next step is to fix CLOUDSTACK-8625 (Systemd profile for KVM Agent) as currently a sysvinit
script is still used. Although it works, we do not have any systemd benefits. As it is a separate
issue, I'll try to address it in a separate PR.

* pr/731:
  CLOUDSTACK-8443: detect CentOS 7.x as RHEL 7 alike
  CLOUDSTACK-8443: mention the correct logfile
  CLOUDSTACK-8443: display the right hypervisor type
  CLOUDSTACK-8443: don't try to fix co-mounted cgroups

Signed-off-by: Remi Bergsma <github@remi.nl>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c0fde9a1
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c0fde9a1
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c0fde9a1

Branch: refs/heads/master
Commit: c0fde9a12bf32d0d4009792d05b1648f7c6ea419
Parents: a527d27 0a320c1
Author: Remi Bergsma <github@remi.nl>
Authored: Tue Aug 25 10:32:27 2015 +0200
Committer: Remi Bergsma <github@remi.nl>
Committed: Tue Aug 25 10:32:27 2015 +0200

----------------------------------------------------------------------
 agent/bindir/cloud-setup-agent.in               |  2 +-
 .../kvm/resource/LibvirtComputingResource.java  | 23 ---------
 python/lib/cloud_utils.py                       | 19 -------
 python/lib/cloudutils/serviceConfig.py          |  7 ++-
 python/lib/cloudutils/utilities.py              |  2 +-
 scripts/vm/hypervisor/kvm/setup-cgroups.sh      | 52 --------------------
 6 files changed, 5 insertions(+), 100 deletions(-)
----------------------------------------------------------------------



Mime
View raw message