Superposition du système de fichiers Linux - à quoi sert workdir? (OverlayFS)

35

OverlayFS a une workdiroption, à côté de deux autres répertoires lowerdiret upperdir, qui doit être un répertoire vide.

Malheureusement, la documentation du noyau d'overlayfs ne parle pas beaucoup du but de cette option.

Le "workdir" doit être un répertoire vide sur le même système de fichiers que upperdir.

Pour les superpositions en lecture seule, le workdirpeut être ommittet parmi les upperdir. Cela me donne l'indice qu'il a à voir avec l'écriture des fichiers fusionnés.

Veuillez expliquer ce qui se passe dans le workdirmoment où les fichiers sont écrits ou modifiés dans le répertoire fusionné. Pourquoi l'écriture upperdirn'est pas suffisante?

essayer-attraper-enfin
la source

Réponses:

27

L'option workdir est requise et utilisée pour préparer les fichiers avant qu'ils ne soient basculés vers la destination de superposition dans une action atomique (le workdir doit être sur le même système de fichiers que le répertoire supérieur).

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

Je risquerais de deviner que "la destination de superposition" signifie upperdir.

Donc ... certains fichiers (peut-être des fichiers "blancs"?) Sont créés et configurés de manière non atomique workdir, puis déplacés atomiquement vers upperdir.

mpb
la source
-3

Parce que lorsque vous supprimez un fichier qui se trouve sur lowerdir, ces informations seront stockées dans le workdir.

Ipor Sircer
la source
1
Hm, mais lorsque je supprime des fichiers dans le répertoire fusionné, le répertoire de travail reste vide mais il y a des fichiers affichés dans le répertoire supérieur avec un cindicateur ( c--------- 1 root root 0, 0 Nov 19 18:22 ivebeendeleted) lorsqu'ils ont été "supprimés par superposition" du répertoire inférieur. (Le même fichier reste bien sûr dans le répertoire inférieur.)
try-catch-finally
Je pense que lorsque vous supprimez un fichier, un fichier "whiteout" est créé et il est stocké dans le répertoire supérieur, pas dans le répertoire de travail. Le fichier de voile blanc est un périphérique de caractères (avec le drapeau "c")
ejm