Jak działa rozmiar bloku systemu plików?


11

Wszystkie systemy plików Linux mają rozmiar bloku 4 KB. Powiedzmy, że mam 10 MB miejsca na dysku twardym. Oznacza to, że mam dostępne 2560 bloków i powiedzmy, że skopiowałem 2560 plików, każdy o rozmiarze 1kb. Każdy blok 1 kb zajmie 1 blok, chociaż nie wypełnia całego bloku.

Cały mój dysk jest teraz zapełniony, ale nadal mam 2560 x 3 KB wolnego miejsca. Jeśli chcę zapisać inny plik, powiedzmy 1 MB, czy system plików pozwoli mi przechowywać? Czy będzie pisać w wolnej przestrzeni pozostawionej w poszczególnych blokach? Czy istnieje jakaś koncepcja rozwiązania tego problemu?

Byłbym wdzięczny za wyjaśnienia. Z góry dziękuję


OK, 2560 plików, każdy ma wielkość 1 kb, czyli 2560 * 0,001 mb = 2,56 mb. Każdy plik 1kb powinien zajmować około 1/4 bloku, ponieważ 1000 * 4 = 4000, prawda? Rozmiar bloku to 4096, więc potrzebujesz 4 plików, aby wypełnić blok. Plik 1 MB kosztuje zatem 1000000/4096 = 244 bloki.
Sergiy Kolodyazhnyy

Odpowiedzi:


3

Domyślny rozmiar bloku wynosił 512 bajtów od pierwszego Linuxa. Z wyjątkiem do niedawna wprowadzano 4k wielkości bloków, aby zaspokoić stale rosnący rozmiar dysków. Jest to nawet prawie podyktowane sprzętem dyskowym (zobacz więcej: /unix/178899/optimizing-logical-sector-size-for-physical-sector-size-4096-hdd ).

Jednak w przypadku konkretnego pytania: masz rację, że wszystkie pliki marnują niewykorzystane bajty ostatniego bloku na wielu typach systemów plików, co jest szczególnie marnotrawstwem dla małych plików. Ale btfrs i reiserfs wydają się być w stanie sobie poradzić, zgodnie z https://en.m.wikipedia.org/wiki/Block_suballocation


1
  1. Systemy plików mogą mieć rozmiar bloku od 512 do (zwykle) 65536 bajtów. Rozmiar bloku można określić jako opcję mkfs.xxx. Domyślny rozmiar bloku w większości systemów plików Linux - 4096 bajtów.

  2. Niektóre systemy plików obsługują pakowanie ogonów i / lub przydzielanie podbloków. ext2 / 3/4 - robi, xfs - nie. Jeśli planujesz wypełnić partycję kilkoma małymi plikami, możesz zmniejszyć zmarnowane miejsce „ogona”, zmniejszając rozmiar bloku do 512 lub 1024.

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.