LXC是Linux Container,即Linux虚拟容器,提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。

默认在使用了LXC容器虚拟机中运行glusterfs客户端挂载glusterfs卷的时候会有如下报错

[2014-10-23 16:24:59.143081] E [mount.c:267:gf_fuse_mount] 0-glusterfs-fuse: cannot open /dev/fuse (Operation not permitted)
[2014-10-23 16:24:59.143096] E [xlator.c:403:xlator_init] 0-fuse: Initialization of volume 'fuse' failed, review your volfile again
[2014-10-23 16:25:42.286508] I [glusterfsd.c:1959:main] 0-/usr/sbin/glusterfs: Started running /usr/sbin/glusterfs version 3.5.2 (/usr/sbin/glusterfs --volfile-server=gstorage --volfile-id=/gs_zpublish /mnt/gs_zpublish)

不过,实际检查虚拟容器中 /dev/fuse 设备的权限实际上和XEN虚拟机中是一样的,都是 666 :

crw-rw-rw- 1 root root 10, 229 Aug 11 12:58 /dev/fuse

参考 Install fuse powered filesystems within an LXC container 方法,在物理服务器上配置容器添加以下行

#fuse
lxc.cgroup.devices.allow = c 10:229 rwm

然后重启容器

其他的一些可能的容器设备配置

#ppp
lxc.cgroup.devices.allow = c 108:0 rwm
#fuse
lxc.cgroup.devices.allow = c 10:229 rwm
#loop0
lxc.cgroup.devices.allow = b 7:0 rwm
#tun
lxc.cgroup.devices.allow = c 10:200 rwm