使用 OverlayFS 合并两个 NFS 共享

使用 OverlayFS 合并两个 NFS 共享

我有两个目录(a 和 b),它们是与文件 foo.txt 和 bar.txt 的 NFS 共享:

我想将这两个目录合并到目录合并(不必是可写的)

这可以通过命令实现:

sudo mount -t overlay -olowerdir=a:b overlay merge

乍一看一切正常:

.
├── a
│   └── foo.txt
├── b
│   └── bar.txt
└── merge
    ├── bar.txt
    └── foo.txt

但我无法读取文件内容: $ cat merge/foo.txt cat: merge/foo.txt: No such device or address

这种情况仅发生在 NFS 共享上,在普通 FS 上没有问题。


根据文件https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt:

覆盖文件系统结合了两个文件系统——“上层”文件系统和“下层”文件系统。

两个只读文件系统的只读覆盖可以使用任何文件系统类型。

所以我猜NFS不是问题。

答案1

你使用什么内核?看来内核 4.2 中引入了一个错误:

https://github.com/coreos/rkt/issues/1537

相关内容