функция largefile при создании файловой системы

Красные пакеты разработки шляпы обычно заканчиваются в "-devel"

У Вас была удача с dbus-devel?

17
16.07.2012, 11:35
2 ответа

-T largefile флаг корректирует сумму inodes, которые выделяются при создании файловой системы. После того, как выделенный, их число не может быть скорректировано (по крайней мере, для ext2/3, не полностью уверенного в ext4). Значение по умолчанию является одним inode для каждого 16K дискового пространства. -T largefile делает это одним inode для каждого мегабайта.

Каждый файл требует одного inode. Если Вы не имеете inodes в запасе, Вы не можете создать новые файлы. Но они статически выделили inodes, занимают место, также. Можно ожидать сохранять приблизительно 1,5 гигабайта для каждых 100 ГБ диска путем установки -T largefile, в противоположность значению по умолчанию. -T largefile4 (один inode на 4 МБ), не имеет такого сильного воздействия.

Если Вы уверены, что средний размер файлов, хранивших на устройстве, будет выше 1 мегабайта, то любой ценой, установить -T largefile. Я счастливо использую его на своих разделах устройства хранения данных и думаю, что это не является слишком радикальным из установки.

Однако при распаковке очень большого источника tarball многих файлов (думайте сотни тысяч) к тому разделу у Вас есть шанс исчерпывания inodes для того раздела. Существует мало, можно сделать в той ситуации кроме выбора другого раздела к untar к.

Можно проверить, сколько inodes Вы имеете в наличии в живой файловой системе с dumpe2fs команда:

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

Здесь, я могу все еще создать 34 тысячи файлов.

Вот то, что я получил после выполнения mkfs.ext3 -T largefile -m 0 на разделе на 100 ГБ:

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

largefile версия имеет 102 400 inodes, в то время как нормальный создал  6 553 600 inodes и сохранил 1,5 ГБ в процессе.

Если у Вас есть хорошая подсказка о том, какие файлы размера Вы собираетесь поставить файловую систему, можно подстроить сумму inodes непосредственно с -i переключатель. Это устанавливает байты на inode отношение. Вы получили бы 75% сбережений пространства, если бы Вы использовали -i 65536 в то время как все еще способность создать более чем миллион файлов. Я обычно вычисляю для хранения по крайней мере 100 000 запчастей inodes.

24
27.01.2020, 19:47
  • 1
    , но где Вы сказали, "и сохранили 1,5 ГБ в процессе". Вы должны говорить, "но использовали 1,5 ГБ пространства для дополнительного inodes". Вы заставляете его казаться, что нормальный режим создал больше inodes и также оставил больше свободного пространства на диске. –  localhost 30.08.2017, 07:34
  • 2
    "Я обычно вычисляю для хранения по крайней мере 100 000 запчастей inodes". - почему? Конечно, 0 запчастей (и 0 более необходимых) оптимальны? Вы действительно волнуетесь, что могли бы быть выключены 100K на том, сколько файлов или каталогов Вы будете иметь? –  OJFord 03.02.2018, 19:05
[

] Я думаю, что вы смешиваете две совершенно разные и независимые концепции. [

] [

] Возможность []large_file[], которую вы видите на выходе dumpe2fs, означает, что эта файловая система может вмещать файлы размером более 2 гигабайт, я думаю, что она устанавливается автоматически современными ядрами. Это не имеет никакого отношения к опции []-T[] в []mke2fs[].[

].
4
27.01.2020, 19:47

Теги

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