nfs – 我必须“捏造” etcexports中的更改才能让mount -a执行,问题是什么?

nfs – 我必须“捏造” etcexports中的更改才能让mount -a执行,问题是什么?,第1张

概述每当我必须重新启动server1时,我可以在server2上重新安装NFS的唯一方法是在server1上的/ etc / exports文件中更改其中一个“fsid”整数.否则,mount -a命令只挂起在server2上. 典型场景: Server1重新启动.在server1上,我在/ etc / exports中有两行代码: /mnt/ramdisk/dir1 *(fsid=0,rw,no_r 每当我必须重新启动server1时,我可以在server2上重新安装NFS的唯一方法是在server1上的/ etc / exports文件中更改其中一个“fsID”整数.否则,mount -a命令只挂起在server2上.

典型场景:

Server1重新启动.在server1上,我在/ etc / exports中有两行代码:

/mnt/ramdisk/dir1 *(fsID=0,rw,no_root_squash,no_subtree_check,async)/mnt/ramdisk/dir2 *(fsID=1,async)

我发出这个命令:

"exportfs -r".

在server2上,我在/ etc / fstab中有这个:

xxx.xxx.x.x:/server1_dir1/ /dir1_server2 nfs async,noatime 0 0xxx.xxx.x.x:/server2_dir2  /dir2_server2 nfs async,noatime 0 0

我首先“卸载”现在有过旧NFS处理的旧目录.然后,

"mount -a"

命令挂起.我杀了之后,df显示dir1已安装,但dir2没有.

让两个dirs挂载的唯一方法是将fsID整数更改为其他值.例如,在server1上,我们现在有:

/mnt/ramdisk/dir1 *(fsID=0,async)/mnt/ramdisk/dir2 *(fsID=2,async)

我将fsID = 1更改为= 2.我再次发出exportfs -r命令,瞧,mount -a命令在server2上运行.

也许我不明白fsID到底做了什么,但显然必须有一个更好的方法来“重新安装”NFS,而不是每次都要随机编辑fsID号码?

编辑:如果我没有在server1上的导出文件中包含fsID,它给了我

"Warning: /mnt/ramdisk/dir1 requires fsID= for NFS export"

并且,如果我为两行(dir1和dir2)设置fsID = 0,那么挂载点最终与我的所有文件被复制到dir1位置相同!因此,似乎唯一可行的方法是不断地随机切换fsID整数.

EDIT2:我删除了fsID = 0,因为它是“特殊的”,并在server1上的/ etc / exports中将它们更改为fsID = 1和fsID = 2.这当然有效(因为文件已经更改).但是今天只需要强行重启,并且(缓慢地)从server2卸载过时的驱动器后,mount -a就像以前一样失败了.所以,(像以前一样),我编辑了server1上的exports文件,这次,fsID = 2和fsID = 3,exportfs -r,然后,mount -a再次在server2上运行.回到原点1.

EDIT3关键信息:如果我以受控方式取下所有东西(即… server1没有“崩溃”),并首先在server2上卸载dirs,然后重新启动server1,那么在server2上安装-a,它运行良好.只有当server2上的挂载突然切断时才会发生此问题.所以我猜测需要在server2上重置一些东西?我知道在server1崩溃后卸载server2上的陈旧句柄需要很长时间.

解决方法 我的猜测是问题是由你的一个导出中使用fsID = 0引起的.

请记住,当底层文件系统驱动程序未提供其自己的唯一ID时,fsID旨在唯一标识设备.特别是,fsID = 0有一个special meaning:

For NFSv4,there is a distinguished filesystem which is the root of all exported filesystem. This is specifIEd with fsID=root or fsID=0 both of which mean exactly the same thing.

因为这显然不是你想要的,所以总是使用0以外的fsID.

总结

以上是内存溢出为你收集整理的nfs – 我必须“捏造”/ etc / exports中的更改才能让mount -a执行,问题是什么?全部内容,希望文章能够帮你解决nfs – 我必须“捏造”/ etc / exports中的更改才能让mount -a执行,问题是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1039477.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存