最近,我们使用的 NAS 在 nfs 挂载上从 32 位 inode 切换到了 64 位。不幸的是,我们的旧代码无法很好地处理这种情况。经过一番慌乱的谷歌搜索后,我偶然发现了这篇文章,它非常有用:
https://www.mjr19.org.uk/sw/inodes64.html
按照本指南操作,添加设置"options nfs enable_ino64=0" >> /etc/modprobe.conf
并强制选项(否定重新启动)echo -n N > /sys/module/nfs/parameters/enable_ino64
在 31 个系统中的 28 个上运行良好。
但是其中三个最老的,不是提供 32 位 inode,而是显示双倍,我认为它们显示的是无符号的 64 位值而不是有符号的,当然也不是 32 位。
没有变化
Box1:~> $ ls -lid /hold
9269037378989466310 drwxrws--- 10 user group 12288 2021-02-24 08:32 /hold
已成功应用设置
Box2:~> $ ls -lid /hold
2162040485 drwxrws--- 10 user group 12288 Feb 24 08:32 /hold
设置已应用,故障
Box3$ ls -lid /hold
18446744071576624805 drwxrws--- 10 user group 12288 24. Feb 09:32 /hold
这是 fstab 中的挂载
server:/location/on/server/hold /hold nfs soft,bg 0 0
所有有问题的机器都运行 Suse Enterprise 11,Service Pack 1。而其余的机器要么运行 Service Pack 2,要么运行 Service Pack 4。有一个长期计划,将它们全部升级到 Service Pack 4,还有一个非常长期的计划,即移除问题软件,以便我们能够跳转到现代操作系统。但这些计划还需要很长时间。
有没有人能认出这个错误,尽管它已经存在很久了(来自维基百科:SP1,2010-06-02。SP2,2012-02-15),有没有人知道/记得不需要完全升级的修复方法?请注意,我确实有 SP0、1 和 2 安装盘。
提前致谢。