Forum: PC Hard- und Software [Linux] Maximale Anzahl Dateien pro Verzeichnis bei ext4


von Peter D. (pdiener) Benutzerseite


Lesenswert?

Hallo zusammen,

wie viele Dateien kann man auf einem ext4 System pro Verzeichnis 
anlegen?
Gibt es da eine Begrenzung oder ist das nur durch die gesamte Anzahl 
verfügbarer Inodes begrenzt?

Die Frage bezieht sich auf eine Standardinstallation von Ubuntu 10.04 
LTS mit 160 GB Systempartition.

Hintergrund ist eine Serienfotoanlage, es wird alle 10 Minuten ein Bild 
einer Baustelle aufgenommen und mit eindeutigem Zeitstempel in ein 
Verzeichnis kopiert. Später soll mit ffmpeg ein Zeitraffervideo daraus 
erstellt werden. Damit ffmpeg automatisch die Bilder einlesen kann, ist 
es am einfachsten, wenn alle jpeg-Dateien in einem Verzeichnis liegen. 
Das Bauvorhaben kann bis zu 3 Jahre dauern, ich erwarte also bis zu 
160000 Bilder.

Was passiert eigentlich, wenn man zu viele Dateien anlegt? Bleibt das 
System stabil oder gibts dann ein Problem? Wenn nichts schlimmes 
passiert, könnte ich das ja ausprobieren.

Vielleicht weiß das ja zufällig jemand.


Viele Grüße,

Peter

von Hc Z. (mizch)


Lesenswert?

Eine solche Beschränkung ist mir eigentlich nur vom Ur-FAT bekannt, wo 
die Größe des Wurzelverzeichnisses begrenzt war, die anderer 
Verzeichnisse aber nur den allgemeinen Beschränkungen (s.u.) unterlag.

Modernere Dateisysteme kennen keine Begrenzung außer der maximalen 
Dateigröße (die auch für Verzeichnisse gilt), der Zahl der Inodes (so es 
sie oder etwas Vergleichbares gibt) und der Anzahl der 
Unterverzeichnisse (wegen des Link-Counts).

von Yalu X. (yalu) (Moderator)


Lesenswert?

Peter Diener schrieb:
> Gibt es da eine Begrenzung oder ist das nur durch die gesamte Anzahl
> verfügbarer Inodes begrenzt?

M.W. und nach dem, was eine schnelle Internetrecherche hergibt,
letzteres. Auf dem Ext3-Filesystem auf meinem PC kann ich die 160000
Dateien ohne Probleme anlegen. Ext4 habe ich keins da, auf dem ich das
testen könnte.

Nur die Anzahl der Unterverzeichnisse innerhalb eines Verzeichnisses ist
begrenzt, nämlich auf 64000 bei Ext4 und 32000 bei Ext3.

