Dateisystem - ext4 für viele kleine Dateien?

Smalltalk
Antworten
curt123
Beiträge: 704
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Dateisystem - ext4 für viele kleine Dateien?

Beitrag von curt123 » 03.10.2023 17:27:59

Hallo.

Btrfs ist vermutlich langsamer beim Schreiben und benötigt etwas mehr Platz für die Verwaltung,

Ist ext4 i.d.R. erste Wahl für System und externe USB-Platten?

LG

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

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von cosinus » 03.10.2023 18:38:39

Also mit ext4 hatte ich noch nie Probleme. Wenn was verlorengion, dann durch meine Schuld oder weil ne Platte fehlerhafte Sektoren hatte. Und ich benutze ext4 auch auf unseren Servern im Büro seit vielen vielen Jahren (seit 2009 oder 2010).

Von wie vielen Dateien redest du denn? Wenn es wirklich viele viele kleine sind, kann es besser sein, mit anderen Parametern das ext4-Dateisystem zu erstellen.

curt123
Beiträge: 704
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von curt123 » 03.10.2023 20:06:57

cosinus hat geschrieben: ↑ zum Beitrag ↑
03.10.2023 18:38:39
Von wie vielen Dateien redest du denn? Wenn es wirklich viele viele kleine sind, kann es besser sein, mit anderen Parametern das ext4-Dateisystem zu erstellen.
Geringere Clustergröße?

Es geht überwiegend um unkomprimierte Sicherungen von Webprojekten mit kleinen Scripten, oder kleine Textdateien etc.. Aber auch mal etwas größere Dateien, Fotos je 2-4 MiB. Wenig Musik, also auch mal eine größere wav-Datei, 1 GiB, von einer digitalierten LP.

Gerade kopiere ich von einer exFAT-Platte auf eine ext4 und komme bei den kleinen Dateien schlimmstenfalls auf 170 KiB/s, typisch 1,5 MiB/s. Bei großen auch über 150 MiB/s.
Es geht bei den neuen Dateisystem um möglichst viel Speicherplatz und schnelles Kopieren oder Suchen. Ich muß auch noch auf der Platte sortieren und aufräumen, teilweise löschen.

Langfristig sollte ich die Bereiche vielleicht trennen, ansonsten überwiegen erstmal die kleineren Dateien. Neben der Clustergröße ist beim Schreiben vieler kleiner Dateien wohl noch der jeweils zu erstellende Verzeichniseintrag relativ zeitaufwendig.

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

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von cosinus » 03.10.2023 20:36:42

Du kannst mit dem Parameter

Code: Alles auswählen

-T small 
bei der Erzeugung des Dateisystems schon auf gewisse Voreinstellungen zurückgreifen. Die sind in der Datei /etc/mk2fs.conf definiert:

Code: Alles auswählen

