OverlayFS를 사용하여 두 NFS 공유 병합

OverlayFS를 사용하여 두 NFS 공유 병합

foo.txt 및 bar.txt 파일과 NFS 공유인 두 개의 디렉터리(a 및 b)가 있습니다.

이 두 디렉터리를 디렉터리 병합으로 병합하고 싶습니다(쓰기 가능하지 않아도 됨)

이는 다음 명령을 사용하여 달성할 수 있습니다.

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

관련 정보