Dateisystemgrößen / Ausgabe von df

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
cosinus
Beiträge: 46
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Dateisystemgrößen / Ausgabe von df

Beitrag von cosinus » 11.01.2017 13:23:34

Moin

gleich vorweg: mir sind die Unterschiede zwischen Partitionsgröße und der Größe des daraufliegenden Dateisystems klar.
Ebenso sind mir die verschiedenen Einheiten bekannt (Gigabyte vs Gibibyte)

Mal ein Beispiel: hab hier ein logical volume mit genau 16 GiB (erstellt mit -L16G) und darauf ein ext4 filesystem erstellt.

tune2fs sagt mir über dieses filesystem genau "Block count: 4194304"
Da jeder Block genau 4K grß ist (4096) Byte sind das ja auch genau 16 GiB ( = 16384 MiB = 17179869184 Byte)

Nun sagt df mir aber:

Code: Alles auswählen

root@myhost:~# df -B M
Dateisystem                 1M-Blöcke Benutzt Verfügbar Verw% Eingehängt auf
/dev/mapper/vg0-debian.root    15999M   3487M    11678M   23% /

root@myhost:~# df -B 1
Dateisystem                   1B-Blöcke    Benutzt   Verfügbar Verw% Eingehängt auf
/dev/mapper/vg0-debian.root 16776077312 3655884800 12244422656   23% /
Wie kann das sein, dass das logical volume auf den Byte genau 16 GiB groß ist und auch tune2fs mir eine Blockanzahl die genau 16 GiB entspricht anzeigt, aber df weniger? Ist das ein Bug oder übersehe ich hier etwas? (auch die Systemüberwachung vom MATE-Desktop zeigt hier die falsche Gesamtgröße an genau wie df :? )

Wenn ich das Dateisystem auf genau 16 GiB versuche zu vergrößern, meint er er habe schon 16 GiB, was ja auch lt. Ausgabe von lvs und tune2fs stimmt. :roll:


Ich sitze JETZT aktuell an einem Debian stretch x86_64 => Linux myhost 4.8.0-2-amd64 #1 SMP Debian 4.8.15-2 (2017-01-04) x86_64 GNU/Linux
Aber vermutlich ist das irrelevant, weil ich das auch bei einem (ältern) Ubuntu auch schon so beobachtet habe.

Weiß jmd was das ist?

Benutzeravatar
niemand
Beiträge: 10318
Registriert: 18.07.2004 16:43:29

Re: Dateisystemgrößen / Ausgabe von df

Beitrag von niemand » 11.01.2017 13:50:06

Die Reserve für Root hast du bedacht?
Du möchtest schnell und unkompliziert auf meine Ignore-Liste? Schreibe einfach „Gesendet von meinem … mit Tapatalk“ unter deinen Beitrag, oder poste Textausgaben als Bild
Am 7. Tag aber sprach der HERR: „QWNoIFNjaGVpw58sIGtlaW5lbiBCb2NrIG1laHIgYXVmIGRlbiBNaXN0ISBJY2ggbGFzcyBkYXMgamV0enQgZWluZmFjaCBzbyDigKYK“

cosinus
Beiträge: 46
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Dateisystemgrößen / Ausgabe von df

Beitrag von cosinus » 11.01.2017 14:18:27

Meinst du die?

Code: Alles auswählen

root@myhost:~# tune2fs -m0 /dev/mapper/vg0-debian.root
tune2fs 1.43.3 (04-Sep-2016)
Der prozentuelle Anteil reservierter Blöcke wird auf 0% (0 Blöcke) gesetzt
Die hat nix mit der Gesamtgröße der Dateisystems wohl zu tun, df zeigt immer noch:

Code: Alles auswählen

root@myhost:~# df -B1
Dateisystem                   1B-Blöcke    Benutzt   Verfügbar Verw% Eingehängt auf
/dev/mapper/vg0-debian.root 16776077312 3655892992 13103407104   22% /

MSfree
Beiträge: 2630
Registriert: 25.09.2007 19:59:30

Re: Dateisystemgrößen / Ausgabe von df