small = {
		blocksize = 1024
		inode_ratio = 4096

curt123
Beiträge: 704
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von curt123 » 04.10.2023 13:26:57

cosinus hat geschrieben: ↑ zum Beitrag ↑
03.10.2023 20:36:42
Du kannst mit dem Parameter

Code: Alles auswählen

-T small 
bei der Erzeugung des Dateisystems schon auf gewisse Voreinstellungen zurückgreifen. Die sind in der Datei /etc/mk2fs.conf definiert:
Hat leider nicht ganz geklappt. Formatiert habe ich eine 8 TB WD80EDAZ im original MyBook USB Gehäuse.

Einmal von mehreren Versuchen gelang gestern das Einhängen nach sehr langer Wartezeit. Heute erstmal eine Meldung error fsyncing.
Jetzt nach rund 10 Minuten kann ich mit GParted die Partitionsgröße sehen, "Unbenutzt" scheint nun vielleicht 200 GiB größer als gestern abend.

Liegt das womöglich an der USB-Platine, also Platte erstmal ausbauen?

Benutzeravatar
heisenberg
Beiträge: 3567
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von heisenberg » 04.10.2023 13:46:50

Von wie vielen Dateien redest du denn?
Das würde ich auch ganz gerne mal wissen.

Ich habe hier diverse VMs mit Dateizahlen im Bereich von 1-8 Millionen. Das ist beim Backup schon etwas lästig, weil der rsync dann teilweise Stunden dauert, bis der das alles durchgenudelt hat, obwohl sich nichts verändert hat. Ich habe deswegen ein dort ein separates asynchrones Zusatzbackup umgesetzt.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

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

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von cosinus » 04.10.2023 14:13:59

Hast du diesen Befehl genutzt?

Code: Alles auswählen

mkfs.ext4 -T small /dev/sdX
Wenn ja solltest du mit tune2fs auf jeden Fall sehen, dass nun die Blocksize auf 1024 gesetzt ist. Wenn die Platte sich komisch verhält solltest du die aber wirklich erstmal direkt per SATA angeschlossen testen.

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von MSfree » 04.10.2023 14:25:38

cosinus hat geschrieben: ↑ zum Beitrag ↑
03.10.2023 20:36:42

Code: Alles auswählen

small = {
		blocksize = 1024
		inode_ratio = 4096
Mit blocksize = 1024 wäre ich bei heutigen Festplatte vorsichtig. Moderne Platten haben intern bereits 4096 Byte Blockgröße. Wenn du die Blöckgröße des Dateisystem kleiner wählst als die Blockgröße der Festplatte, wird das Dateisystem unweigerlich lahm.

Dazu muß ich sagen, daß ich bisher auch mit 14 Millionen von Dateien noch nie in irgendein Limit reingelaufen wäre. Ext4 wurde immer mit Defaults angelegt.

curt123
Beiträge: 704
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von curt123 » 04.10.2023 14:34:13

heisenberg hat geschrieben: ↑ zum Beitrag ↑
04.10.2023 13:46:50
Von wie vielen Dateien redest du denn?
Das würde ich auch ganz gerne mal wissen.

Ich habe hier diverse VMs mit Dateizahlen im Bereich von 1-8 Millionen. Das ist beim Backup schon etwas lästig, weil der rsync dann teilweise Stunden dauert, bis der das alles durchgenudelt hat, obwohl sich nichts verändert hat. Ich habe deswegen ein dort ein separates asynchrones Zusatzbackup umgesetzt.
Das kann mehr als 1 Million sein, ist aber für das aktuelle Problem wohl nicht relevant:

Die frisch ext4 (small) formatierte _leere_ 8 TB Platte (am USB-MyBook-Controller) wird nicht, oder erst nach 10 oder mehr Minuten eingehängt.
Gehäuse, Kabel etc. haben beim MyBook unter exFAT einwandfrei funktioniert, das Einlesen -etwa abfragen von "Eigenschaften" mit Thunar- hat lange gedauert.

Ich vermute, dass die Formatierung sich nicht mit HD-Firmware oder USB-Controller verträgt. Also wohl wieder exFAT oder erstmal ausbauen und anders anschliessen.
cosinus hat geschrieben: ↑ zum Beitrag ↑
04.10.2023 14:13:59
Hast du diesen Befehl genutzt?

Code: Alles auswählen

mkfs.ext4 -T small /dev/sdX
Ja. tune2fs:

Code: Alles auswählen

 tune2fs -l /dev/sdb
tune2fs 1.46.2 (28-Feb-2021)
tune2fs: Bad magic number in super-block while trying to open /dev/sdb
Found a gpt partition table in /dev/sdb
Nachtrag: hätte vielleicht /dev/sdb1 nehmen sollen..

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

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von cosinus » 04.10.2023 14:44:13

MSfree hat geschrieben: ↑ zum Beitrag ↑
04.10.2023 14:25:38
Mit blocksize = 1024 wäre ich bei heutigen Festplatte vorsichtig. Moderne Platten haben intern bereits 4096 Byte Blockgröße. Wenn du die Blöckgröße des Dateisystem kleiner wählst als die Blockgröße der Festplatte, wird das Dateisystem unweigerlich lahm.

Dazu muß ich sagen, daß ich bisher auch mit 14 Millionen von Dateien noch nie in irgendein Limit reingelaufen wäre. Ext4 wurde immer mit Defaults angelegt.
Stimmt. Kleiner als 4 kiB macht keinen Sinn bei modernen Platten. Aber den Parameter kann man ja in der mk2fs.conf auskommentieren oder auf 4096 setzen.

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von MSfree » 04.10.2023 15:05:57

cosinus hat geschrieben: ↑ zum Beitrag ↑
04.10.2023 14:44:13
Aber den Parameter kann man ja in der mk2fs.conf auskommentieren oder auf 4096 setzen.
oder einfach -T small weglassen.

curt123
Beiträge: 704
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von curt123 » 04.10.2023 15:14:03

Nun habe ich nochmal ext4 (ohne Parameter/default) formatiert. Momentan verhält sich die Platte wieder "normal", der MyBook USB-Controller kann vmtl. bleiben. Bleibt als Grund für eine Demontage evtl. noch die schlechte Kühlung in dem Plastikgehäuse.

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

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von cosinus » 04.10.2023 15:36:39

MSfree hat geschrieben: ↑ zum Beitrag ↑
04.10.2023 15:05:57
oder einfach -T small weglassen.
Dann hat er aber eine "falsche" inode_ratio :)

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von MSfree » 04.10.2023 15:46:04

cosinus hat geschrieben: ↑ zum Beitrag ↑
04.10.2023 15:36:39
Dann hat er aber eine "falsche" inode_ratio :)
Die Frage ist nur, wie relevant das ist. Inodes sind mir bisher jedenfalls nicht ausgegangen.
Auf meiner mit Defaultparameter formatierten 10TB ext4 Platte befinden sich eine Million Dateien, die 25% des Plattenplatzes belegen, 304 Millionen inodes von 305 Millionen sind noch frei.

