Linux - Допомога, у мене закінчується кількість вузлів!


16

У мене є файлова система, в якій багато невеликих файлів. В даний час використовується близько 80% вкладень (я перевірив df -i), проте використовується лише 60% місця на диску. Як я можу «збільшити» кількість входів? Якби це був просто дисковий простір, я знаю, що міг би просто збільшити розмір диска (цей диск знаходиться на LVM). Якщо я збільшить розмір диска, це зробить мені більше вкладень?

Я готовий виростити файлову систему на цьому диску, якщо це допоможе.

Відповіді:


14

людина mke2fs

Ви побачите -N для кількості входів

Таким чином, ви можете прописати це під час форматування нового розділу. Зараз не так корисно, так?

tune2fs, який налаштовує файлову систему, схоже, не має можливості додати більше вкладень.

Але, можливо, ext3 або 4 це робить, а хтось ще знає ....?

Тож тепер у вас є варіант: резервне копіювання, переформатування розділу, відновлення.


1
так, це добре, але не тому, що це reiserfs, а тому, що він підтримує динамічні виділення inode (підтримується кожною пристойно новою файловою системою)

1
Райзер відмінно підходить для тонких крихітних файлів. Я б з цим пішов.
Xorlev

Однак я б переконався, що у вас є резервні копії під час використання Reiser. Я (сам) та інші втратили дані через reiserFS у попередні роки. Я з цього часу більше не вірю.
Є QUIT - Anonymous-Mousse

Здається, у ext3 немає можливості для цього
kagali-san

15

Щоб відповісти на початкове запитання, хоча запитуючий, мабуть, пізно - так, збільшення EXT2 / 3 на LVM2 також збільшить межу введення.

Просто мав розділ розміром 1G з обмеженням 65k введення. Після

lvextend -L+1G /dev/vg/var
umount /var
resize2fs /dev/vg/var
mount /var

... мій ліміт введення зараз становить 128 к.


1
Нічого собі, я був майже відчайдушним, але знайшов вашу відповідь і вирішив спробувати, і це спрацювало. Це безумовно має бути прийнятою відповіддю! Працює для LVM, а також для віртуальних машин :)
vadipp

12

Якщо ви знали, що невеликі файли будуть витрачати на вашому дисковому просторі, вам слід було б використовувати FS з динамічним розподілом inode, наприклад ReiserFS або будь-який новий сучасний FS (XFS, JFS) замість EXT2 / 3/4 (який, я вважаю, ви використовуєте , ви цього не сказали).

Міграція файлової системи, мабуть, є хорошим вибором у вашій ситуації.


1
Якщо ви знали, що невеликі файли будуть їсти на вашому диску, вам слід було б трохи налаштувати . Кожна файлова система має свої плюси і мінуси.
Франклін Піат

3

Під час зупинки встановіть нову файлову систему та cp / rm / ln-s дещо з вашої ієрархії fs. Тепер у вас є кілька запасних входів! Ви не можете розміщувати файли mv між двома фсезами, тому остерігайтеся порушувати речі, які для цього потрібно зробити, але для багатьох програм це може бути прозорим.

Потім зробіть новий фс за порадою Павла та перейдіть до цього.


1
Звичайно, ви можете mv-файли між двома файловими системами - mv - це ефективно семантичний цукор для cp + rm. Неможливо встановити жорстке посилання між двома файловими системами. Ви мали на увазі щось інше?
Даніель Лоусон

@Daniel: Я маю на увазі системний виклик rename (), і я думаю, що неохайна практика використовувати mv як цукор для cp / rm, через проблему з семантикою навколо символьних посилань. Я повинен відредагувати цю відповідь - є кілька місць, які це не дуже чітко.
Чарльз Стюарт

2

Ext4 страждає від тієї ж проблеми, якщо ви створили невеликий розділ і маєте тонку невеликих файлів, у вас буде не вистачає inode, і якщо у вас є flex_bgфункції, які ви не можете використовувати tune2fsдля збільшення входів.

Особисто я хотів би з ext4 над будь-якою версією rieserfs, просто виконайте наступне під час форматування:

mkfs.ext4 -I 512 /dev/foo
tune2fs -i0 -c0 -o journal_data_writeback /dev/foo

Якщо форматувати цей спосіб, ви отримаєте 33160 inode на завантажувальному розділі 512M.

Я кажу це, як хтось, хто використовував reiserfs роками, підтримка ядра не настільки хороша, як ext *, і файлова система з часом роздроблена і стає повільною.


-1

Перейдіть за resiserfs або будь-яким іншим fs без обмеження inode. Спеціально щодо файлів журналу, ймовірно, ви можете спакувати кілька тонн невеликих невикористаних файлів в один великий файл tar, щоб звільнити велику кількість inodes =)

$ find /path -iname "pattern" | xargs tar rvf output_file.tar
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.