(erro do usuário) OverlayFS - arquivos excluídos no diretório mesclado atual (ponto de montagem) reaparecem quando o diretório mesclado é remontado como menor

0

No Debian Stretch (rodando como root), este é o comportamento atual:

# 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

Isso é um bug? Ou isso é um comportamento limitado / esperado?

Se esperar, alguma sugestão sobre uma solução rápida e fácil?

FWIW funciona como desejado sob o auFS, então uma solução é instalar o aufs-dkms e continuar a usar o auFS ... Eu posso fazer isso independentemente, mas eu realmente gostaria de saber se isso é um bug ou um comportamento esperado.

[update] Eu estava fazendo errado, por favor, veja a resposta (agora corrigida)!

    
por Jeremy Davis 20.04.2018 / 07:48

1 resposta

1

Eu decidi que isso é um bug. Como tal, eu fiz um relatório de bug com o Debian:

link

Oops! Acontece que eu estava fazendo errado! Como observado em resposta ao bug do Debian:

overlayfs is behaving as documented. The documentation (filesystems/overlayfs.txt) says: "The specified lower directories will be stacked beginning from the rightmost one and going left. In the above example lower1 will be the top, lower2 the middle and lower3 the bottom layer."

In your example this means that "layer1.upper" is the lowest layer, and its whiteout is overridden by the file in "base" which is on top of it. I think you just need to swap the order of these directories in the mount options.

Eu li esse documento, mas perdi o bit "da direita para a esquerda"!

Posso confirmar que, quando feita corretamente (ou seja, trocou a ordem de modo que fique da direita para a esquerda), ela funciona como esperado.

    
por 23.04.2018 / 05:20