(사용자 버그) OverlayFS - 현재 병합 디렉터리(마운트 지점)에서 삭제된 파일이 병합 디렉터리를 하위 버전으로 다시 마운트하면 다시 나타납니다.

(사용자 버그) OverlayFS - 현재 병합 디렉터리(마운트 지점)에서 삭제된 파일이 병합 디렉터리를 하위 버전으로 다시 마운트하면 다시 나타납니다.

Debian Stretch(루트로 실행)에서 현재 동작은 다음과 같습니다:

# Create base directory
mkdir base
touch base/example

# Create merge, upper and work directories for 2 layers
mkdir layer1 layer1.upper layer1.work
mkdir layer2 layer2.upper layer2.work

# Mount layer1 as the merged directory using layer1.upper as the true upper layer,
# with base as a lower layer and layer1.work as the necessary work directory
mount -t overlay overlay -o lowerdir=$(pwd)/base,upperdir=$(pwd)/layer1.upper,workdir=$(pwd)/layer1.work layer1
ls layer1 # should show example as expected
ls layer1.upper # shows no file (this is expected behaviour, it should only show files written on layer1)
rm layer1/example
ls layer1 # should show no files
ls layer1.upper # should show a special character device called "example", this is the "whiteout" file

# unmount, and remount with layer2 being the new upper layer and using layer1.upper directory as the top level lower layer.
umount layer1
mount -t overlay overlay -o lowerdir=$(pwd)/base:$(pwd)/layer1.upper,upperdir=$(pwd)/layer2.upper,workdir=$(pwd)/layer2.work layer2
ls layer2 # now shows example again as if it was never deleted

이것은 버그입니까? 아니면 이것이 제한사항/예상되는 동작입니까?

예상한 경우 빠르고 쉬운 수정을 위한 제안 사항이 있습니까?

FWIW auFS에서 예상대로 작동하므로 해결 방법은 aufs-dkms를 설치하고 auFS를 계속 사용하는 것입니다... 어쨌든 그렇게 할 수는 있지만 이것이 버그인지 예상된 동작인지 알고 싶습니다.


[고쳐 쓰다]제가 잘못했습니다. (현재 수정된) 답변을 확인하세요!

답변1

나는 이것이 실수라고 판단했다. 따라서 나는 데비안에 버그 보고서를 제출했습니다:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=896646

이런! 내가 뭔가 잘못한 것이 밝혀졌습니다! 데비안 버그에 대한 응답으로 언급된 바와 같이:

Overlayfs는 문서화된 대로 작동합니다. 문서(filesystems/overlayfs.txt)에는 다음과 같이 나와 있습니다. "지정된 하위 디렉토리는 가장 오른쪽 디렉토리부터 시작하여 왼쪽으로 쌓입니다. 위의 예에서 lower1은 최상위 레이어이고 lower2는 중간 레이어, lower3은 맨 아래층."

귀하의 예에서 이는 "layer1.upper"가 가장 낮은 레이어이고 흰색 색상이 그 위에 있는 "base"의 파일로 덮여 있음을 의미합니다. 제 생각에는 설치 옵션에서 이 디렉터리의 순서를 바꾸면 될 것 같습니다.

문서를 읽었지만 "오른쪽에서 왼쪽으로" 부분을 놓쳤습니다!

올바르게 완료되면(예: 오른쪽에서 왼쪽으로 순서를 바꾸면) 예상대로 작동하는지 확인할 수 있습니다.

관련 정보