首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何允许特定的Proxmox容器在网络上挂载NFS共享?

如何允许特定的Proxmox容器在网络上挂载NFS共享?
EN

Unix & Linux用户
提问于 2018-06-17 15:38:28
回答 1查看 17.2K关注 0票数 2

这个问题非常类似于如何修复“mount.nfs:访问拒绝…”“当试图挂载由Proxmox 5机器导出的NFS共享时?

在Proxmox容器上,我试图挂载位于网络上不同物理机器上的NFS共享。在/etc/fstab中,我得到了这一行:

代码语言:javascript
复制
192.168.0.4:/mnt/Pool1/homes     /home     nfs     auto,rw,hard     0 0

运行mount /home失败的输出如下:

代码语言:javascript
复制
mount.nfs: access denied by server while mounting 192.168.0.4:/mnt/Pool1/homes

mount -v /home的输出:

代码语言:javascript
复制
mount.nfs: timeout set for Sun Jun 17 15:29:02 2018
mount.nfs: trying text-based options 'hard,vers=4.2,addr=192.168.0.4,clientaddr=192.168.0.166'
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting 192.168.0.4:/mnt/Pool1/homes

每次运行mount命令时,都会向/var/log/messages添加一行,如下所示:

代码语言:javascript
复制
Jun 17 15:26:47 userserver-01 kernel: [  256.620770] audit: type=1400 audit(1529249207.168:19): apparmor="DENIED" operation="mount" info="failed type match" error=-13 profile="lxc-container-default-cgns" name="/home/" pid=2938 comm="mount.nfs" fstype="nfs" srcname="192.168.0.4:/mnt/Pool1/homes"

显然,Proxmox使用AppArmor,而AppArmor拒绝NFS挂载操作(apparmor="DENIED")。看起来AppArmor正在使用profile lxc-container-default-cgns (日志文件显示profile="lxc-container-default-cgns")。我在/etc/apparmor.d/lxc/lxc-default-cgns中找到了那个侧写。

我想我可以编辑/etc/apparmor.d/lxc/lxc-default-cgns,执行允许NFS所需的更改。但是,这将允许对所有容器进行NFS。是否可以允许特定容器的NFS only

EN

回答 1

Unix & Linux用户

发布于 2018-06-17 15:38:28

是的,有可能。只需创建一个新的配置文件(基于lxc-container-default-cgns),并将其用于特定的容器。所以第一步

代码语言:javascript
复制
cp -i /etc/apparmor.d/lxc/lxc-default-cgns /etc/apparmor.d/lxc/lxc-default-with-nfs

然后编辑新文件/etc/apparmor.d/lxc/lxc-default-with-nfs

  • profile lxc-container-default-cgns替换profile lxc-container-default-with-nfs
  • 将NFS配置(见下面)放在结束括号(})之前。

NFS配置

要么写

代码语言:javascript
复制
  mount fstype=nfs*,
  mount fstype=rpc_pipefs,

或者(更明确)

代码语言:javascript
复制
  mount fstype=nfs,
  mount fstype=nfs4,
  mount fstype=nfsd,
  mount fstype=rpc_pipefs,

最后运行systemctl reload apparmor

使用新的配置文件

编辑/etc/pve/lxc/${container_id}.conf并追加这一行:

代码语言:javascript
复制
lxc.apparmor.profile: lxc-container-default-with-nfs

然后停止容器并重新启动它,例如:

代码语言:javascript
复制
pct stop ${container_id} && pct start ${container_id}

现在,越来越多的NFS股票应该能发挥作用。

票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/450308

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档