问题

启动 lxc 时出现以下错误:

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
之路 on it Road.com

解决方案

考虑到出现错误:设备或者资源繁忙无法将 memory.use_hierarchy 设置为 1 的情况; 继续:

# 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.

参数 /cgroup/memory/memory.use_hierarchy 设置为 0 导致问题。
使用以下命令检查参数的当前值。

# 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

如果我们尝试将值设置为 1,它仍然会抛出相同的错误:

# echo 1 > /cgroup/memory/memory.use_hierarchy
-bash: echo: write error: Device or resource busy

为了摆脱 Error : Device or resource busy failed to set memory.use_hierarchy 为 1; 继续我们需要遵循以下步骤:

  • 停止容器
  • 停止 cgconfig 服务
  • 启动 cgconfig 服务
  • 将参数 /cgroup/memory/memory.use_hierarchy 设置为 1
  • 启动容器
# 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 <CentOS7>.
[ OK ] Reached target Remote File Systems.
[ OK ] Created slice Root Slice.
lxc_cgfs - Device or resource busy - failed to set memory.use_hierarchy
日期:2020-09-17 00:13:03 来源:oir作者:oir