Я пытаюсь объединить две точки монтирования в один каталог, чтобы он объединял файлы из обеих в одну точку монтирования. Я провожу несколько тестов с 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 не предназначена для объединения монтировок таким образом, чтобы создать совместное хранилище с возможностью записи.