LINUX.ORG.RU

Логика размещения файлов в ФС

 , ,


0

4

По какой логике заполняются файлами линуксовые ФС вроде ext4 и xfs — по порядку, от начала раздела к концу, или данные могут писаться куда угодно, хоть в начало, хоть в конец, хоть в середину?

Вроде Btrfs заполняется данными непоследовательно, а у более традиционных ФС с этим как?

Deleted

по порядку, от начала раздела к концу

Это вот щас про FAT было. extN отличается как по структуре «файлвой» и «инодной» таблицам, так и по размещению самих данных.

anonymous
()
Ответ на: комментарий от anonymous

Ну, что по структуре отличается - это ясно, а по логике заполнения данными?

Я помню на винде когда запускаешь дефрагментатор на NTFS - там обычно куча данных в начале раздела, изрядная порция в середине, и ошмётки то там, то сям разбросаны.

А вот в Линуксах как - хз. Может, есть какая-нибудь тулза, которая так же нарисовала бы графическую карту расположения данных на ext/xfs?

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

А вот в Линуксах как - хз.

Здесь Ринат нужен. Как он я разъяснить не смогу. Жди, когда он откликнется.

anonymous
()
Ответ на: комментарий от Deleted

уже поставил из aur

И всё-таки зря Ринат её к gtk прикрутил, лучше б к ncurses и libpng. Потеря интерактивности не принципиальна.

anonymous
()
Ответ на: комментарий от Deleted

На последовательное заполнение как-то непохоже.

Ну, там же должен быть какой-то чудесный алгоритм, который, якобы, минимизирует фрагментирование ;)

gag ★★★★★
()
Ответ на: комментарий от Deleted

На последовательное заполнение как-то непохоже

Насколько я помню, там есть группы и каждая группа заполняется по отдельности. Это сделано, чтобы группы ложились на цилиндры и чтение-запись в группу т.о. происходит без перемещения головок.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от no-such-file

Насколько я помню, там есть группы и каждая группа заполняется по отдельности

Тоже что-то такое припоминаю

Deleted
()
Ответ на: комментарий от gag

чудесный алгоритм, который, якобы, минимизирует фрагментирование

Чушь собачья! Задача по размещению данных на диске разрабами extX ставилась совсем по другому. «минимизирует фрагментирование» - это уже маркетологи прикрутили.

anonymous
()
Ответ на: комментарий от Deleted

Вообще я так понимаю, что дизайн ext2 был частично позаимствован с ufs из bsd. Последняя хорошо описана в литературе. Или тебе вот прям конкретика ext2-4 интересует?

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от Deleted

раскидывает ли ext4 данные по разделу

Меня в этом вопросе больше интересовало насколько эффективно размещается «файловая» и «инодная» таблицы на диске. И есть ли тулзы, способные повлиять на это размещение. Ответа так и не нашёл.

anonymous
()
Ответ на: комментарий от anonymous

Согласно этому:

The third trick that ext4 (and ext3) uses is that it tries to keep a file's data blocks in the same block group as its inode.

The fourth trick is that all the inodes in a directory are placed in the same block group as the directory, when feasible

Иноды рядом с данными хранятся.

Deleted
()
Ответ на: комментарий от Deleted

Иноды рядом с данными хранятся.

Да, но эффективно ли? И возможность повлиять на размещение?

anonymous
()
Ответ на: комментарий от anonymous

e4defrag не применял

а в чем подвох? я применял несколько раз, но только сканировал и он всегда говорит, что ничего дефрагментировать не надо...

amd_amd ★★★★★
()
Ответ на: комментарий от amd_amd

а в чем подвох?

«Нарушает» «равномерное» размещение файлов. Правда не сильно.

anonymous
()

Если нужно растащить фильм ffmpeg'ом на кадры и потом последовательно скормить их какой-нибудь софтине, рекомендую xfs. Extы на огромном количестве файлов начинают неистово тормозить даже при, казалось бы, линейном чтении.

Deleted
()
Ответ на: комментарий от Deleted

Написано же,

1) старается размещать данные рядом с инодами

2) старается группировать иноды на основе каталогов

3) откладывает распределение пространства насколько возможно, до сброса буферов

Так что да, заполняет не последовательно.

Deleted
()
Ответ на: комментарий от Deleted

Просветы - очевидно неиспользуемые иноды в каждой группе блоков. Называться это может по-разному в зависимости от ФС (cylinder groups, allocation groups, block groups), но суть одна.

