Overlay文件系统

Overlay文件系统

一个Overlay文件系统包含两个文件:

  • 一个upper文件系统
  • 一个lower文件系统
    lower文件系统的数据不会被修改,所以修改都发生在upper文件系统中。除此之外,还有2个空目录:work和merged。work目录属于操作过程文件,merged属于overlay挂载目录(即挂载后的目录),会包含lower和upper两个系统的内容。

Overlay文件系统如何挂载?

  • 首先加载overlay模块: $sudo modprobe overlay
  • 创建四个文件目录:lower, upper, merged, work, 并在lower和upper下创建几个测试数据。
  • 在/root目录下执行如下挂载指令,可以看到空的merged文件夹中已经包含了lower以及upper文件夹中的所有文件和目录。
$ mount -t overlay overlay -o lowerdir=./lower, upperdir=./upper, workdir=./work ./merged
- 使用df -h命令可以查看新构建的overlay文件系统已经挂载。

overlay文件系统的读、写与删除操作

读取操作

  • 读upper没有而lower与的文件时,从lower读
  • 读只在upper有的文件时,从lower读
  • 读lower和upper都有的文件,则需要从upper读

写入操作

  • 写只在upper有的文件, 直接在upper上写
  • 写在lower和upper都有的文件,直接在upper写
  • 写只在lower有的文件时,则会做一个copy_up的操作,先从lower拷贝一份文件到upper中,同时为文件创建一个硬链接。此时可以看到upper目录下生成了2个新的文件,写的操作支队从lower复制到upper文件生效,而lower还是原文件。

删除操作

  • 删除lower和upper都有的文件时,upper中文件被删除,在upper目录下创建一个without文件,而lower文件不会被删除。
  • 删除lower有而upper没有的文件,会为被删除的文件在upper目录下创建一个without文件,而在lower下的不会被删除。
  • 删除lower和upper都有的目录时时,upper的会被删除,在upper目录下创建一个类似without文件的opaqu目录,而lower下的不会被删除。

因而,可以发现,lower是只读的,无论对lower上文件或目录做任何操作都不会对lower做更改。所有的操作都只在upper上进行。
注意:在挂载完成后,目录将变为可读可写,但所有的修改(在upper上)都是暂时的,重启后恢复。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。