6.3.3.2. Overlayfs

6.3.3.2.1. 简介

OverlayFS是一种堆叠文件系统,它依赖并建立在其它的文件系统之上,并不直接参与磁盘空间结构的划分,仅仅将原来底层文件系统中不同的目录进行“合并”,然后向用户呈现。

它于2014年被合并到Linux内核的3.18版本。其4.0版本带来了必要的改进,例如Docker中所需的overlay2存储驱动程序。

6.3.3.2.2. 机制

OverlayFS的主要机制涉及当两个文件系统提供同一名称的目录时目录访问的合并,分为upper层(读写层)和lower(只读层)。OverlayFS下的文件并不是upper层或者lower层文件的拷贝,而是记录了文件的层次信息。

在OverlayFS中,会为每个文件分配一个ovl_entry变量,通过文件dentry的d_fsdata字段指向这个分配的ovl_entry变量。