
Ich habe ein Dateisystem von einem Ubuntu-System auf ein Fedora 17-System gesichert/wiederhergestellt. Dabei ist mir aufgefallen, dass der belegte Speicherplatz laut df
Ausgabe um 30 % zugenommen hat. Was könnten die Gründe dafür sein?
Beim Fedora-System df
wird angezeigt: 78 GB belegt
Beim Ubuntu-System df
wird angezeigt: 60 GB verwendet
Unterschiede zwischen den Systemen:
Ubuntu: ext3 (vor Jahren erstellt)
Fedora 17: ext4 (erstellt mit einem Vanilla- mkfs.ext4
Aufruf)
Die Wiederherstellung auf einem XFS-Dateisystem (unter Fedora 17) ergibt 78 GB belegten Speicherplatz.
Sicherung und Wiederherstellung erfolgten mit GNU Tar. Das Dateisystem enthält eine große Bandbreite unterschiedlicher Dateitypen (z. B. von Quellbäumen, Mailverzeichnissen bis hin zu ISOs usw.).
Antwort1
Das erste, was mir in den Sinn kommt, sind „spärliche Dateien“. Traditionell könnte man eine Datei mit Daten an einem Offset in der Datei erstellen und dann zu einem viel größeren Offset suchen. Beim Schreiben von Daten in den viel größeren Offset würde das Dateisystem keine Plattenblöcke für die dazwischenliegenden Offsets zuordnen. Programme, die diese Offsets ohne zugeordnete Plattenblöcke lesen, lesen Nullwerte.
Das Tarnen von Sparse-Dateien führt dazu, dass die Offsets einer Sparse-Datei, der keine Festplattenblöcke zugewiesen sind, Festplattenblöcke sowohl in der TAR-Datei (oder im Ausgabestream) als auch in der neu erstellten Datei zuweisen.
Ich erinnere mich, dass einige DBMS Sparse-Dateien erstellten, ebenso wie Programme wie MSC/NASTRAN (Finite Element Modeling System). Das Sichern dieser Sparse-Dateien verbraucht letztendlich große Mengen Offline-Speicher, sehr zur Überraschung aller Beteiligten.
Antwort2
Achten Sie bei Speicherplatzabweichungen auch auf den für Root reservierten Speicherplatz (normalerweise 5 % auf ext{2,3,4}). Dieser Speicherplatz ermöglicht es dem Betriebssystem, zu funktionieren (Protokolldateien schreiben usw.), selbst wenn ein Benutzer die Festplatte füllt (solange dieser Benutzer nicht Root ist).
Sie können diese Einstellung wie folgt anzeigen tune2fs -l
:
[root@host ]# tune2fs -l /dev/md0 |grep Reserved
Reserved block count: 1279986
Reserved GDT blocks: 1017
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
Sie können dies auf Ihren Ext-Dateisystemen deaktivieren mittune2fs -m 0 /dev/NAME
Nach kurzem Hinsehen glaube ich nicht, dass xfs Platz für Root reserviert hat.