file-systems: Use cgroups v2.
cgroup v2 is the next generation of the control groups API. This patch replaces the cgroup v1 file systems with the unified cgroup v2 file system. cgroup v2 allows for things like containerd/podman to run rootless containers and opens guix system up to running things like Kubernetes. Thanks to Hilton Chain <hako@ultrarare.space> for suggesting the Docker service change. * gnu/system/file-systems.scm (%control-groups): Change to a single "cgroup2" mount point. * gnu/services/docker.scm (docker-shepherd-service): Trim 'requirement' field accordingly. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
parent
267e4234ff
commit
969cea6836
|
@ -116,12 +116,7 @@ loop-back communications.")
|
|||
(requirement '(containerd
|
||||
dbus-system
|
||||
elogind
|
||||
file-system-/sys/fs/cgroup/blkio
|
||||
file-system-/sys/fs/cgroup/cpu
|
||||
file-system-/sys/fs/cgroup/cpuset
|
||||
file-system-/sys/fs/cgroup/devices
|
||||
file-system-/sys/fs/cgroup/memory
|
||||
file-system-/sys/fs/cgroup/pids
|
||||
file-system-/sys/fs/cgroup
|
||||
networking
|
||||
udev))
|
||||
(start #~(make-forkexec-constructor
|
||||
|
|
|
@ -445,26 +445,13 @@ TARGET in the other system."
|
|||
(flags '(read-only bind-mount no-atime))))
|
||||
|
||||
(define %control-groups
|
||||
(let ((parent (file-system
|
||||
(device "cgroup")
|
||||
(mount-point "/sys/fs/cgroup")
|
||||
(type "tmpfs")
|
||||
(check? #f))))
|
||||
(cons parent
|
||||
(map (lambda (subsystem)
|
||||
(file-system
|
||||
(device "cgroup")
|
||||
(mount-point (string-append "/sys/fs/cgroup/" subsystem))
|
||||
(type "cgroup")
|
||||
(check? #f)
|
||||
(options subsystem)
|
||||
(create-mount-point? #t)
|
||||
|
||||
;; This must be mounted after, and unmounted before the
|
||||
;; parent directory.
|
||||
(dependencies (list parent))))
|
||||
'("cpuset" "cpu" "cpuacct" "memory" "devices" "freezer"
|
||||
"blkio" "perf_event" "pids")))))
|
||||
;; The cgroup2 file system.
|
||||
(list (file-system
|
||||
(device "none")
|
||||
(mount-point "/sys/fs/cgroup")
|
||||
(type "cgroup2")
|
||||
(check? #f)
|
||||
(create-mount-point? #f))))
|
||||
|
||||
(define %elogind-file-systems
|
||||
;; We don't use systemd, but these file systems are needed for elogind,
|
||||
|
|
Reference in New Issue