简洁版本:尽管我试图将挂载的数据集设为 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 -a
zfs share [dataset]
service nfs-kernel-server restart
showmount -e
exportfs -v
...叹息...不断学习。
答案2
sharenfs
如果zfs
数据集没有mountpoint
设置