Я пытаюсь объединить две точки монтирования в один каталог, чтобы он объединял файлы из обеих точек в одну точку монтирования. Я делаю несколько тестов с 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 и правильно сообщить о точном использовании диска?
источник
Ответы:
Оверлей делает следующее:
У вас есть 2 каталога, нижний - только для чтения, верхний - для чтения и записи. Удалить файлы можно только из слоя, доступного для записи.
Оверлей не предназначен для того, чего вы пытаетесь достичь. Более того, ожидается, что нижний каталог не изменится, поэтому у вас могут возникнуть проблемы.
Если вам действительно нужно объединить несколько дисков, используйте lvm. Это также работает с файлами.
источник
Вы не можете, кроме удаления файла, используя оригинальный путь (/ lower1 / file). OverlayFS не предназначен для объединения Mounts таким образом, чтобы создать совместное записываемое хранилище.
источник