Die Defaults sind in aller Regel gut genug. OK, wenn man auf der 10TB Platte über 2 Milliarden Dateien mit weniger als 4kB Größe ablegen will, reichen 305 Millionen inodes natürlich nicht aus (eine inode pro Datei) und man muß das Dateisystem anders formatieren.

Benutzeravatar
GregorS
Beiträge: 2626
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von GregorS » 04.10.2023 17:33:37

curt123 hat geschrieben: ↑ zum Beitrag ↑
04.10.2023 14:34:13
... Das kann mehr als 1 Million [Dateien] sein, ist aber für das aktuelle Problem wohl nicht relevant: ...
Erst fragst Du explizit nach einer Empfehlung für „viele kleine Dateien“ und jetzt soll genau das nicht relevant sein?!

Interessant ...

Gruß

Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

curt123
Beiträge: 704
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von curt123 » 04.10.2023 18:28:24

Danke für die Hinweise,

ext4 ist offenbar schonmal richtig.

GregorS hat geschrieben: ↑ zum Beitrag ↑
04.10.2023 17:33:37
curt123 hat geschrieben: ↑ zum Beitrag ↑
04.10.2023 14:34:13
... Das kann mehr als 1 Million [Dateien] sein, ist aber für das aktuelle Problem wohl nicht relevant: ...
Erst fragst Du explizit nach einer Empfehlung für „viele kleine Dateien“ und jetzt soll genau das nicht relevant sein?!
Hätte ich besser "akut" statt "aktuell" geschrieben?

Meine Frage war, ob ext4 für viele kleine Dateien bei relativ guter Ausnutzung des Speicherplatzes die beste Wahl sein mag.
Offenbar passt ext4, auch wenn ich fürs Indizieren, z.B.bei freefilesync, gerne mehr Tempo hätte.