Beitrag von MSfree » 11.01.2017 14:25:20

cosinus hat geschrieben:16776077312
Sind nach meiner Primfaktorenzerlegung:
2^13 * 277 * 7393

16GiB wären 17179869184 Bytes.

mludwig
Beiträge: 466
Registriert: 30.01.2005 19:35:04
Kontaktdaten:

Re: Dateisystemgrößen / Ausgabe von df

Beitrag von mludwig » 11.01.2017 14:27:20

Vom Speicherplatz abziehen muss man a) den Verwaltungsoverhead (Inode-Tabellen etc), und b) zumindest bei ext3/4 das Journal. Die Journalgröße zumindest kann man sich anzeigen lassen.

Code: Alles auswählen

dumpe2fs /dev/sda5 | grep Journal
Das Journal ist meistens zumindest keine Sichtbare Datei, ich hatte das aber mal in einem Dateisystem, das nachträglich in ext3 umgewandelt wurde, als normale Datei gesehen.

http://blog.dailystuff.nl/2012/07/getti ... rnal-size/
https://rwmj.wordpress.com/2009/11/08/f ... -overhead/

cosinus
Beiträge: 46
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Dateisystemgrößen / Ausgabe von df

Beitrag von cosinus » 11.01.2017 14:28:41

MSfree hat geschrieben:
cosinus hat geschrieben:16776077312
Sind nach meiner Primfaktorenzerlegung:
2^13 * 277 * 7393
Zusammenhang? 8O
MSfree hat geschrieben:16GiB wären 17179869184 Bytes.
Richtig. Hab ich ja auch geschrieben. Oder anderes ausgedrückt: 16 GiB = 16 * 1024^3 Bytes.

Aber wieso zeigt df so nen Murx an? :mrgreen:

cosinus
Beiträge: 46
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Dateisystemgrößen / Ausgabe von df

Beitrag von cosinus » 11.01.2017 14:30:50

mludwig hat geschrieben:Vom Speicherplatz abziehen muss man a) den Verwaltungsoverhead (Inode-Tabellen etc), und b) zumindest bei ext3/4 das Journal. Die Journalgröße zumindest kann man sich anzeigen lassen.

Code: Alles auswählen

dumpe2fs /dev/sda5 | grep Journal
Das Journal ist meistens zumindest keine Sichtbare Datei, ich hatte das aber mal in einem Dateisystem, das nachträglich in ext3 umgewandelt wurde, als normale Datei gesehen.

http://blog.dailystuff.nl/2012/07/getti ... rnal-size/
https://rwmj.wordpress.com/2009/11/08/f ... -overhead/

Ans Journal hab ich auch schon gedacht und überprüft, sry, vergessen zu erwähnen :oops: Mir gehts es aber um die Gesamtgröße, die df für das filesystem anzeigt. Oder zeigt df als Gesamtgröße die abzüglich des Journals an? Falls ja, würde die Gesamtgröße sich ja bei der Ausgabe von df ändern, wenn das Journal wächst => RLY??? :roll:

edit: typo
Zuletzt geändert von cosinus am 11.01.2017 14:35:58, insgesamt 1-mal geändert.

cosinus
Beiträge: 46
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Dateisystemgrößen / Ausgabe von df

Beitrag von cosinus » 11.01.2017 14:35:19

Hiermal die Ausgabe:

Code: Alles auswählen

# dumpe2fs /dev/mapper/vg0-debian.root|grep -i journal
dumpe2fs 1.43.3 (04-Sep-2016)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Journal inode:            8
Journal backup:           inode blocks
Jounaleigenschaften:         journal_incompat_revoke
Journalgröße:            128M
Journal-Länge:            32768
Journal-Sequenz:          0x0000298c
Journal-Start:            17912
Das Journal ist 128 MiB groß. Belegt es auch tatsächlich soviel?
Was hat das mit der Angabe der Gesamtgröße des Dateisystem zu tuns? (zB in df)

Ich komm da auf eine Differenz von 403791872 Bytes, da sind definitiv keine 128 MiB :mrgreen:

MSfree
Beiträge: 2630
Registriert: 25.09.2007 19:59:30

