Назад | Перейти на главную страницу

OverlayFS: как удалить файлы, а не скрыть их

Я пытаюсь объединить две точки монтирования в один каталог, чтобы он объединял файлы из обеих в одну точку монтирования. Я провожу несколько тестов с overlayfs и мне удалось создать объединенную точку монтирования, но проблема возникает, когда я удаляю файлы из этого объединенного каталога.

Я понимаю, что overlayfs имеет верхнюю и нижнюю файловую систему и что если вы удалите что-то из нижнего, это создаст «белое пятно» в верхней файловой системе, которое в основном просто скрывает файл из нижнего от «просвечивающего» до объединенного слоя. Файл по-прежнему занимает место в нижней файловой системе; он просто не представлен как доступный.

Мой вопрос: как мне удалить файл как из верхней, так и из нижней файловой системы и освободить пространство, используемое удаленным файлом, а не просто скрыть его? Я могу вручную удалить файл из объединенного каталога, а затем из нижнего каталога (это плохо?), Но 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

Как правильно удалить файлы из файловой системы overlayfs и правильно сообщить о точном использовании диска?

Что делает Overlay:

У вас есть 2 каталога: нижний предназначен только для чтения, а верхний - для чтения и записи. Удалить файлы можно только с записываемого слоя.

Оверлей не был разработан для того, что вы пытаетесь достичь. Кроме того, ожидается, что нижний каталог на самом деле не изменится, поэтому у вас могут возникнуть проблемы.

Если вам действительно нужно объединить несколько дисков, используйте lvm. Он также работает с файлами.

вы не можете, кроме удаления файла, используя исходный путь (/ lower1 / file). OverlayFS не предназначена для объединения монтировок таким образом, чтобы создать совместное хранилище с возможностью записи.