Ich hatte eine Datei auf einem XFS-Dateisystem mit einer Größe von ca. 200 GB. Es war ein QCOW2-Image, das eine virtuelle Festplatte einer KVM-gesteuerten virtuellen Maschine enthielt. Etwas ist schief gelaufen (vielleicht war es ein Fehler von qemu-kvm, ich bin mir nicht sicher), die virtuelle Maschine war abgestürzt und jetzt habe ich eine Datei, die so aussieht:
191090708 -rwxr--r--. 1 root root 737571587400425984 Oct 10 10:03 973d10e0-a5e3-4a59-9f98-4b9b9f072ade
Es belegt also immer noch 191090708 Blöcke, ls
zeigt es jedoch als 656 Petabyte an.
Außerdem habe ich eine andere Datei mit der gleichen Vorgeschichte, aber auf einem anderen Dateisystem (nicht XFS, sondern GFS2):
410855320 -rwxr--r--. 1 root root 7493992262336241664 Dec 13 2014 ac2cb28f-09ac-4ca0-bde1-471e0c7276a0
Es belegt 410855320 Blöcke, ls
zeigt es aber als ~ 6,6 Exabyte.
Was denkst du, ist es sicher, diese Dateien zu entfernen? Vielen Dank!
PS Es ist so gut, regelmäßig Schnappschüsse machen zu lassen! :) Ich weiß nicht, was ich ohne sie machen würde.
Antworten:
Ich sehe zwei mögliche Gründe für Sie, diese Dateigrößen zu sehen:
Bei einigen Dateisystemen sind sparsame Dateien eine Funktion, mit der Sie eine Datei mit Löchern erstellen können. Für die Löcher wird kein physischer Platz zugewiesen. Durch Lesen über die Löcher werden NUL-Bytes vollständig zurückgegeben.
Wenn der Grund für das, was Sie sehen, spärliche Dateien sind, können Sie diese genauso sicher löschen, wie dies bei einer nicht spärlichen Datei der Fall wäre.
Wenn der Grund für das, was Sie sehen, eine Beschädigung des Dateisystems ist, ist es nicht sicher, die Dateien ohne Dateisystemprüfung zu löschen. Wenn ein Dateisystem so beschädigt ist, dass mehrere Dateien den gleichen Speicherplatz beanspruchen, werden diese Blöcke freigegeben, wenn Sie eine der beiden Dateien löschen. Sobald diese freigegebenen Blöcke wiederverwendet werden, wird die Korruption noch schlimmer.
Wenn Sie andere Symptome feststellen, die vermuten, dass das Dateisystem beschädigt ist, sollten Sie eine vollständige Überprüfung des Dateisystems erzwingen, bevor Sie die Dateien löschen.
Wenn es keine Anzeichen dafür gibt, dass das Dateisystem beschädigt ist und die Dateien spärlich zu sein scheinen, würde ich die Dateien einfach löschen, sobald ich sie nicht mehr benötige.
quelle
Das Problem ist die Art und Weise, wie Sie eine Dateigröße berechnen.
Ein Weg ist es, den Offset des letzten Bytes zu sehen (wie ls). Die andere Möglichkeit besteht darin, wirklich zugewiesene Blöcke zu summieren (wie du).
Was Sie sehen, wenn wahrscheinlich eine Datei mit Daten mit sehr großem Versatz geschrieben. Dies bedeutet, dass wichtige Teile Ihres Adressraums nicht zugeordnet sind. Aber du kannst es trotzdem lesen.
quelle