funkcja bigfile przy tworzeniu systemu plików


17

Czy przydatne jest użycie opcji -T duży plik przy tworzeniu systemu plików dla partycji z dużymi plikami, takimi jak wideo i audio w formacie flac?

Przetestowałem tę samą partycję z tą flagą i bez niej, i używając tune2fs -l [partycja] , sprawdziłem w „Funkcjach systemu plików”, które mają włączone „duży_plik”. Nie jest więc konieczne użycie dużego pliku -T-flag ?


1
Zauważ, że byłem zdezorientowany między large_file (dostałem w tune2fs) i bigfile; wygląda na to, że są argumentami za różnymi rzeczami.
Marc

Odpowiedzi:


24

-T largefileFlag dostosowuje ilość węzłów, które są przydzielone do stworzenia systemu plików. Po przydzieleniu ich liczby nie można zmienić (przynajmniej dla ext2 / 3, nie do końca pewny co do ext4). Domyślnie jest to jeden i-węzeł na każde 16 KB miejsca na dysku. -T largefileczyni go jednym węzłem na każdy megabajt.

Każdy plik wymaga jednego i-węzła. Jeśli nie masz już i-węzłów, nie możesz tworzyć nowych plików. Ale te statycznie przydzielone i-węzły również zajmują miejsce. Możesz oczekiwać zaoszczędzenia około 1,5 gigabajta na każde 100 GB dysku przez ustawienie -T largefile, w przeciwieństwie do ustawienia domyślnego. -T largefile4(jeden i-węzeł na 4 MB) nie ma tak dramatycznego efektu.

Jeśli masz pewność, że średni rozmiar plików przechowywanych na urządzeniu będzie większy niż 1 megabajt, to ustaw wszystkie parametry -T largefile. Z radością używam go na partycjach pamięci i uważam, że nie jest to zbyt radykalne ustawienie.

Jeśli jednak rozpakujesz bardzo duży plik źródłowy wielu plików (pomyśl o setkach tysięcy) na tę partycję, możesz stracić i-węzły dla tej partycji. W tej sytuacji niewiele można zrobić poza wybraniem innej partycji do rozpakowania.

Możesz sprawdzić liczbę i-węzłów dostępnych w systemie plików na żywo za pomocą dumpe2fspolecenia:

# dumpe2fs /dev/hda5
[...]
Inode count:              98784
Block count:              1574362
Reserved block count:     78718
Free blocks:              395001
Free inodes:              34750

Tutaj nadal mogę utworzyć 34 tysiące plików.

Oto, co mam po zrobieniu mkfs.ext3 -T largefile -m 0na partycji o pojemności 100 GB:

Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/loop1              102369       188    102181   1% /mnt/largefile
/dev/loop2              100794       188    100606   1% /mnt/normal

Wersja z dużymi plikami ma 102 400 i-węzłów, podczas gdy normalny utworzył 6 553 600 i-węzłów i zaoszczędził 1,5 GB.

Jeśli masz dobrą wskazówkę co do rozmiaru plików, które zamierzasz umieścić w systemie plików, możesz dokładnie wyregulować liczbę i-węzłów bezpośrednio za pomocą -iprzełącznika. Ustawia stosunek bajtów na i-węzeł. Zyskałbyś 75% oszczędności miejsca, gdybyś go użył -i 65536, wciąż będąc w stanie stworzyć ponad milion plików. Generalnie kalkuluję, aby zachować co najmniej 100 000 i-węzłów zapasowych.


fajna odpowiedź, ale tam, gdzie powiedziałeś: „i zaoszczędziłem 1,5 GB.” powinieneś powiedzieć „ale wykorzystałeś 1,5 GB miejsca na dodatkowe i-węzły”. Sprawiasz, że brzmi to tak, jakby normalny tryb tworzył więcej i-węzłów, a także pozostawiał więcej wolnego miejsca na dysku.
localhost

„Generalnie liczę, aby zachować co najmniej 100 000 i-węzłów zapasowych”. - dlaczego? Czy na pewno 0 zapasowych (i 0 więcej potrzebnych) jest optymalne? Czy naprawdę martwisz się, że możesz stracić 100 000 na liczbie plików lub katalogów?
OJFord

4

Myślę, że mieszacie dwie zupełnie różne i niezależne koncepcje.

large_fileFunkcji, które można zobaczyć na wyjściu dumpe2fs oznacza, że ten system plików może przechowywać plików większych niż 2 GiB, myślę, że jest ona ustawiona automatycznie przez współczesnych jądrach. Nie ma to nic wspólnego z -Topcją mke2fs.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.