linux overlay目录作用,把玩overlay文件系统

本文介绍了Linux的OverlayFS文件系统,用于满足容器技术和LiveCD场景的分层文件系统需求。OverlayFS通过Lower和Upper层实现只读和可写文件系统的组合,提供覆盖特性。文章详细解释了文件/目录的创建、修改、删除处理策略,并通过实战操作展示了OverlayFS的工作原理。
摘要由CSDN通过智能技术生成

关于容器技术的原理,我在很早之前翻译过命名空间相关的文章,但这还远远不够,需要切入的还有cgroup、文件系统和网络相关方面的细节。

到了招聘季,稍微有点时间整理这方面的资料,索性先从文件系统入手,本文的目标仅仅是“知其然”。

0x00 对于分层的需求

在LiveCD的场景下,有这么一种需求:要求在发行版启动后,在逻辑上得到一个统一的文件系统,用户能够对其进行读写,而该文件系统中的基础部分来自一个只读文件系统,无法对其进行写操作。

容器镜像的需求也是类似,用户需要能够根据基础镜像构建新镜像,出于共享基础镜像的目的,整个过程并不能影响基础镜像本身,也就是说最终得到的是一个逻辑意义上的新镜像。

通俗而言,就是要求文件系统提供“层次”的概念,目前可选的方案有AUFS,OverlayFS,DeviceMapper等。

作为UnionFS之一的OverlayFS就是这么一种文件系统,它于2014年被合并到3.18内核,顾名思义其主要特性就是“覆盖”,可以结合下图进行理解(图非原创)。

2962248062.png

0x01 特性介绍

正如上图所示,在OverlayFS中,存在Lower和Upper的概念,指定的Lower和Upper文件系统共同组成了新的文件系统。

其效果就如同上图所示,我们从Upper的正上方向下观察,存在文件和目录的位置是“不透明”的,因此最终得到的俯视图应该就如同Overlay那一层所示。

对于文件系统而言,“不透明”的另一种表达方式即为覆盖。也就是说Upper中存在的文件会覆盖Lower中的同名文件,但这对于目录而言稍有不同,同名文件会被覆盖,而不同名的则是合并。

对于文件/目录的修改,处理策略如下:若指定文件存在于Upper,则直接修改该文件。

若指定文件仅存在于Lower,则会先从Lower拷贝该文件到Upper(copy_up操作),然后进行修改。

对于文件/目录的创建,效果等同于在Upper层直接进行创建。

对于文件的删除,处理策略如下:若指定文件仅存在于Upper,则直接删除该文件。

若指定文件存在于Lower,则在Upper层创建同名的字符设备。

对于目录的删除,处理策略如下:若指定目录仅存在于Upper,则直接删除该目录。

若指定目录

CentOS的文件系统中,Overlay是一种联合文件系统(Union File System),它允许将多个文件系统以层叠的方式合并在一起。Overlay文件系统通常用于创建轻量级容器,其中一个只读的基础文件系统(Base File System)与一个可写的上层文件系统(Upper File System)进行合并。 在CentOS中,Overlay文件系统可以使用OverlayFS来实现。它通过将两个文件系统以层叠的方式合并,将只读的基础文件系统与可写的上层文件系统进行组合。这样,对于上层文件系统的读操作,会首先在上层文件系统中查找,如果找不到则会在基础文件系统中查找。对于写操作,则会直接在上层文件系统中进行。 要使用Overlay文件系统,首先需要确保内核支持OverlayFS。在CentOS 7及以上版本中,默认情况下已经支持OverlayFS。然后,你可以在需要的地方挂载Overlay文件系统,将只读的基础文件系统与可写的上层文件系统进行合并。 例如,可以使用以下命令来挂载Overlay文件系统: ``` mount -t overlay overlay -o lowerdir=/path/to/base,upperdir=/path/to/upper,workdir=/path/to/work /path/to/mount ``` 其中,`lowerdir`指定基础文件系统的路径,`upperdir`指定上层文件系统的路径,`workdir`指定工作目录的路径,`/path/to/mount`指定挂载点的路径。 请注意,Overlay文件系统需要Linux内核的支持,并且在某些情况下可能会有性能方面的考虑。因此,在使用Overlay文件系统之前,建议你仔细评估你的需求和系统资源,并确保了解其工作原理和限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值