Re: Dateisystemgrößen / Ausgabe von df

Beitrag von MSfree » 11.01.2017 14:42:12

cosinus hat geschrieben:Aber wieso zeigt df so nen Murx an? :mrgreen:
Bei mir stimmt die Ausgabe von df -B 1 mit tune2fs überein, allerdings sind dazu die Free blocks mit der Block size zu multiplizieren.

Der Block count, den tune2fs ausgibt, beinhaltet die komplette Größe, die das Dateisystem auf der Platte belegt, also inklusive der Blöcke für die interne Verwaltung, z.B. Journal, iNode-Tabellen etc..

cosinus
Beiträge: 46
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Dateisystemgrößen / Ausgabe von df

Beitrag von cosinus » 11.01.2017 14:48:47

MSfree hat geschrieben:Bei mir stimmt die Ausgabe von df -B 1 mit tune2fs überein, allerdings sind dazu die Free blocks mit der Block size zu multiplizieren.
Moment mal, wieso denn das? df -B1 ergibt doch als Ausgabe den Wert in Bytes, nicht in 4K-Blücken (heißt ja nicht umsonst 1B-Blöcke :lol: )
MSfree hat geschrieben:Der Block count, den tune2fs ausgibt, beinhaltet die komplette Größe, die das Dateisystem auf der Platte belegt, also inklusive der Blöcke für die interne Verwaltung, z.B. Journal, iNode-Tabellen etc..
Ja gut, aber nur durch das Journal errechnet sich zB meine Differenz ja nicht. Wie genau errechnet also df jetzt den Gesamtwert? :?

MSfree
Beiträge: 2630
Registriert: 25.09.2007 19:59:30

Re: Dateisystemgrößen / Ausgabe von df

Beitrag von MSfree » 11.01.2017 14:53:12

cosinus hat geschrieben:Wie genau errechnet also df jetzt den Gesamtwert? :?
Free blocks mal Block size

(zumindest stimmt das bei mir mit df -B 1 überein)

cosinus
Beiträge: 46
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Dateisystemgrößen / Ausgabe von df

Beitrag von cosinus » 11.01.2017 15:04:31

Hm...mal gucken:

Code: Alles auswählen

# df -B1
Dateisystem                   1B-Blöcke    Benutzt   Verfügbar Verw% Eingehängt auf
/dev/mapper/vg0-debian.root 16776077312 3655892992 13103407104   22% /

tune2fs:
Free blocks:              3131701
3131701 * 4096 = 12827447296

Passt hinten und vorne nicht. Außerdem versteh ich nicht, was das mit der angezeigten GESAMTGRÖßE zu tun haben soll! :roll:

Es um diesen Wert => 16776077312
Der sollte eigentlich so lauten: 17179869184

Und deine Rechnung mit den Primfaktoren scheint mir da irgendwie auch noch zusammenhangslos zu sein. 8O

MSfree
Beiträge: 2630
Registriert: 25.09.2007 19:59:30

Re: Dateisystemgrößen / Ausgabe von df

Beitrag von MSfree » 11.01.2017 17:57:44

Lies dir mal das hier durch. Ich denke, das erklärt den Overhead des ext-Dateisystems und warum df und tune2fs unterschiedliche Ergebnisse liefern:

http://www.lisnichenko.com/articles/ext ... art-1.html

cosinus
Beiträge: 46
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Dateisystemgrößen / Ausgabe von df

Beitrag von cosinus » 11.01.2017 21:56:12

Ah danke für den Link ich glaube jetzt versteh ich.

Das ist einfach der normale overhead eines jedes ext filesystems und df zeigt das an was für den User nutzbar ist abzüglich journal, superblocks undundund
Total default ext3 file system overhead = number of block groups with superblocks * ( Super block + Group descriptors + Reserved GDT blocks + Data Block bitmap + Inode bitmap + Inodes table ) + number of block groups without superblocks * ( Data Block bitmap + Inode bitmap + Inodes table ).
Mal sehen ob ich nach dieser Rechnung auch auf das komme was df mir anzeigt :THX:

Antworten