文件系统/目录将挂载点合并为层

文件系统/目录将挂载点合并为层

我正在寻找一种实现文件系统文件/目录访问层的方法。

所以我可以有这样的结构:

/mountPointMerged/
/mountPointLayer1/a/b/c.txt
/mountPointLayer2/a/b/c.txt
/mountPointLayer3/a/b/c.txt

访问文件时/mountPointMerged/a/b/c.txt,如果安装了第二层,则只有第三层未安装时才会读取/写入该文件,如果第二层和第三层都被卸载,则将访问第一层。

关键是,必须发生合并。因此,将这些文件专门添加到这些层中:

/mountPointLayer1/a/b/d.txt
/mountPointLayer2/a/b/e.txt
/mountPointLayer3/a/b/f.txt

将提供以下结果:

ls /mountPointMerged/a/b/
c.txt
d.txt
e.txt
f.txt

在 处创建的任何新文件/mountPointMerged/都将写入最顶层的安装层。但其他层可以通过访问 ex.:/mountPointLayer2/a/b/c.txt而不是直接访问/mountPointMerged/

可以通过某种方式完成吗?

答案1

我发现的最灵活、最直接的选项是 AUFS,例如:

mount -t aufs -o "br=CustomFolderToWriteAt:CustomTopOverriderFolder:CustomInBetweenOverriderFolders:CustomLowestPriorityFolder" none CustomMergedMountPointFolder

CustomFolderToWriteAt 将包含将在 CustomMergedMountPointFolder 写入的所有修改,即使您是touch一个文件,它也会在那里创建此类的完整副本。

CustomInBetweenOverriderFolders,可以有多个,这里用“:”分隔。

对其他自定义文件夹的更改会立即应用于合并的 CustomMergedMountPointFolder。

相关内容