如何使 cgroup V2 在 RHEL 7 中的系统重新引导后持续存在

如何使 cgroup V2 在 RHEL 7 中的系统重新引导后持续存在

我使用的是 RHEL 7。系统的默认 Cgroup 层次结构是 Cgroup V1。我需要系统让 Cgroup V1 和 Cgroup V2 层次结构共存,我通过手动创建根 Cgroup V2 来实现这一点

sudo mkdir /mnt/cgroup2
sudo mount -t cgroup2 none /mnt/cgroup2/

因此,系统当前具有默认的 Cgroup V1 层次结构/sys/fs/cgroup 和 cgroup V2 层次结构/mnt/cgroup2

但是,系统重新启动后,Cgroup V2 安装点就会消失。该目录保留,但 Cgroup V2 文件系统不再安装在那里。

重新启动之前

$ mount | grep cgroup2
none on /mnt/cgroup2 type cgroup2 (rw,relatime,seclabel)

重启后

$ mount | grep cgroup2
<---- no output . Hence mount is gone
$ ls /mnt/cgroup2
<---- no ls error. Hence directory stays
$ 

如何使 Cgroup V2 在系统重新启动后持续存在?

一种方法是设置一些启动脚本或 cron 作业,以便在系统启动时挂载 Cgroup V2 层次结构。但这似乎不是一个好方法。

另外,我无法替换它安装在 的 Cgroup V1 文件系统 /sys/fs/cgroup。 Cgroup V1和Cgroup V2应该在系统中共存。

编辑 - cgroup V1 和 V2 的当前安装

$ mount | grep cgroup
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,net_cls,net_prio)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,hugetlb)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpu,cpuacct)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,blkio)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,devices)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,perf_event)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,pids)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,memory)
cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,rdma)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuset)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,freezer)
uc on /uc/cgroups type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,name=uc)
none on /mnt/cgroup2 type cgroup2 (rw,relatime,seclabel)

编辑 2 - 将挂载目录从 /run/cgroup2 更新为 /mnt/cgroup2

相关内容