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가 지속되도록 만드는 방법은 무엇입니까?
한 가지 접근 방식은 시스템 시작 시 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로 업데이트했습니다.