Sobreposição do sistema de arquivos Linux - para que é utilizado o workdir? (OverlayFS)


35

O OverlayFS tem uma workdiropção, ao lado de dois outros diretórios lowerdire upperdir, que precisa ser um diretório vazio.

Infelizmente, a documentação do kernel do overlayfs não fala muito sobre o objetivo desta opção.

O "workdir" precisa ser um diretório vazio no mesmo sistema de arquivos que o upperdir.

Para sobreposições somente leitura, workdirpode ser omitido entre os upperdir. Isso me deu a pista de que isso tem a ver com a gravação dos arquivos mesclados.

Por favor, explique o que está acontecendo workdirquando os arquivos são gravados ou alterados no diretório mesclado. Por que o gravável upperdirnão é suficiente?

Respostas:


27

A opção workdir é necessária e usada para preparar arquivos antes de serem alternados para o destino de sobreposição em uma ação atômica (a workdir precisa estar no mesmo sistema de arquivos que o upperdir).

Fonte: http://windsock.io/the-overlay-filesystem/

Eu arriscaria um palpite de que "o destino da sobreposição" significa upperdir.

Então ... certos arquivos (talvez arquivos "whiteout"?) São criados e configurados de maneira não atômica workdire depois movidos para dentro de forma atômica upperdir.


-3

Porque quando você exclui um arquivo que está no lowerdir, essas informações serão armazenadas no workdir.


1
Hum, mas quando eu excluo arquivos no diretório mesclado, a workdir permanece vazia, mas há arquivos mostrados no upperdir com um csinalizador ( c--------- 1 root root 0, 0 Nov 19 18:22 ivebeendeleted) quando eles foram "excluídos por sobreposição" no diretório inferior. (O mesmo arquivo permanece no diretório inferior, é claro.)
try-catch-finalmente

Acho que quando você exclui um arquivo, um arquivo "whiteout" é criado e isso é armazenado no upperdir, não no workdir. O arquivo de blecaute é um dispositivo de caractere (com sinalizador "c")
ejm 23/09/17
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.