OverlayFS文件系统¶
OverlayFS是一种union文件系统,允许在一个文件系统之上再部署一个文件系统,通过修改上层文件系统,可以保持底层的文件系统不被修改。例如,可以让多个用户共享一个文件系统镜像,诸如容器或一个DVD-ROM,底层镜像是一个只读介质。
简单的理解OverlayFS方法是想象以下图景:
Overlay
层是Upper
层 和Lower
层的叠加Lower
层 目录 是只读
的在
OverlayFS
中访问文件,首先从Upper
层获取文件,如果文件不存在则从Lower
层获取文件需要注意,对于Linux内核依然能够直接访问
Upper
和Lower
两个原始目录,但是对于应用程序则有访问限制修改
Upper
层的目录和常规没有不同,但是修改Lower
层则会在Upper
目录创建一个副本
Docker和OverfsFS¶
OverlayFS只作为Docker graph driver,只支持作为容器COW内容,而不能作为持久化存储(OverlayFS性能很差)。所有持久化存储必须存储到非OverlayFS卷,默认Docker配置就使用OverlayFS。此外,底层和上层使用相同文件系统,所以需要注意:
XFS作为
Backing Filesystem
时,必须激活d_type=true
,也就是格式化时候使用参数-n ftype=1
,案例请参考 XFS文件系统 实践案例Docker的OverlayFS实践见 Docker OverlayFS存储引擎