OverlayFS: Wie kann ich Dateien löschen, nicht ausblenden?

8

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 -haZeigt 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?

Ken S.
quelle
Haben Sie sich stattdessen mit aufs befasst?
Ptman
rsync scheint hier eine mögliche Methode zu sein - wenn es eine Möglichkeit gibt, es nur zu löschen und nicht zu kopieren
Jasen

Antworten:

2

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.

Gothrek
quelle
1

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.

Max Krüger
quelle