Quantos arquivos posso ter diretamente sob um diretório no ext3?

2

Eu tenho um diretório raiz 'data_0'. Sob este diretório são cerca de 15.000 diretórios ('a', 'b', 'c', ... 'aa', 'ab' ...). Sob cada um desses diretórios existem milhares de arquivos muito pequenos (4 ~ 10kB), algo entre 1.000 e 2.000 arquivos cada.

Tudo isso leva a 30 milhões de arquivos. Eu preciso movê-los de 'data_0' para uma pasta 'data_1', mas sem as pastas "level 2" (a, b, c etc), então:

/data_0/a/1.txt --> /data_1/a_1.txt
/data_0/a/2.txt --> /data_1/a_2.txt
...
/data_0/ccc/989.txt --> /data_1/ccc_989.txt
...

Até onde posso ir com isso? O desempenho não é importante aqui. Existe um limite lógico ou apenas um limite de desempenho?

    
por chesterman 19.08.2011 / 02:31

2 respostas

2

Se for necessário confiar em estranhos na internet, não há limite para o número de arquivos que uma pasta ext3 pode conter. Assim diz a lista de discussão extH-users RedHat . O kernel 2.6 supostamente permite a permissão teórica de "bilhões" de arquivos em um diretório. Você pode querer tweak dir_index um pouco para fazê-lo funcionar sem problemas se você estiver pesquisando os arquivos. Há também alguns outros efeitos colaterais de grandes quantidades de arquivos em um diretório que você pode querer ler em este thread do StackOverflow .

Então a resposta é mais provável: "Sim, mas ..."

    
por 19.08.2011 / 03:09
4

Não há limite lógico para o número de arquivos em um único diretório, embora haja limites de desempenho significativos, já que diretórios individuais obtêm mais arquivos (minha regra básica é mantê-lo abaixo de 1000, embora eu tenha feito 10000 em certas situações). Existe um limite para o número total de arquivos em um sistema de arquivos, governado pelos parâmetros de criação do sistema de arquivos (número total de inodes). Há também um limite embutido de 32000 subdiretórios por diretório (dos quais duas entradas são sempre ocupadas por . e .. ).

    
por 19.08.2011 / 03:31