Ubuntu server ext4 atingindo o limite do subdiretório 65000

6

Eu tenho um servidor Ubuntu 14.04 que não está conseguindo criar um novo diretório além do diretório 65.000. Eu executei um tune2fs -l e posso ver que o sinalizador dir_nlink está definido. Alguém sabe o que mais pode ser verificado para permitir que isso ocorra? Eu tenho muitos outros clones desta configuração de servidores que são todos os 65.000 e funcionando como esperado. Eu comparei as saídas tune2fs -l e elas parecem iguais. Ainda tenho vários milhões de inodes e blocos gratuitos. Eu desmontei e remontei o sistema de arquivos e nada mudou.

    
por gregjkm 19.01.2017 / 14:57

1 resposta

3

Limite de diretório ext4

O Ext4 suporta dois tipos de diretórios :

  • diretórios quase lineares tradicionais
  • diretórios baseados em hash

Os diretórios lineares têm um limite de 65.000 links, ou seja, em torno de muitos subdiretórios são possíveis. Diretórios baseados em hash não têm limite.

Ao criar um novo sistema de arquivos, o padrão é diretórios hash. Se seus diretórios ainda são lineares, provavelmente é porque você atualizou uma partição ext3 antiga. (Ext3 tem o recurso de diretórios baseados em hash mais tarde.)

Teste se um diretório é quase linear ou baseado em hash

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

Conversão

  1. Desmontar a partição
  2. Ative os recursos dir_index (dirs baseados em hash) e dir_nlink (links ilimitados).

    sudo tune2fs -O dir_index,dir_nlink /dev/partition
    

Todos os diretórios recém-criados agora podem conter subdiretórios ilimitados.

Se você deseja converter diretórios existentes, faça o seguinte:

  1. Desmonte a partição (importante para proteger contra perda de dados)
  2. Diga ao fsck para reconstruir os índices do diretório:

    sudo e2fsck -f -D /dev/partition
    

-f força o fsck a verificar o disco, mesmo que esteja no estado limpo

-D diz ao e2fsck para reconstruir os índices:

This option causes e2fsck to try to optimize all directories, either by reindexing them if the filesystem supports directory indexing, or by sorting and compressing directories for smaller directories, or for filesystems using traditional linear directories.

    
por 04.12.2017 / 09:49