Про XFS читал, что она каждую новую директорию создает в новой allocation-группе.

bigbit ★★★★★
()
Ответ на: комментарий от Deleted

Extы на огромном количестве файлов начинают неистово тормозить

А вот здесь как раз и возникают вопросы эффективного размещения таблиц. Если ffmpeg-ом добавлять в «папку» по «кадру» (как собстно и происходит), то влегкую получаем «тормоза». А если скопировать «тормознутую папку», то в одних «случаях» тормоза продолжают наблюдаться, а в других - нет.

anonymous
()

Любая read-write ФС куда угодно может записывать. Иначе быстро получишь «no space left on device», который не будет лечиться даже удалением файлов :)

anonymous
()

Насколько помню из опыта работы на древних дисках под виндой, NTFS, после того как раздел хорошо заполнится файлами, фрагментировала не только файлы, но для полного счастья еще и $MFT. Отложенного распределения кластеров не было, а встроенный дефрагментатор оставлял промежутки после себя. Всё это приводило к комбо-эффекту, и если однажды запустить дефрагментатор, пользователь подсаживался на дефрагментатор навсегда.

Жуткие воспоминания. :D

Боже, как хорошо жить в будущем!

Deleted
()
Ответ на: комментарий от anonymous

В обоих случаях свежеотформатированные разделы, ессно. При первых признаках фрагментации магия работать перестаёт.

Deleted
()
Ответ на: комментарий от Deleted

При первых признаках фрагментации магия работать перестаёт.

Очередная чушь про фрагментацию! Дайте тулзу, способную рихтовать «файловую» и «инодную» таблицы, и я буду в Вас с вашей дефрагментацией пальцем тыкать и смеяться во весь голос.

anonymous
()
Ответ на: комментарий от Deleted

Так что да, заполняет не последовательно

Ну там действительно не ясен такой момент, что если ты кидаешь файлы в одну директорию и группа блоков в 128М заполнилась. Как выбирается следующая группа блоков? Хотя, если такие подробности нужны, то надёжнее всего просто глянуть исходники.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от anonymous

Тебе надо - ты и тыкай, я-то тут каким боком? Магия работает только один раз, при последовательной записи на чистый раздел. Любые удаления/изменения её довольно быстро херят.

Deleted
()
Ответ на: комментарий от Deleted

Любые удаления/изменения её довольно быстро херят.

Ну мы примерно об одном и том же говорим в принципе. Только я говорю о том, что мне плевать как данные располагаются на диске, лишь бы таблицы располагались эффективно, а ты упираешься в расположение самих данных.

anonymous
()
Ответ на: комментарий от anonymous

Вот, кстати, man mke2fs:

packed_meta_blocks[= <0 to disable, 1 to enable>]
Place the allocation bitmaps and the inode table at the beginning of the disk. This option requires that the flex_bg file system feature to be enabled in order for it to have effect, and will also create the journal at the beginning of the file system. This option is useful for flash devices that use SLC flash at the beginning of the disk. It also maximizes the range of contiguous data blocks, which can be useful for certain specialized use cases, such as supported Shingled Drives.

anonymous
()
Ответ на: комментарий от anonymous

вот так

e4defrag -c /dev/sdXX
сканирует и по результатам сканирования выдает вердикт, но вердикт всегда одинаковый - дефрагментация не требуется

amd_amd ★★★★★
()
Ответ на: комментарий от anonymous

Да, но эффективно ли?

С т.з. скорости наверное да. А вот с т.з. надёжности наверное нет.

Deleted
()
Ответ на: комментарий от anonymous

я спрашивал в чем подвох при дефрагментации с помощью e4defrag и получил ответ, что он только хуже делает, не знаю так это или нет, но приму к сведению...

amd_amd ★★★★★
()
Ответ на: комментарий от amd_amd

е4дефраг убирает фрагментацию файлов. свободное место остается фрагментированным.
а подвох стандартен - если во время дефрагментации будут зависания али что еще, то файловую систему может скушать известный северный зверек. ибо действия не журналированы.

pfg ★★★★★
()
Ответ на: комментарий от pfg

а подвох стандартен - если во время дефрагментации будут...

Он же ничего не дефрагментирует на самом деле, а тупо создаёт новый файл в надежде, что он будет удачнее расположен чем старый, и переписывает туда содержимое.

gag ★★★★★
()
Последнее исправление: gag (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.