Mon 08 December 2014 | -- (permalink)
These are some notes to help myself remember the basic usage and mechanics of overlayfs, as well as explain them to others.
These steps are performed in an Ubuntu 14.04 (Trusty) Vagrant box, which comes with OverlayFS support out of the box.
First make 3 folders:
# mkdir base_folder # mkdir overlay_folder # mkdir work_folder
Put some dummy files in the base and overlay folders. We'll watch how their contents change after later steps.
# echo "I am in the base" > base_folder/base_file # echo "I am in the overlay" > overlay_folder/overlay_file
Now mount the overlayfs
# mount -t overlayfs -o lowerdir=/home/vagrant/base_folder,upperdir=/home/vagrant/overlay_folder overlayfs /home/vagrant/work_folder
Now in the work folder we should see files from both the base and the overlay:
# ls work_folder/ base_file overlay_file
Now let's try making a new file in the work folder mount point.
# echo "i am in the work folder" > work_folder/work_file
You should see the new file in the work folder, as well as in the overlay folder.
# ls work_folder/ base_file overlay_file work_file # ls overlay_folder/ overlay_file work_file
You will not see the new file in the base.
# ls base_folder/ base_file
Now let's try modifying a file that is in the base, from the work folder mountpoint.
# echo "this is new content in the base file" > work_folder/base_file
You'll see your changes in the work folder and the overlay folder, but not in the base.
# cat work_folder/base_file this is new content in the base file # cat overlay_folder/base_file this is new content in the base file # cat base_folder/base_file I am in the base
Now try modifying a file from the overlay, while in the work folder.
# echo "this is new content in the overlay file" > work_folder/overlay_file
You'll see that your changes exist in the work folder and in the overlay, but the file still doesn't exist in the base.
# cat work_folder/overlay_file this is new content in the overlay file # cat overlay_folder/overlay_file this is new content in the overlay file # ls base_folder/ base_file
OverlayFS is used by the Velociraptor project that we've built at YouGov, which provides a Heroku-compatible platform for deploying applications on Linux.
OverlayFS is expected to be part of Linux kernel 3.18, though you can get it now in Ubuntu.