Przypuszczam, że problemem, jaki masz, nie jest to, że partycja sama zapełnia się i-węzłami, ale kończy się liczba i-węzłów w systemie plików. ext4 rezerwuje i-węzły statycznie podczas tworzenia systemu plików, ale można ustawić liczbę za pomocą opcjimkfs.ext4
:
-i bajty-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.
-N liczba-i-węzłów
Zastępuje domyślne obliczenie liczby i-węzłów, które powinny być zarezerwowane dla systemu plików (na podstawie liczby bloków i stosunku bajtów do i-węzłów). To pozwala użytkownikowi bezpośrednio określić liczbę pożądanych i-węzłów.
Podręcznik wyraźnie stwierdza, że stosunek liczby bajtów na i-węzeł nie może zostać zmieniony po utworzeniu FS, ale całkowita liczba zostanie przeskalowana, aby osiągnąć współczynnik, jeśli rozmiar FS zostanie zmieniony.
Możesz także ustawić rozmiar każdego i-węzła. Domyślnie jest to 256 bajtów w „większości” systemów plików, ale można ją zmniejszyć do 128 (domyślnie w „małych” systemach plików). Dodatkowa przestrzeń jest używana do przechowywania rozszerzonych atrybutów (np. Etykiet SELinux), więc jeśli nie potrzebujesz ich, powinno być bezpiecznie zmniejszyć rozmiar do minimum.
-I rozmiar i-węzła
Podaj rozmiar każdego i-węzła w bajtach. Wartość wielkości i-węzła musi być potęgą 2 większą lub równą 128.
df -i
powinien pokazywać liczbę przydzielonych i użytych i-węzłów. Przy domyślnych opcjach, jedna partycja 30 GB, na którą patrzyłem, miała jeden i-węzeł na każde 16 kB, ale jeśli twoje pliki są bardzo małe, możesz ustawić, powiedzmy, -i 4096
mieć jedną i-węzeł na każdy blok danych w systemie.
Jeśli twoje pliki są mniejsze niż 4096, możesz również chcieć zmniejszyć rozmiar bloku systemu plików, ponieważ wszystkie zwykłe pliki i tak wymagają jednego pełnego bloku danych. (To znaczy na ext4. Nie wiem, czy inne obecne systemy plików pakują małe pliki).
-b rozmiar bloku
Podaj rozmiar bloków w bajtach. Prawidłowe wartości wielkości bloku to 1024, 2048 i 4096 bajtów na blok. Jeśli zostanie pominięty, rozmiar bloku jest heurystycznie określony przez rozmiar systemu plików i oczekiwane użycie systemu plików (patrz opcja -T).
mkfs.ext4
ma również -T <type>
opcję, która może być użyta jako skrót dla niektórych lub wszystkich z nich. Ustawienia są /etc/mke2fs.conf
włączone, co w moim Debianie czyni np. mkfs.ext4 -T small
Równoważnym
mkfs.ext4 -b 1024 -I 128 -i 4096
Co może nie być złym zestawem opcji dla wielu małych plików (i bez xattrów).
Jeśli twoje pliki są mniejsze niż jeden KB, system plików może nie być najlepszym sposobem na zapisanie danych, ale może warto rozważyć coś takiego jak baza danych lub system specyficzny dla aplikacji.
mkfs.ext4 -t news
najlepszymi wynikami. Sugeruję również przetestowanie - utwórz (na przykład na lvm lub na sprzężeniu zwrotnym) każdy z plików po kolei i zacznij kopiować do niego swoje prawdziwe pliki, aż się zapełni. Kiedy się zapełni, zróbdf -i
(lubfind | wc -l
), aby dowiedzieć się, który z nich przechował większość twoich plików - w ten sposób będziesz wiedział na pewno.