Límite de directorio ext4

Límite de directorio ext4

Tengo un servidor Ubuntu 14.04 que no puede crear un nuevo directorio más allá del directorio 65.000. He ejecutado un tune2fs -ly puedo ver que la dir_nlinkbandera está configurada. ¿Alguien sabe qué más se puede comprobar para permitir que esto ocurra? Tengo muchos otros clones de la configuración de este servidor que han superado la marca de 65.000 y funcionan como se esperaba. He comparado las tune2fs -lsalidas y parecen iguales. Todavía tengo varios millones de inodos y bloques libres. Desmonté y volví a montar el sistema de archivos y nada cambió.

Respuesta1

Límite de directorio ext4

Ext4 admite dos tipos de directorios:

  • directorios tradicionales casi lineales
  • directorios basados ​​en hash

Los directorios lineales tienen un límite de 65.000 enlaces, es decir, alrededor de esa cantidad son posibles muchos subdirectorios. Los directorios basados ​​en hash no tienen límite.

Al crear un nuevo sistema de archivos, el valor predeterminado son los directorios hash. Si sus directorios aún son lineales, probablemente se deba a que actualizó una partición ext3 antigua. (Ext3 obtuvo la función de directorios basados ​​en hash más adelante).

Pruebe si un directorio es casi lineal o está basado en hash

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

Conversión

  1. Desmontar la partición
  2. Habilite las funciones dir_index(directorios basados ​​en hash) y dir_nlink(enlaces ilimitados).

    sudo tune2fs -O dir_index,dir_nlink /dev/partition
    

Todos los directorios recién creados ahora pueden contener subdirectorios ilimitados.

Si desea convertir directorios existentes, haga lo siguiente:

  1. Desmontar la partición (importante para protegerse contra la pérdida de datos)
  2. Dígale a fsck que reconstruya los índices del directorio:

    sudo e2fsck -f -D /dev/partition
    

-fobliga a fsck a comprobar el disco incluso si está en estado limpio

-Dle dice a e2fsck que reconstruya los índices:

Esta opción hace que e2fsck intente optimizar todos los directorios, ya sea reindexándolos si el sistema de archivos admite la indexación de directorios, o ordenando y comprimiendo directorios para directorios más pequeños o para sistemas de archivos que utilizan directorios lineales tradicionales.

información relacionada