Was passiert, wenn das Limit von 4 Milliarden Dateien in einer ext4-Partition überschritten wurde, zum Beispiel bei einer Übertragung von 5 Milliarden Dateien?
Was passiert, wenn das Limit von 4 Milliarden Dateien in einer ext4-Partition überschritten wurde, zum Beispiel bei einer Übertragung von 5 Milliarden Dateien?
Antworten:
Möglicherweise wird der Fehler "Kein Platz mehr auf dem Gerät" angezeigt:
# truncate -s 100M foobar.img
# mkfs.ext4 foobar.img
Creating filesystem with 102400 1k blocks and 25688 inodes
---> number of inodes determined at mkfs time ^^^^^
# mount -o loop foobar.img loop/
# touch loop/{1..25688}
touch: cannot touch 'loop/25678': No space left on device
touch: cannot touch 'loop/25679': No space left on device
touch: cannot touch 'loop/25680': No space left on device
Und in der Praxis haben Sie diese Grenze viel früher als "4 Milliarden Dateien" erreicht. Überprüfen Sie Ihre Dateisysteme mit beiden df -hund df -ifinden Sie heraus, wie viel Speicherplatz noch frei ist.
# df -h loop/
Filesystem Size Used Avail Use% Mounted on
/dev/loop0 93M 2.1M 84M 3% /dev/shm/loop
# df -i loop/
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/loop0 25688 25688 0 100% /dev/shm/loop
Wenn in diesem Beispiel Ihre Dateien im Durchschnitt nicht 4 KB groß sind, ist der Inode-Speicher viel früher als der Speicherplatz erschöpft. Es ist möglich , ein anderes Verhältnis (zu spezifizieren mke2fs -N number-of-inodesoder -i bytes-per-inodeoder -T usage-typewie definiert in /etc/mke2fs.conf).
git repackin jedem Git-Repository alle separaten Objekte in einer Packdatei zu kombinieren.
touch, echozeigen Sie auch einen wichtigen Punkt und ein häufig vorkommendes Missverständnis: Es ist möglich, eine Festplatte mit leeren Dateien zu füllen.
git repackkeine Funktionalität, es ist funktional immer noch das gleiche Git-Repo, tarwas es für viele Programme, die ein Projekt oder ein Git-Repository erwarten , unlesbar macht
Sobald das Limit erreicht ist, schlagen nachfolgende Versuche, Dateien zu erstellen, fehl ENOSPC, was darauf hinweist, dass das Zieldateisystem keinen Platz mehr für neue Dateien hat.
In dem von Ihnen beschriebenen Szenario wird die Übertragung normalerweise abgebrochen, sobald das Limit erreicht ist.