Ограничение на размер каталога Ext4

Ограничение на размер каталога Ext4

У меня есть сервер Ubuntu 14.04, который не может создать новый каталог за пределами каталога 65 000. Я запустил tune2fs -lи вижу, что dir_nlinkфлаг установлен. Кто-нибудь знает, что еще можно проверить, чтобы это произошло? У меня есть много других клонов этой конфигурации сервера, которые все за пределами отметки 65 000 и работают как положено. Я сравнил результаты, tune2fs -lи они кажутся такими же. У меня все еще есть несколько миллионов свободных инодов и блоков. Я размонтировал и перемонтировал файловую систему, и ничего не изменилось.

решение1

Ограничение на размер каталога Ext4

Ext4 поддерживает два вида каталогов:

  • традиционные почти линейные каталоги
  • каталоги на основе хэшей

Линейные каталоги имеют ограничение в 65000 ссылок, т.е. около этого количества подкаталогов возможно. Каталоги на основе хеша не имеют ограничения.

При создании новой файловой системы по умолчанию используются хэш-каталоги. Если ваши каталоги все еще линейны, это, вероятно, потому, что вы обновили старый раздел ext3. (Ext3 получил функцию хэш-каталогов позже.)

Проверьте, является ли каталог почти линейным или основанным на хэше

$ sudo debugfs /dev/partition
$ htree /
htree: Not a hash-indexed directory

Конверсия

  1. Размонтировать раздел
  2. Включить функции dir_index(каталоги на основе хеша) и dir_nlink(неограниченные ссылки).

    sudo tune2fs -O dir_index,dir_nlink /dev/partition
    

Все вновь созданные каталоги теперь могут содержать неограниченное количество подкаталогов.

Если вы хотите преобразовать существующие каталоги, выполните следующие действия:

  1. Размонтируйте раздел (важно для защиты от потери данных)
  2. Сообщите fsck о необходимости перестроить индексы каталогов:

    sudo e2fsck -f -D /dev/partition
    

-fзаставляет fsck проверять диск, даже если он находится в чистом состоянии

-Dсообщает e2fsck о необходимости перестроить индексы:

Эта опция заставляет e2fsck попытаться оптимизировать все каталоги, либо переиндексировав их, если файловая система поддерживает индексацию каталогов, либо отсортировав и сжав каталоги для получения каталогов меньшего размера или для файловых систем, использующих традиционные линейные каталоги.

Связанный контент