Cheguei à conclusão de que aufs é limitado a 127 camadas com base em testes.
(preparar)
mkdir write joined {1..400}
for((i=1;i<=400;i++));do echo >$i/$i.txt;done #for checks
usando uma única montagem, o limite é de 84 camadas (numeradas + a de gravação).
O nome da pasta não altera o limite de 84 (assim, cada um pode ser maior, ex. "camada-72", portanto, não é uma limitação de tamanho de string).
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 $?
Os itens acima falharão, a menos que você remova ": 84" do final.
Usando o remount, ele pode ir até 127 camadas (numeradas + as que escrevem)
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
pesquisa
Estou tentando usar mount.aufs
apenas para ver mensagens de erro legíveis, pois mount -v
não está ajudando.
Há documentação especificando como traduzir os parâmetros mount
para mount.aufs
?
Ainda estou tentando encontrar o código-fonte mount.aufs
; que poderia ajudar a entender quais parâmetros ele aceita.
Resposta aceitável alternativa
É aufs patchable (como aparentemente 127 é um limite codificado)? Vale a pena o esforço / confusão, ou mais de 127 podem causar problemas de desempenho como sugerido nos comentários?
Uma fusão de pastas alternativa pode fornecer mais de 127 camadas? Se sim, qual? Aqui uma lista que encontrei: overlayfs unionfs mhddfs mergerfs docker. Quais comandos devo usar com base no caso de teste que forneci acima? aufs é bastante claro e simples de usar e entender, e essa foi a principal razão pela qual eu escolhi.