OverlayFS:如何删除文件,而不是隐藏它们

Ken*_* S. 9 linux filesystems

我试图将两个挂载点聚合到一个目录中,以便它将两个文件中的文件合并到一个挂载点中。我正在使用overlayfs 进行一些测试并且已经能够创建合并的挂载点,但是当我从这个合并的目录中删除文件时问题就出现了。

我知道overlayfs有一个上层和一个下层文件系统,如果你从下层删除一些东西,它会在上层文件系统上创建一个“whiteout”,基本上只是将文件从下层隐藏起来,从“穿透”到合并层。该文件仍占用较低文件系统上的空间;它只是没有显示为可用。

我的问题是:如何从上层和下层文件系统中删除文件并回收已删除文件使用的空间,而不仅仅是隐藏它?我可以手动从合并目录中删除文件,然后从较低的目录中删除文件(这是一件坏事吗?)但df -ha仍然显示合并目录占用空间:

none                            6.8G  1.9G  4.6G  30% /var/www/merged
/dev/loop0                      380M  2.3M  354M   1% /mnt/lower1
/dev/loop1                      380M  2.3M  354M   1% /mnt/lower2
/dev/loop2                      380M  2.3M  354M   1% /mnt/upper
none                            380M  2.3M  354M   1% /mnt/merged
Run Code Online (Sandbox Code Playgroud)

从overlayfs文件系统中删除文件并正确报告准确的磁盘使用情况的正确方法是什么?

小智 1

除了使用原始路径(/lower1/file)删除文件之外,您不能这样做。OverlayFS 无意以这种方式合并挂载,以创建联合可写存储。