Mein aktuelles oder akutes Problem aber war, dass die mit ext4/small formatierte leere Platte 15 Minuten fürs einhängen gebraucht hat, und dann den verfügbaren freien Platz nicht konsistent angezeigt hat. Jetzt mit ext4 ohne small scheint der Punkt gelöst, ich werde das aber noch weiter beobachten.

Benutzeravatar
GregorS
Beiträge: 2626
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von GregorS » 04.10.2023 18:44:12

curt123 hat geschrieben: ↑ zum Beitrag ↑
04.10.2023 18:28:24
... Das kann mehr als 1 Million [Dateien] sein, ist aber für das aktuelle Problem wohl nicht relevant: ...
Erst fragst Du explizit nach einer Empfehlung für „viele kleine Dateien“ und jetzt soll genau das nicht relevant sein?!
[/quote]
Hätte ich besser "akut" statt "aktuell" geschrieben?
[/quote]

Nein, das hätte – wenn überhaupt – nur ein Fitzelchen Unterschied gemacht. Du hattest aber explizit nach einer „Empfehlung“ für ein bei vielen kleinen Dateien performantem Dateisystem gefragt. Da ist doch genau das, die Anzahl der Dateien, relevant.
Mein aktuelles oder akutes Problem aber war, dass die mit ext4/small formatierte leere Platte 15 Minuten fürs einhängen gebraucht hat
Das ist allerdings heftig, auch wenn eine Platte mit 8(?) TB nicht gerade klein ist. Meine externe (USB-) Backup-Platte hat 4 TB, ist mit 08/15-ext4 formatiert und macht mir schon Falten auf die Stirn, wenn sie länger als 10 Sekunden zum Einhängen braucht.
... ich werde das aber noch weiter beobachten.
Das ist sowieso gut.

Gruß

Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

s_fischer
Beiträge: 106
Registriert: 03.11.2002 16:17:17

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von s_fischer » 04.10.2023 19:00:49

Bezüglich zu den Problemen bei deinem WD MyBook, habe ich was dazu bei WD gefunden. Muss aber auch nicht unbedingt bei dir zutreffen.
Thema: "My Book: Mit USB verbunden reagiert nicht mehr, nachdem es in den Energiesparmodus gewechselt ist"
Link: https://support-de.wd.com/app/answers/d ... -es-in-den

Evtl. gibt es für dein Modell eine aktuelle Firmware.

Was jetzt ext4 / btrfs betrifft, ja ext4 ist schneller. BTRFS ist ein CoW Dateisystem und durch die interne Struktur langsamer, als nicht CoW Systeme. Da kann man sich per Cache (bcache) behelfen.

Ich würde jetzt BTRFS auch nur dort einsetzen, wo man die Vorteile (Raid, Subvol ...) ausspielen kann. Jetzt als einzelne System SSD/HDD im PC/Laptop, oder extern, daher als Standardnutzung, macht es imho wenig Sinn.

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

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von cosinus » 04.10.2023 22:57:39

curt123 hat geschrieben: ↑ zum Beitrag ↑
04.10.2023 18:28:24
Mein aktuelles oder akutes Problem aber war, dass die mit ext4/small formatierte leere Platte 15 Minuten fürs einhängen gebraucht hat, und dann den verfügbaren freien Platz nicht konsistent angezeigt hat. Jetzt mit ext4 ohne small scheint der Punkt gelöst, ich werde das aber noch weiter beobachten.
Das kann an der zu kleinen Blockgröße gelegen haben. Eigentlich ist die nicht schädlich, denn die Festplatte arbeitet ja über den SATA-Controller ja mit den üblichen 512-Byte-Sektoren, aber intern eben mit 4096 Byte pro Sektor. Die Schreibgewindigkeit wird dadurch massiv einbrechen, aber das Einhängen kann dadurch normalerweise nicht so stark verzögert werden. Ich teste das morgen mal, Platten mit 4K-Sektoren hab ich genug.

