Linux 文件系统(三) --- overlayfs简介

PS:要转载请注明出处,本人版权所有。

PS: 这个只是基于《我自己》的理解,

如果和你的原则及想法相冲突,请谅解,勿喷。

环境说明

  无

前言


  对于overlay文件系统来说,我以前只是听过,具体貌似docker里面使用了相关技术,但是也仅仅限于听过了。

  最近,由于需要通过tar来备份一个系统的rootfs来做测试,我发现了很多重复备份的内容,一看,嘿,可能是overlay文件系统导致的,因此,我可能需要先了解了解这个文件系统是干嘛的,然后才能够采取合适的方案来备份rootfs。





实现大致原理


  overlayfs主要是结合了两个文件系统 -- "upper fs" 和 "lower fs" 。其组成规则是:

  • 当"upper fs"和 "lower fs"存在两个相同的名字的文件时,"upper fs"的文件是可见的,"lower fs"的文件是隐藏的。
  • 当"upper fs"和 "lower fs"存在两个相同的名字的目录时,会合并两个目录的文件。

  overlayfs主要是涉及目录的操作,其挂载命令是:

# 堆叠两个目录,合并lower目录,upperdir目录,展示到merge目录
# workdir和upperdir必须是同一个文件系统的空目录
mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,workdir=/work /merged

# 堆叠多个目录(从最右边的目录开始向左堆叠),合并lower3,lower2,lower1,展示到merged目录
mount -t overlay overlay -olowerdir=/lower1:/lower2:/lower3 /merged

  对, 本文的内容已经完了,overlay的大致工作原理和工作效果和说完了。

  其他细节,请参考 参考小节。





后记


  不知道大家注意到没有,我们在描述其组合的规则的时候,对于:隐藏"lower fs"的文件、合并两个目录的文件 的操作说的是那么的自然,但是其是怎么实现的呢?其实这才是overlayfs的一些实际技术原理。

  其实,这一切都与linux的vfs和ext文件系统有一些关系,详情请参考本文的前置文章:

参考文献




打赏、订阅、收藏、丢香蕉、硬币,请关注公众号(攻城狮的搬砖之路)
qrc_img

PS: 请尊重原创,不喜勿喷。

PS: 要转载请注明出处,本人版权所有。

PS: 有问题请留言,看到后我会第一时间回复。

posted on 2024-05-18 19:18  SkyOnSky  阅读(174)  评论(0编辑  收藏  举报

导航