Frage Sehr seltsame Dateigröße (mehr als 600 PB) auf einem kleinen Dateisystem


Ich hatte eine Datei auf einem XFS-Dateisystem mit einer Größe von etwa 200 GB. Es war ein QCOW2-Image, das eine virtuelle Festplatte einer KVM-gesteuerten virtuellen Maschine enthielt. Irgendetwas lief schief (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

Also, es besetzt immer noch 191090708 Blöcke, aber ls zeigt es als 656 Petabyte.

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, aber ls zeigt es als ~ 6,6 Exabyte.

Was denkst du, ist es sicher, diese Dateien zu entfernen? Vielen Dank!

P.S. Es ist so gut, regelmäßig Schnappschüsse zu machen! :) Ich weiß nicht, was ich ohne sie machen würde.


20
2018-02-10 11:36


Ursprung


Vielen Dank für Ihre Antworten. Natürlich kenne ich sparse Dateien, aber die wichtigste Frage für mich ist die folgende: Ist es sicher, diese Dateien zu entfernen? Wie ich jetzt sehe, besteht die Möglichkeit, Daten zu verlieren, wenn die Dateisysteme beschädigt sind. Ich kann nicht sicher sein, dass die Dateisysteme in Ordnung sind, weil es nicht unerwünscht ist, sie aushängen und überprüfen, aber das erste Vorkommen war vor 4 Monaten, das zweite vor 14 Monaten, also hoffe ich, dass es irgendein Dateisystem gibt Korruption, wenn es welche gab. Was denkst du? - Vladimir Melnik


Antworten:


Ich sehe zwei mögliche Gründe für Sie, diese Dateigrößen zu sehen:

  • Sparse-Dateien
  • Dateisystembeschädigung

Sparse-Dateien sind eine Funktion in einigen Dateisystemen, mit denen Sie eine Datei mit Lücken erstellen können. Für die Löcher ist kein physischer Platz zugewiesen. Das Lesen über die Löcher gibt NUL-Bytes den ganzen Weg zurück.

Wenn der Grund für das, was Sie sehen, spärliche Dateien ist, dann ist es genauso sicher, sie zu löschen, wie es bei einer Datei ohne Sparse der Fall wäre.

Wenn der Grund für das, was Sie sehen, Dateisystembeschädigung ist, ist es nicht sicher, die Dateien ohne eine Dateisystemüberprüfung zu löschen. Wenn ein Dateisystem so beschädigt ist, dass mehrere Dateien den gleichen Speicherplatz belegen, würde das Löschen einer der beiden Dateien dazu führen, dass diese freigegeben werden. Sobald diese freigegebenen Blöcke wiederverwendet werden, wird die Korruption schlimmer.

Wenn Sie andere Symptome gesehen haben, die Sie glauben lassen, dass das Dateisystem beschädigt ist, sollten Sie eine vollständige Überprüfung des Dateisystems erzwingen, bevor Sie die Dateien löschen.

Wenn es keinen Hinweis darauf gibt, dass das Dateisystem beschädigt ist und die Dateien spärlich erscheinen, lösche ich die Dateien einfach, sobald ich sie nicht mehr brauche.


31
2018-02-10 13:32





Das Problem ist die Art, wie Sie eine Dateigröße berechnen.

Eine Möglichkeit ist der Offset des letzten Bytes (wie ls). Der andere Weg besteht darin, wirklich zugewiesene Blöcke (wie du) zu summieren.

Was Sie sehen, wenn Sie wahrscheinlich eine Datei mit Daten bei sehr großem Offset geschrieben haben. Das bedeutet, dass größere Teile Ihres Dateiadressraums nicht zugewiesen sind. Aber du kannst es immer noch lesen.


6
2018-02-10 12:46



Vielen Dank. Was denkst du, wird es nicht etwas zum Absturz bringen, wenn ich nur diese Dateien entferne? - Vladimir Melnik
Google "Sparse-Datei" für Details. - Kondybas