RHEL 7でシステムを再起動してもcgroup V2を持続させる方法

RHEL 7でシステムを再起動してもcgroup V2を持続させる方法

RHEL7を使用しています。システムのデフォルトの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を持続させる方法は?

1つのアプローチは、システム起動時に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に更新しました。

関連情報