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

Сервер Ubuntu ext4 достигает ограничения в 65000 подкаталогов

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

Ограничение каталога 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 попытаться оптимизировать все каталоги либо путем их переиндексации, если файловая система поддерживает индексацию каталогов, либо путем сортировки и сжатия каталогов для меньших каталогов, либо для файловых систем, использующих традиционные линейные каталоги.