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に更新しました。