Как размер блока файловой системы работает?

Все файловые системы Linux имеют размер блока 4 КБ. Скажем, у меня есть 10 МБ устройства хранения данных жесткого диска. Это означает, что я имею 2 560 блоков в наличии, и скажем, я скопировал 2 560 файлов каждый имеющий 1 КБ размера. Каждый блок на 1 Кбит займет 1 блок, хотя он не заполняет весь блок.

Таким образом, мой весь диск теперь заполнен, но тем не менее у меня есть 2560x3 КБ свободного пространства. Если я хочу хранить другой файл, говорят, что 1 МБ файловая система позволит мне хранить? Это запишет в свободном пространстве, оставленном в отдельных блоках? Там какое-либо понятие решает эту проблему?

Я ценил бы некоторое разъяснение.Заранее спасибо

8
задан 28 June 2015 в 02:36

2 ответа

Размер блока по умолчанию составлял 512 байтов начиная с первого Linux когда-либо. Кроме до недавнего времени 4k размеры блока, где представлено для питания когда-либо увеличивающийся размер дисков. Это на самом деле даже почти диктуют дисковые аппаратные средства (см. больше: https://unix.stackexchange.com/questions/178899/optimizing-logical-sector-size-for-physical-sector-size-4096-hdd).

все же для Вашего конкретного вопроса: Вы правы, что все файлы тратят впустую неиспользованные байты последнего блока на многих типах файловых систем, который особенно расточителен для маленьких файлов. Но btfrs и reiserfs, кажется, в состоянии справиться, acvording к https://en.m.wikipedia.org/wiki/Block_suballocation

1
ответ дан 23 November 2019 в 05:56
  1. Файловые системы могут иметь размер блока от 512 до (обычно) 65536. Размер блока мог быть указан как mkfs.xxx опция. Значение по умолчанию blocksize большей части Linux FSS - 4096.

  2. Некоторые файловые системы поддерживают выделение подблока и/или упаковка хвоста. ext2/3/4, xfs AFAIK - нет. Если Вы планируете заполнить раздел несколькими маленькими файлами, Вы могли бы уменьшить потраченное впустую пространство "хвоста" путем уменьшения blocksize к 512 или 1024.

0
ответ дан 23 November 2019 в 05:56

Другие вопросы по тегам:

Похожие вопросы: