Das Problem
Beim Starten von lxc wird der folgende Fehler ausgegeben:
lxc-start 1491315722.354 ERROR lxc_cgfs - Device or resource busy - failed to set memory.use_hierarchy to 1; continuing lxc-start 1491315722.354 ERROR lxc_cgfs - Device or resource busy - failed to set memory.use_hierarchy to 1; continuing lxc-start 1497957841.930 ERROR lxc_cgfs - Device or resource busy - failed to set memory.use_hierarchy to 1; continuing lxc-start 1497957841.937 ERROR lxc_cgfs - Device or resource busy - failed to set memory.use_hierarchy to 1; continuing
Die Lösung
In Anbetracht eines Szenarios, in dem wir den Fehler erhalten:Gerät oder Ressource beschäftigt – Fehler beim Festlegen von memory.use_hierarchy auf 1; weiter:
# lxc-start --name CentOS7 lxc-start: cgfs.c: handle_cgroup_settings: 2077 Device or resource busy - failed to set memory.use_hierarchy to 1; continuing systemd 208 running in system mode. (+PAM +LIBWRAP +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ) Detected virtualization 'lxc'. Welcome to CentOS Linux Server 7.1! Failed to insert module 'autofs4' Set hostname to [CentOS7]. [ OK ] Reached target Remote File Systems. [ OK ] Created slice Root Slice. [ OK ] Created slice User and Session Slice. [ OK ] Created slice System Slice. [ OK ] Reached target Slices. [ OK ] Created slice system-getty.slice.
Der Parameter /cgroup/memory/memory.use_hierarchy auf 0 gesetzt ist und das Problem verursacht. Verwenden Sie den folgenden Befehl, um den aktuellen Wert des Parameters zu überprüfen.
# cat /proc/mounts | grep -i mem cgroup /cgroup/memory cgroup rw,relatime,memory 0 0 # ls /cgroup/memory/memory.use_hierarchy /cgroup/memory/memory.use_hierarchy # cat /cgroup/memory/memory.use_hierarchy 0
Wenn wir versuchen, den Wert auf 1 zu setzen, wird immer noch derselbe Fehler ausgegeben:
# echo 1 > /cgroup/memory/memory.use_hierarchy -bash: echo: write error: Device or resource busy
Um den Fehler loszuwerden:Gerät oder Ressource ausgelastet – konnte memory.use_hierarchy nicht auf 1 setzen; Wenn Sie fortfahren, müssen Sie die folgenden Schritte ausführen:
- Beenden Sie den Container
- cgconfig-Dienst stoppen
- cgconfig-Dienst starten
- Setzen Sie den Parameter /cgroup/memory/memory.use_hierarchy auf 1
- Starten Sie den Container
# lxc-stop --name CentOS7
# /etc/init.d/cgconfig stop Stopping cgconfig service: [ OK ]
# cat /proc/mounts | grep -i mem #
# /etc/init.d/cgconfig start Starting cgconfig service: [ OK ]
# cat /cgroup/memory/memory.use_hierarchy 0 # echo 1 > /cgroup/memory/memory.use_hierarchy # cat /cgroup/memory/memory.use_hierarchy 1
# lxc-start --name CentOS7 systemd 208 running in system mode. (+PAM +LIBWRAP +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ) Detected virtualization 'lxc'. Welcome to CentOS Server 7.1! Failed to insert module 'autofs4' Set hostname to. [ OK ] Reached target Remote File Systems. [ OK ] Created slice Root Slice.