overlayfs文件系统
OverlayFS是一种堆叠文件系统,它依赖并建立在其它的文件系统之上(例如ext4fs和xfs等等),并不直接参与磁盘空间结构的划分,仅仅将原来底层文件系统中不同的目录进行“合并”,然后向用户呈现,这也就是联合挂载技术,对比于AUFS,OverlayFS速度更快,实现更简单。现在已经被广泛使用,比如手机都有恢复出厂的功能,点击后所有的设置和数据都会恢复原样;docker的文件和宿主机的隔离等。
基本语法:
mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
-
workdir必须和upperdir是mount在同一个文件系统下
-
lower目录可以是一个目录链,即多个目录,比如lowerdir=lower1:lower2:lower3
-
如果没有upperdir,那么merged就只能是可读的。
overlayfs通过三个目录:lower目录、upper目录、以及work目录实现,其中lower目录可以是多个,work目录为工作目录(即操作过程目录),最后联合挂载完成给用户呈现的统一视图称为为merged目录。以下使用mount将演示其如何工作的。
新建文件夹,并且放入一个测试文件
├── lower1
│ └── test1
├── lower2
│ └── test2
├── upper
└── teset4
新建work和overlay-test文件夹,执行挂载
sudo mount -t overlay overlay -o lowerdir=lower1:lower2,upperdir=upper,workdir=work overlay-test
再查看文件树,overlay-test内为合并的文件
├── lower1
│ └── test1
├── lower2
│ └── test2
├── overlay-test
│ ├── teset4
│ ├── test1
│ └── test2
├── upper
│ └── teset4
└── work
└── work [error opening dir]
可以输入mount查看挂载情况
overlay on /home/lichong/Study/overlayfs/overlay-test type overlay (rw,relatime,lowerdir=lower1:lower2,upperdir=upper,workdir=work,xino=off)
upper文件系统通常是可写的;lower文件系统则是只读,这就表示着,当我们对 overlay 文件系统做任何的变更,都只会修改 upper 文件系统中的文件
源码解析:https://blog.csdn.net/ugnbucbjj/article/details/125702407