Назад | Перейти на главную страницу

Если я обновлю ext3 fs до ext4, будет ли автоматически увеличиваться максимальное количество каталогов в каталоге?

Из-за внешней неизбежной ситуации * мне нужно иметь более 32 КБ каталогов в каталоге (но, насколько я могу судить, менее 64 КБ). Я достиг предела ext3. Я предполагаю, что исходный сервер работал под управлением ReiserFS. Резервная копия хранится в S3.

Мое решение обновляется до ext4, что согласно Википедии:

В ext3 каталог может иметь не более 32 000 подкаталогов. В ext4 этот лимит увеличился до 64000.

Мой вопрос: будет ли установка fs as ext4 автоматически увеличивать этот лимит? мне нужно будет запустить какую-то команду, чтобы включить новые функции? мне нужно заново создать каталог?

* восстановление резервной копии для преобразования информации в новую и лучшую систему, которую мы написали

Короткий ответ: да. Преобразование из ext3 в ext4 действительно решает проблему.

Длинный ответ:

Вот как я работал над этим:

У меня есть 5-терабайтный RAID-массив, который достигает этого предела с 4 ТБ данных в разделе. Так что я:

Выполните следующее, чтобы преобразовать его из ext3 в ext4:

tune2fs -O extents,uninit_bg,dir_index /dev/DEV

где / dev / DEV для меня было что-то вроде / dev / sdb1

Потом побежал:

e2fsck -fDC0 /dev/DEV

Это заняло около 8 часов для работы с 4 ТБ данных.

Затем я изменил / etc / fstab, чтобы он монтировал раздел как ext4.

Затем я побежал

mount /big

где / big - имя моего раздела. И это сработало отлично.

Итак, чтобы ответить на ваш вопрос, да, преобразование в ext4 действительно решает проблему.

Прочтите это, прежде чем выполнять преобразование: http://www.debian-administration.org/article/643/Migrating_a_live_system_from_ext3_to_ext4_filesystem

https://ext4.wiki.kernel.org/index.php/Ext4_Howto#Converting_an_ext3_filesystem_to_ext4

Нет, изменение типа fs и установка его как ext4 не приведет к увеличению количества inode. Это продиктовано во время создания файловой системы и не может быть изменено на лету в ext * fs.

Более того, это не очень чистый и рекомендуемый подход - переходить на ext4, просто размонтировав и смонтировав его. ext3 основан на блоках, а ext4 основан на экстентах, и даже если вы смонтируете ext3 как ext4, он останется блочным. Таким образом, вы не получите основных преимуществ ext4.

Если у вас есть тестовая система, вы можете попробовать выполнить преобразование и посмотреть вывод dumpe2fs.

Быстро проверил источник. Это жестко запрограммировано.

/*
 * Maximal count of links to a file
*/
#define EXT3_LINK_MAX           32000

/*

Из include/linux/ext3_fs.h

Альтернативным решением исходной проблемы может быть: останавливать процесс восстановления каждые несколько минут и проверять, есть ли, например, 10000 подкаталогов. Если да, создайте новый каталог (может быть, даже не в этом), переместите туда 10000 каталогов и создайте на них символические ссылки. Таким образом вы получите ожидаемую структуру без превышения лимита FS.

У меня нет полного ответа, но это все, что я могу сказать о экспериментах, которые я проводил. После запуска этой команды в файловой системе:

tune2fs -O extents,uninit_bg,dir_index /dev/DEV

вы можете создать более 32k каталогов в каталоге.

Часть, которую я не знаю (и я не могу найти прямо сейчас), заключается в том, можно ли монтировать ее как ext4, но с меньшим количеством включенных функций вы можете создавать более 32k каталогов.