테스트를 바탕으로 한 결론은 auf가 레이어 127로 제한된다는 것입니다.
(준비하다)
mkdir write joined {1..400}
for((i=1;i<=400;i++));do echo >$i/$i.txt;done #for checks
단일 설치 시 레이어는 84개로 제한됩니다(번호 + 쓰기 레이어).
폴더 이름은 84 제한을 변경하지 않습니다(따라서 각 폴더 이름은 "layer-72"와 같이 더 커질 수 있으므로 문자열 크기 제한이 아닙니다).
sudo mount -v -t aufs \
-o "sync,br=write:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:22:23:24:25:26:27:28:29:30:31:32:33:34:35:36:37:38:39:40:41:42:43:44:45:46:47:48:49:50:51:52:53:54:55:56:57:58:59:60:61:62:63:64:65:66:67:68:69:70:71:72:73:74:75:76:77:78:79:80:81:82:83:84" \
"none" "joined";echo $?
끝에서 ":84"를 제거하지 않으면 위의 작업은 실패합니다.
remount를 사용하면 최대 127개 레이어(번호 매기기 + 쓰기 레이어)까지 도달할 수 있습니다.
sudo mount -v -t aufs -o "sync,br=write" "none" "joined";echo $?
for((i=1;i<=400;i++));do
echo "try $i";
if ! "sudo" "mount" -v "-o" "remount,append:$i" "joined";then
break; # it stops with error "No space left on device", but is not related to free bytes on storage!
fi;
ls -l joined/$i.txt;
done
연구
mount.aufs
읽을 수 있는 오류 메시지를 보기 위해 이것을 사용해 보았 으나 mount -v
도움이 되지 않았습니다.
mount
매개변수를 로 변환하는 방법을 지정하는 문서가 있습니까 mount.aufs
?
mount.aufs
아직 소스 코드를 찾으려고 노력 중입니다 . 이는 어떤 매개변수를 허용하는지 이해하는 데 도움이 될 수 있습니다.
허용되는 대체 답변
auf를 패치할 수 있습니까(127은 분명히 하드코딩된 제한이므로)? 노력/혼란을 겪을 만한 가치가 있습니까? 아니면 127을 초과하면 설명에 언급된 대로 성능 문제가 발생할 수 있습니까?
다른 폴더 병합으로 127개 이상의 레이어를 제공할 수 있나요? 그렇다면 어느 것입니까? 내가 찾은 목록은 다음과 같습니다: overlayfs Unionfs mhddfs mergefs docker. 위에 제공된 테스트 사례를 기반으로 어떤 명령을 사용해야 합니까? aufs는 매우 명확하고 사용하기 쉽고 이해하기 쉽습니다. 이것이 제가 그것을 선택한 주된 이유입니다.
PS: 제가 지금 사용하고 있는 것은 다음과 같습니다.aufs와 마찬가지로 mergefs가 작동하도록 하려면 어떻게 해야 합니까? 새로운 내용이나 수정된 내용(경로, 모든 것을 포함하여...)을 쓰기 가능한 단일 폴더에 쓰기만 하면 되나요?