首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NFSv4和CentOS

NFSv4和CentOS
EN

Server Fault用户
提问于 2023-03-30 15:12:51
回答 1查看 48关注 0票数 0

我有一个存储服务器,运行Rocky 8和多个客户端,使用Rocky 8、CentOS 7和Debian 10/11,它们通过NFS与不同文件系统的不同导出连接。其中一个文件系统是ZFS,另一个不是。这在NFSv3中很好,因为我可以将要导出的各种目录放在/etc/exports中,下面是/etc/exports。

代码语言:javascript
复制
/hpc/projects 10.0.20.100/32(rw,crossmnt,async,no_root_squash,no_subtree_check) 10.33.4.0/22(rw,crossmnt,nohide,async,no_root_squash,no_subtree_check) 10.34.4.0/22(rw,crossmnt,nohide,async,no_root_squash,no_subtree_check) 
/hpc/projects/subdir1 10.0.20.101/32(rw,crossmnt,async,no_root_squash,no_subtree_check)
/hpc/projects/subdir2 10.0.20.102/32(rw,crossmnt,async,no_root_squash,no_subtree_check)
/hpc/projects/subdir3 10.0.20.103/32(rw,crossmnt,async,no_root_squash,no_subtree_check)

/scratch 10.33.4.0/22(rw,async,no_root_squash,no_subtree_check) 10.34.4.0/22(rw,async,no_root_squash,no_subtree_check)

但是,使用NFSv4,CentOS 7客户端无法连接。到目前为止,我已经尝试将ZFS挂载点/hpc和一个单独的目录/export设置为根文件系统。当试图将它们从CentOS客户端( IP 10.34.4.50 )挂载为NFSv4但作为NFSv3工作时,两者都会失败。下面是/etc/exports挂载为NFS根目录的NFSv4的样子。

代码语言:javascript
复制
/hpc *(fsid=0,ro,insecure)
/hpc/projects 10.0.20.100/32(rw,crossmnt,async,no_root_squash,no_subtree_check,insecure) 10.33.4.0/22(rw,crossmnt,nohide,async,no_root_squash,no_subtree_check,insecure) 10.34.4.0/22(rw,crossmnt,nohide,async,no_root_squash,no_subtree_check,insecure) 
/hpc/projects/subdir1 10.0.20.101/32(rw,crossmnt,async,no_root_squash,no_subtree_check,insecure)
/hpc/projects/subdir2 10.0.20.102/32(rw,crossmnt,async,no_root_squash,no_subtree_check,insecure)
/hpc/projects/subdir3 10.0.20.103/32(rw,crossmnt,async,no_root_squash,no_subtree_check,insecure)

/scratch 10.33.4.0/22(rw,async,no_root_squash,no_subtree_check) 10.34.4.0/22(rw,async,no_root_squash,no_subtree_check)

当通过NFSv4,mount -vvv -t nfs4 10.34.4.100:/ mnt安装时,我得到了mount.nfs4: access denied by server while mounting 10.34.4.100:/。然而,当我尝试mount -vvv -t nfs4 10.34.4.100:/hpc mnt时,挂载就完成了,只是没有使用NFSv4。运行mount显示如下:10.34.4.100:/hpc on /mnt type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.34.4.100,mountvers=3,mountport=20048,mountproto=udp,local_lock=none,addr=10.34.4.108) --我看到vers=3和mountvers=3让我相信这是在使用NFSv3,而不是像我告诉它的那样使用NFSv4。我确实检查了servers /var/log/messages,并在尝试使用NFSv4挂载时找到了这些行(列出的IP是其中一个客户机IP)。

代码语言:javascript
复制
Mar 30 10:56:12 servername rpc.mountd[14813]: refused mount request from 10.34.4.1 for / (/): not exported
Mar 30 10:56:15 servername rpc.mountd[14813]: refused mount request from 10.34.4.1 for /hpc (/): not exported

注意,/scratch导出与/etc/exports中的NFSv4指令安装得很好。另外,所有其他客户端,Rocky 8和Debian,都是通过NFSv4安装的。

我希望有人能告诉我发生了什么事。我将指出,SELinux在服务器和CentOS客户端上是禁用的,并且没有防火墙在服务器上运行。

EN

回答 1

Server Fault用户

发布于 2023-04-01 14:24:55

不要为fsid=0指定/hpc。这样做可以将目录转换为NFSv4的“导出根目录”,这意味着您的/hpc/projects目录被导出为server:/projects,而不是保留其原始路径。

虽然NFSv4允许您创建虚拟导出根,但实际上并不需要这样做--如果您不定义虚拟fsid=0根,Linux内核NFS服务器将在/自动生成一个虚拟的NFS根。因此,只要不包括任何fsid=0条目,共享就可以使用完全相同的路径通过NFSv3和NFSv4挂载。

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

https://serverfault.com/questions/1127537

复制
相关文章

相似问题

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