Як працює розмір блоку файлової системи?


11

Усі файлові системи Linux мають розмір блоку 4 кб. Скажімо, у мене є 10 Мб жорсткого диска. Це означає, що у мене є 2560 блоків, і скажімо, я скопіював 2560 файлів, кожен з яких має розмір 1 кг. Кожен блок 1 кб займатиме 1 блок, хоча він не заповнює весь блок.

Отже, весь мій диск зараз заповнений, але все ж у мене є 2560x3kb вільного місця. Якщо я хочу зберегти інший файл скажімо 1mb, чи дозволить файлова система мені зберігати? Чи буде це записано у вільному просторі, залишеному в окремих блоках? Чи є яка-небудь концепція, що вирішує цю проблему?

Я би вдячний деяким уточненням. Спасибі заздалегідь


Гаразд, 2560 файлів, кожен - 1 кб, це 2560 * 0,001 мб = 2,56 мб. Кожен файл 1кб повинен займати приблизно 1/4 блоку, тому що 1000 * 4 = 4000, правда? А розмір блоку - 4096, тому для заповнення блоку вам потрібно 4 файли. Файл 1mb, тоді, коштуватиме вам 1000000/4096 = 244 блоки.
Сергій Колодяжний

Відповіді:


3

За замовчуванням розмір блоку становив 512 байт з першого Linux коли-небудь. За винятком донедавна розмірів блоків 4k, де вони запроваджені для задоволення постійно зростаючих розмірів дисків. Це насправді навіть майже продиктовано апаратним забезпеченням диска (див. Докладніше: /unix/178899/optimizing-logical-sector-size-for-physical-sector-size-4096-hdd ).

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


1
  1. Файлові системи можуть мати розмір блоку від 512 до (зазвичай) 65536 байт. Розмір блоку можна вказати як параметр mkfs.xxx. За замовчуванням розмір блоків у більшості файлових систем Linux - 4096 байт.

  2. Деякі файлові системи підтримують розподіл хвостів та / або виділення субблоку. ext2 / 3/4 - робить, xfs - не робить. Якщо ви плануєте заповнити розділ кількома невеликими файлами, ви можете зменшити витрачений "хвостовий" простір, зменшивши розмір блоків до 512 або 1024.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.