Из-за внешней неизбежной ситуации * мне нужно иметь более 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 каталогов.