Wenn man versucht, dieses Maximum zu überschreiten, passiert aber nichts
Schlimmes, es kommt lediglich die Meldung:

  mkdir: cannot create directory `foo': Too many links

von mano (Gast)


Lesenswert?

ich würde es mit einem einfachen shell-Skript ausprobieren.

Script könnte so aussehen (ungetestet)
1
#! /bin/sh
2
3
COUNT=0
4
5
while test $COUNT -le 160000
6
do
7
  touch $COUNT.test
8
  COUNT=`expr $COUNT + 1`
9
done
10
11
echo all done

von g457 (Gast)


Lesenswert?

..für Bruteforceausprobierer geht das (in bash-Syntax) auch in einem 
Einzeiler:

$ for ((i=0; i<160000; i++)) ; do touch ${i}-test ; done

Zum Zwecke der Vereinfachung würde ich die Dateien nicht in einem 
einzigen Verzeichnis zusammenfassen, sondern z.B. jeden Monat eines in 
der Form 'yyyy-mm' oder so. Mit ein bisschen Schellschgribbt ist das 
kein Problem. Und man kann die Dateien nachher trotzdem leicht 
chronologisch sortieren lassen.

HF und machts nix kaputt

von melt (Gast)


Lesenswert?

Es gibt eine theoretische Grenze, aber die liegt bei mehr als 100 
Billionen Dateien, also keine Sorge ;)

von Peter D. (pdiener) Benutzerseite


Lesenswert?

Vielen Dank für die Antworten!

Ich denke, ich kann einfach mal 160000 leere Dateien zum Test anlegen, 
wenn ich die nächste Wartung mache.

>Zum Zwecke der Vereinfachung würde ich die Dateien nicht in einem
>einzigen Verzeichnis zusammenfassen, sondern z.B. jeden Monat eines in
>der Form 'yyyy-mm' oder so. Mit ein bisschen Schellschgribbt ist das
>kein Problem. Und man kann die Dateien nachher trotzdem leicht
>chronologisch sortieren lassen.

Das wollte ich ursprünglich auch machen, aber ffmpeg braucht alle 
Quelldateien durchgehend nummeriert in einem Verzeichnis. Oder hat da 
jemand eine Idee?

Grüße,

Peter

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Erst pro Verzeichnis ein Video erstellen und dann alle Video 
zusammenfügen.

von (prx) A. K. (prx)


Lesenswert?

Es könnte sich allerdings herausstellen, dass solche Dirs etwas 
abbremsen, je nachdem was man so treibt. Beispielsweise sobald man 
solche Monster in einem Browser/Explorer zu sehen kriegt.

von BillX (Gast)


Lesenswert?

Hallo!

reichen die 160 GB denn für die 160000 Bilder ?

von g457 (Gast)


Lesenswert?

> Das wollte ich ursprünglich auch machen, aber ffmpeg braucht alle
> Quelldateien durchgehend nummeriert in einem Verzeichnis. Oder hat da
> jemand eine Idee?

Ein Stapel Symlinks in einem eigenen Verzeichnis regelt.. kann man auch 
von einem Einzeiler anlegen lassen:

$ i=0 ; find /source/of/evil/ -type f -name "*.jpg" | while read f ; do 
ln -s "${f}" $(printf "%06d.jpg" $i) ; let i=i+1 ; done

HF

von g457 (Gast)


Lesenswert?

Aso Nachtrag falls es so noch nicht sortiert ist: sort regelt :-)

$ i=0 ; find /source/of/evil/ -type f -name "*.jpg" | sort | while read 
f ; do ln -s "${f}" $(printf "%06d.jpg" $i) ; let i=i+1 ; done

Hab ich schon mal erwähnt dass Bash und GNU toll ist?

von Peter D. (pdiener) Benutzerseite


Lesenswert?

>Erst pro Verzeichnis ein Video erstellen und dann alle Video
>zusammenfügen.

Ja, die Lösung kenn ich schon, so hab ich das bei meinem vorletzten 
Zeitrafferprojekt gemacht. Wenn technisch nichts dagegen spricht, fahre 
ich das aber lieber über ein Verzeichnis.

>Es könnte sich allerdings herausstellen, dass solche Dirs etwas
>abbremsen, je nachdem was man so treibt. Beispielsweise sobald man
>solche Monster in einem Browser/Explorer zu sehen kriegt.

Das ist mir auch schon bekannt, alle meine bisherigen Zeitrafferprojekte 
sind ausnahmslos auf Windows XP gelaufen, das hier ist das erste, das 
komplett auf Ubuntu läuft. Mit Windows hat man so ab etwa 10000 Bildern 
schon erhebliche Wartezeiten, bis das im Explorer angezeigt wird. 
Backups mache ich momentan mit einem Mac Book und OS X 10.4.9, da gibts 
eigentlich kaum Verzögerungszeiten.

Ziel ist es, dass die Fotos bis zur Erstellung des Films auf dem Rechner 
bleiben, es wird alles notwendige dort durchgeführt. Dunkle Fotos 
(Nachtaufnahmen) und Wochenendaufnahmen werden nicht mit in den Film 
aufgenommen. Eventuell bastel ich mir noch eine Datumsanzeige, die mit 
in die Bilder gemischt wird.

Performanceprobleme hab ich bis jetzt noch nicht, es sind schon etwa 
10000 Bilder gemacht und das wird alles ganz flüssig angezeigt.


Grüße,

Peter

von Peter D. (pdiener) Benutzerseite


Lesenswert?

@ g457:

Die Idee mit den Links ist gut, ich hab das bisher durch Umbenennen der 
benötigten Bilder und Löschen der unbenötigten gelöst.

Die 160 GB reichen für alle Bilder, ein Bild hat zwischen 300 und 800 
kB.

von hp-freund (Gast)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.