Ich versuche, zwei Einhängepunkte in einem einzigen Verzeichnis zusammenzufassen, damit die Dateien von beiden in einem einzigen Einhängepunkt zusammengefasst werden. Ich mache einige Tests mit Overlays und konnte den zusammengeführten Mountpoint erstellen, aber das Problem tritt auf, wenn ich Dateien aus diesem zusammengeführten Verzeichnis lösche.
Ich verstehe, dass Overlays ein oberes und ein unteres Dateisystem haben und dass, wenn Sie etwas aus dem unteren löschen, ein "Whiteout" im oberen Dateisystem erzeugt wird, das die Datei im Grunde nur vom unteren durch "Durchscheinen" bis zur zusammengeführten Ebene verbirgt. Die Datei belegt weiterhin Speicherplatz im unteren Dateisystem. Es wird einfach nicht als verfügbar dargestellt.
Meine Frage lautet: Wie lösche ich eine Datei sowohl aus dem oberen als auch aus dem unteren Dateisystem und stelle den von der gelöschten Datei verwendeten Speicherplatz wieder her und verstecke ihn nicht einfach? Ich kann die Datei manuell aus dem zusammengeführten Verzeichnis und dann aus dem unteren Verzeichnis löschen (ist dies eine schlechte Sache?), df -ha
Zeigt aber immer noch an, dass das zusammengeführte Verzeichnis Speicherplatz beansprucht:
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
Was ist der richtige Weg, um Dateien aus einem Overlayfs-Dateisystem zu löschen und eine genaue Festplattennutzung ordnungsgemäß zu melden?
quelle
Antworten:
Overlay funktioniert wie folgt:
Sie haben 2 Verzeichnisse, das untere ist schreibgeschützt und das obere ist schreibgeschützt. Es ist nur möglich, Dateien aus der beschreibbaren Ebene zu entfernen.
Overlay wurde nicht für das entwickelt, was Sie erreichen möchten. Außerdem wird erwartet, dass sich das untere Verzeichnis nicht wirklich ändert, sodass möglicherweise Probleme auftreten.
Wenn Sie wirklich mehrere Laufwerke zusammenführen müssen, verwenden Sie lvm. Es funktioniert auch mit Dateien.
quelle
Sie können nicht, außer die Datei über den ursprünglichen Pfad (/ lower1 / file) zu löschen. OverlayFS ist nicht dazu gedacht, Mounts auf diese Weise zusammenzuführen, um einen gemeinsamen beschreibbaren Speicher zu erstellen.
quelle