OverlayFS 失败,出现“过时的 NFS 文件句柄”错误

OverlayFS 失败,出现“过时的 NFS 文件句柄”错误

我有一个 RootFS,它是一个只读的 SquashFS,上面覆盖着可写存储(如果重要的话,是 ext4)。

这通常有效,但过了一段时间,一个文件变得无法访问:

# cat  /etc/init.d/update 
[  378.714771] overlayfs: failed to get inode (-151)
[  378.719636] overlayfs: failed to get inode (-151)
cat: can't open '/etc/init.d/update': Stale NFS file handle

似乎错误出现在目录条目中,因为即使使用普通的命令也会出现错误ls

# ls  /etc/init.d/update 
[ 1256.618431] overlayfs: failed to get inode (-151)
[ 1256.623489] overlayfs: failed to get inode (-151)
ls: /etc/init.d/update: Stale NFS file handle

此错误似乎在重启后仍然存在。

这个特定的文件已经被编辑,所以我有两个版本,一个在“较低”的 SquashFS 上,一个在“较高”的 ext4 上;两者都可以使用各自的挂载点访问:错误似乎来自 OverlayFS 本身。

我似乎无法清除这个错误(而且我很害怕,因为这个系统应该全天候投入生产),我已经fsck -fp在所有受影响的系统上运行了(当然不是在 SquashFS 上)。

欢迎任何提示。

注意:我没有(也不需要)NFS;我假设他们重复使用了这个errno(151),但我不知道。

更新:我能够通过从“上层”目录中手动删除文件的“新”副本来清除错误;随后对同一文件的编辑按预期进行。

我非常害怕,我想了解发生了什么(并确保它不会在“生产”中再次发生!)。

更新2:我在我的系统中使用了 OverlayFS 的默认设置kernel v5.7,我应该选择更多选项吗?

   <*> Overlay filesystem support
   [ ] Overlayfs: turn on redirect directory feature by default
   [*] Overlayfs: follow redirects even if redirects are turned off
   [ ] Overlayfs: turn on inodes index feature by default
   [ ] Overlayfs: turn on metadata only copy up feature by default

相关内容