Maksymalny limit i-węzłów systemu plików ext4 - czy ktoś może wyjaśnić?

16

Ostatnio mieliśmy problem z tym, że jeden z systemów plików ext4 wydawał się nie być w stanie obsłużyć bardzo dużej liczby plików, more than 6mln in this casepomimo wystarczającej ilości miejsca. Czy to 6mlnmaksymalna liczba, jaką system plików ext4 może mieć po sformatowaniu ze wszystkimi ustawieniami domyślnymi? Próbowałem to zrobić w Google, ale nie otrzymałem ostatecznej odpowiedzi. Czy ktoś tutaj może zasłonić to światłem? Twoje zdrowie!!

MacUsers
źródło

Odpowiedzi:

20

Nie ma domyślnego jako takie dla ext4, to zależy od wielkości urządzenia i opcji wybranych podczas tworzenia. Możesz sprawdzić istniejące limity za pomocą

tune2fs -l /path/to/device

Na przykład,

root@xwing:~# tune2fs -l /dev/sda1
tune2fs 1.42 (29-Nov-2011)
Filesystem volume name:   <none>
Last mounted on:          /

[lots of stuff snipped]

Inode count:              1277952
Free inodes:              1069532
Inodes per group:         8192
Inode blocks per group:   512

[lots of stuff snipped]

Zgodnie z man mkfs.ext4

-i bajtów na i-węzeł

Określ stosunek bajtów / i-węzłów. mke2fs tworzy i-węzeł dla każdego bajtu na bajt miejsca na dysku. Im większy stosunek bajtów do i-węzłów, tym mniej powstanie i-węzłów. Ta wartość na ogół nie powinna być mniejsza niż rozmiar bloku systemu plików, ponieważ w takim przypadku wykonano by więcej i-węzłów, niż można kiedykolwiek użyć. Ostrzegamy, że po utworzeniu nie jest możliwe zwiększenie liczby i-węzłów w systemie plików, więc ostrożnie decyduj o prawidłowej wartości tego parametru.

EightBitTony
źródło
6

To zależy od tego, jak sformatowałeś system plików. Za pomocą tej funkcji tune2fs -l <device>możesz znaleźć liczbę i-węzłów w urządzeniu, prawdopodobnie w twoim przypadku około 6 milionów. Każdy plik lub katalog używa i-węzła.

O ile mi wiadomo, jedyną możliwością zwiększenia liczby i-węzłów jest ponowne sformatowanie systemu plików. Za pomocą -iparametru do mkfsmożna określić stosunek bajtów do i-węzłów. Wartość domyślna jest zdefiniowana w /etc/mke2fs.conf(w moim systemie: 16384).

Większy stosunek bajtów / i-węzłów definiuje mniejszą liczbę i-węzłów, a mniejszy jeden więcej i-węzłów. Wartości domyślne działają dobrze w większości przypadków, ale jeśli masz dużą liczbę małych plików, możesz przekroczyć limit i może być konieczne sformatowanie systemu plików przy użyciu mniejszego stosunku bajtów / i-węzłów.

Oliver
źródło