велика функція при створенні файлової системи


17

Чи корисно використовувати прапор великого файлу -T для створення файлової системи для розділу з великими файлами, такими як відео та аудіо у форматі flac?

Я тестував той самий розділ із цим прапором і без нього, і використовуючи tune2fs -l [розділ] , я перевірив "Особливості файлової системи", для яких обох увімкнено "big_file". Отже, чи не потрібно використовувати -T прапор bigfile ?


1
Зауважте, що я був плутаний між великим_файлом (потрапив у tune2fs) та великим файлом; здається, що вони аргументи для різних речей.
Марк

Відповіді:


24

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

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

Якщо ви впевнені, що середній розмір файлів, що зберігаються на пристрої, буде перевищувати 1 мегабайт, то, безумовно, встановіть -T largefile. Я із задоволенням використовую його на своїх розділах зберігання даних і думаю, що це не надто радикально.

Однак, якщо ви розпакуєте дуже великий вихідний тарбол із багатьох файлів (думаю, сотні тисяч) до цього розділу, у вас є шанс не вистачити уріз для цього розділу. У цій ситуації мало що можна зробити, окрім вибору іншого розділу, для якого слід знімати untar.

За допомогою команди можна перевірити, скільки доступних утворень у живій файловій системі 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

Версія з великим файлом налічує 102 400 вводів, а нормальна - 6 553 600 входів та заощадила 1,5 Гб.

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


приємна відповідь, але там, де ви сказали, "та заощадили 1,5 Гб на цьому процесі". ви повинні сказати "але використали 1,5 Гб місця для додаткових вкладень". Ви робите це звуком як звичайний режим, створюючи більше вкладень, а також залишаєте більше вільного місця на диску.
localhost

"Я, як правило, підраховую, щоб зберегти не менше 100 000 запасів." - чому? Напевно 0 запасних (і ще 0 потрібних) є оптимальним? Ви дійсно переживаєте, що у вас може вимкнутись на 100K кількість файлів чи каталогів?
OJFord

4

Я думаю, ви змішуєте дві абсолютно різні і незалежні концепції.

large_fileФункція, яку можна побачити на виході dumpe2fs означає , що ця файлова система може містити файли розміром більше 2 Гб, я думаю , він автоматично встановлюється сучасними ядрами. Це не має нічого спільного з -Tваріантом mke2fs.

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