NFS 在 lvm 上停止工作

NFS 在 lvm 上停止工作

我有一台 nfs 服务器,在 /exports/something 上有共享,运行正常。但是,当我将 /exports/something 挂载到 /dev/mapper/something(具有更多空间的 lvm)上时,nfs 无法正常工作。

nfs服务器是centos7。

nfs的客户端是debian8。

在 /etc/fstab 中:

 <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/centos-something  /exports/something   xfs   defaults 0 0

在 /exports/something 成为 lvm 上的挂载之前,nfs 客户端可以毫无问题地绑定到 /exports/something。如果我卸载 lvm,nfs 共享将再次开始工作,如果我在 lvm 上重新挂载 /exports/something,nfs 将重新停止工作(但 lvm 可以工作)。

如何让 nfs 客户端绑定到 nfs 服务器上的 lvm 挂载?

当它不起作用时,服务器会运行所有守护进程,但客户端只有自己这边的文件。nfs 没有日志条目。

我想切换 nfs 挂载以便它位于 lvm 上。

debian8 客户端上的 Nfs 版本:

nfs-common                        1:1.2.8-9 

centos7服务器上的nfs版本:

libnfsidmap.x86_64   0.25-11.el7                 @base      
nfs-utils.x86_64     1:1.3.0-0.8.el7             @base 

答案1

这可能是因为您在挂载文件系统时没有重新启动 NFS 服务器。NFS 服务器将获取导出目录所在的文件系统的句柄;如果您通过添加挂载点来更改它,NFS 服务器将不会注意到,并且需要进行处理。顺便说一句,这是协议所必需的,因为对于某些操作,NFS 会将 inode 编码到网络协议中。请注意,这意味着如果您尝试执行此操作时有打开文件或打开锁(或类似操作)的客户端,就会发生坏事(TM)。所以不要这样做 :-)

如果您导出的文件系统具有作为挂载点的子目录,也会出现类似的问题;例如,如果您/srv/nfs通过 NFS 导出并且文件系统挂载在 上/srv/nfs/stuff,那么除非您明确添加到/srv/nfs/stuff/etc/exports否则也不会显示此问题。原因再次是 inode 出现在协议中。您可以使用nohide导出选项解决这个问题,但该方法有一些问题。我建议您阅读手册页 ( man 5 exports) 并在nohide那里搜索,而不是尝试重现文档。

答案2

可能是 selinux 相关的问题。尝试发出setenforce 0并重新启动 nfs 服务器。然后尝试重新挂载您的共享客户端。

相关内容