Linux 上的 ZFS - Debian - sharenfs 数据集 - 无法写入,只能读取

Linux 上的 ZFS - Debian - sharenfs 数据集 - 无法写入,只能读取

简洁版本:尽管我试图将挂载的数据集设为 RW,但它们仍然是 RO。

长版本:我们目前在 Wheezy 上的 Linux 上有一个有效的 ZFS 实现(前任 SE 离职后我继承了它),我们想升级到 Jessie...因为...只是因为。在升级生产环境之前,我试图在本地机器上运行的虚拟机中复制该环境(尽可能多)。

我已经创建了池,并通过以下方式创建了新的数据集:

root@zfstest1:~# zfs set [email protected],insecure tank/vmware
root@zfstest1:~# zfs share -a
root@zfstest1:~# showmount -e

Export list for zfstest1:
/tank/vmware 10.1.2.3

我已经将权限和属性以及我能想到的所有内容与生产进行了比较,但无论我将数据集安装在 Mac 上还是 VMware 主机上,卷/数据存储最终都是 RO。/tank 和子对象的默认权限似乎是 755,而我发现使 Mac 或 VMware 主机上安装的卷成为 RW 的唯一方法是将它们设置为 777。

我知道有些不同,比如 zfs-debian、spl-dkms 等软件包。我只是找不到获取旧版本的存储库(0.6.3-1~wheezy vs 0.6.5.2-2-wheezy)

我将非常感激能够帮助我寻找什么方法来实现这一点。

答案1

所以我发现跑步

root@zfstest1:~# exportfs -v

在测试虚拟机上得到的结果与在生产服务器上得到的结果不同。我忽略的是/etc/exports两者都是默认的,并且结果

root@zfstest1:~# zfs get sharenfs

是一样的,但/var/lib/nfs/etab生产文件中显然有从某处填充的条目...我只是不知道从哪里填充,或者如何填充。

最终,区别在于 etab 文件具有禁止root权限在里面。

所以我想这个实际问题可以算是解决了,但现在我必须弄清楚另一个问题/var/lib/nfs/etab从哪里获取这些信息,以及为什么我们的生产服务器以这种方式填充它。

更新:因此,该命令从或命令exportfs -v中获取信息。执行擦除操作,或者至少在重新启动该服务后运行或,不会显示任何内容。运行 share 命令后,etab 将重新填充 sharenfs 条目。zfs share -azfs share [dataset]service nfs-kernel-server restartshowmount -eexportfs -v

...叹息...不断学习。

答案2

sharenfs如果zfs数据集没有mountpoint设置

相关内容