OverlayFS
Overlayfs (Overlay Filesystem) est est une tentative dans le noyau de fournir des capacités de système de fichiers unifié OverlayFS diffère des autres implémentations de systèmes de fichiers d'union en ce sens qu'après l'ouverture d'un fichier, toutes les opérations passent directement aux systèmes de fichiers sous-jacents, inférieurs ou supérieurs. Cela simplifie la mise en œuvre et permet des performances natives dans ces cas.[1]
L'option pour activer OverlayFS existe dans les kernel Linux depuis la version 3.18.[2]
Installation
Kernel
File systems --->
[*] Overlay filesystem support
Utilisation
Une fois activé dans le kernel, OverlayFS peut être contrôlé en utilisant la commande mount.
root #
mount -t overlay overlay -o lowerdir=lowerdir,upperdir=upperdir,workdir=workdir mountpoint
Example
To mount an overlay filesystem using the following example of a structure on an ext4 base filesystem.
Create the following folder structure:
user $
tree test_folder
test_folder ├── low ├── my_overlay └── up
On the folder low, create a file with a clear and recognizable name. Repeat the step on the folder up to get a structure similar to the following:
user $
tree test_folder
test_folder ├── low │ └── low_file ├── my_overlay └── up └── up_file
Having that tree, the following command will create an overlay structure with the up folder above the low folder and that structure will be on the my_overlay folder.
root #
mount -t overlay overlay -o lowerdir=/test_folder/low,upperdir=/test_folder/up,workdir=/test_folder/my_overlay /test_folder/my_overlay/
After inspecting the tree structure of the test_folder, this will be printed:
user $
tree test_folder
test_folder ├── low │ └── low_file ├── my_overlay │ ├── low_file │ └── up_file └── up └── up_file
A file can be created using the normal filesystem structure, like the following
root #
touch my_overlay/my_overlay_file
and will generate the following tree
user $
tree test_folder
test_folder ├── low │ └── low_file ├── my_overlay │ ├── low_file │ ├── my_overlay_file │ └── up_file └── up ├── my_overlay_file └── up_file
The overlay working dir can be unmounted with the umount command
root #
umount /test_folder/my_overlay/
After unmounting the overlay folder, a new subfolder will appear on the directory where the operation was conducted
user $
tree test_folder
| test_folder ├── low │ └── low_file ├── my_overlay │ └── work └── up ├── my_overlay_file └── up_file
That folder will have the following properties
d--------- 2 root root 4,0K sep 6 09:54 work
Plusieurs entrées lowerdir, séparées par des :, peuvent être utilisées. Lorsque c'est le cas, les entrées upperdir et workdir peuvent être omises pour créer un montage en lecture seule.
Lorsque inclus, upperdir et workdir doivent exister dans le même système de fichier.
Voir aussi
- Aufs — an advanced multi-layered unification filesystem.
- SquashFS — an open source, read only, extremely compressible filesystem.
- Wikipedia:UnionFS — Le système de fichier union original.
Ressources externes
- http://lwn.net/Articles/447650/ - Un article LWN écrit par Jonathan Corbet en Juin 2011 qui couvre les vices et vertus de OverlayFS
- Un thread informatif sur AskUbuntu.com.
- Overlay fs dans le code source linux.