s_fischer
Beiträge: 106
Registriert: 03.11.2002 16:17:17

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von s_fischer » 05.10.2023 10:44:24

Zu dem Thema ist mir noch was eingefallen, Hauke hatte mal in seinem Kanal "Nicht der Weisheit letzter Schluß" , einen Clip veröffentlicht, wo er seine Fotos auf einer externen HDD mit BTRFS sichern wollte.
Fotos auf Btrfs speichern? Lohnt sich das? - 01.08.22

Beim Durchgehen meiner Ideensammlung bin ich wieder auf die Stichworte zu meinen Btrfs-Tests gestoßen. Ich hatte die Idee, die Fotos meiner Digitalkameras auf einer mit Btrfs formatierten Festplatte zu speichern, da mir einige Funktionen des Dateisystems sehr vielversprechend vorkamen.
Welche Ergebnisse ich ermittelt habe und warum ich mich letzendlich gegen die Verwendung von Btrfs für meinen Einsatzzweck entschieden habe, erfahrt Ihr in diesem Video.
Link: https://www.youtube.com/watch?v=seLmmzEOfWU

Grüße Sven

wanne
Moderator
Beiträge: 7465
Registriert: 24.05.2010 12:39:42

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von wanne » 06.10.2023 12:51:51

Ich würde im Normalfall auch ext4 machen.
Aber es gibt noch ein paar kleine Vorteile von BTRFS in dem Szenario:
* BTRFS nutzt die Sektoren gleichmäßiger. Das verlängert die Haltbarkeit von USB-Sticks, die oft beschissenes wearleveling haben.
* insbesondere ältere USB-Sticks neigen zu Bitfehlern. Da bietet BTRFS den DUP-Mode, der alles doppelt, möglichst weit auseinander speichert. Bei "neueren" (nach ~2015) USB-Sticks sehe ich die Probleme nicht mehr so häufig.
* find -date oder ähnliche suchen ist meist vergleichsweise flott auf btrfs. Da kommt auch ext4 nicht dran. Dafür sind die eigentlichen Dateizugriffe auf kleine Dateien deutlich langsamer.
rot: Moderator wanne spricht, default: User wanne spricht.

curt123
Beiträge: 704
Registriert: 19.10.2018 12:49:35
Wohnort: NRW

Re: Dateisystem - ext4 für viele kleine Dateien?

Beitrag von curt123 » 09.10.2023 16:06:03

Die 8 TB USB-Platte, die der konkrete Anlass meiner Frage ist, kam mit exFAT Formatierung und hatte bei vielleicht 2,5 TiB an Dateien kaum noch freien Platz. In der Nutzung des verfügbaren Platzes werden btrfs oder ext4 schonmal besser sein, und die Datensicherheit mag auch höher ausfallen.

Eigentlich habe ich mich für ext4 entschieden. Allerdings interessiert mich doch, wie sehr bei BTRFS, @wanne, die "eigentlichen Dateizugriffe auf kleine Dateien deutlich langsamer" sind. Ich möchte ja auf der Platte nicht nur ganze Sicherungen anlegen und löschen, sondern auch mal im Detail lesen etc., auch löschen oder kopieren, verschieben.

Und, ob die Platzausnutzung nochmal deutlich besser sein kann als bei ext4.

https://ciksiti.com/de/chapters/1622-th ... linux-hint
Das Btrfs-Dateisystem ist ein Copy-on-Write (CoW)-Dateisystem und hat keine Journalunterstützung.
xviii. Unterzuordnung blockieren: Das Ext4-Dateisystem unterstützt keine Blockunterzuweisung.

Das Btrfs-Dateisystem unterstützt die Blockunterzuweisung.
https://en.wikipedia.org/wiki/Block_suballocation
tail packing can increase storage efficiency even more than twofold, compared to file systems without tail packing.

Antworten