我有一个使用两个节点的简单 2 块复制。我正在尝试在启动时自动设置卷挂载的挂载点。我尝试过各种解决方案,例如这里和这里,但其中大多数都是过时的解决方案。我正在使用 systemd 和 gluster 3.8.12。
这是相关的 fstab 行:
127.0.0.1:/gv-ftp-data /data glusterfs defaults,_netdev,noexec,nosuid,nodev,acl,context=system_u:object_r:user_home_t:s0 0 2
请注意,127.0.0.1 是因为我在服务器/客户端配置中使用两个节点。
现在,我已经在节点上设置了 iptables 规则,以允许与其他节点进行 gluster 通信。以 root 身份手动安装 /data 点没有问题,并且它可以很好地解决来自其他节点的文件更改。
但是,我无法让它在启动时自动执行此操作。我尝试使用 systemd 自动挂载,但无法正常工作,并且尝试添加x-systemd.automount
到 fstab 选项但没有成功。
回顾日记,我发现了这样一句话:
May 24 10:16:12 ftp-2.novalocal mount[2019]: /usr/bin/fusermount-glusterfs: mount failed: Permission denied
我想这就是罪魁祸首,我该如何解决这个问题?请注意 /data 由具有 711 权限的 root 拥有(如果可能的话,它需要保持这种状态)
答案1
我为其他遇到同样问题的人解决了这个问题。我必须使用这些命令创建一个 SELinux 模块(感谢 setroubleshoot):
ausearch -c 'fusermount-glus' --raw | audit2allow -M my-fusermountglus
semodule -i my-fusermountglus.pp
这样做可以让我毫无问题地切换回强制模式,现在该目录已在启动时安装。