Dada a estrutura atual de uma entrada de diretório em um sistema de arquivos ext4 no Ubuntu, qual é o número máximo de arquivos que um sistema de arquivos pode conter?
Qual é o método geral para calcular o número máximo de arquivos que um sistema de arquivos pode conter?
Responder1
O Ext4 tem um limite teórico de 4 bilhões de arquivos, que é restrito pelo tamanho do número de inode usado para identificar cada arquivo (o ext4 usa números de inode de 32 bits). No entanto, como diz John, o ext4 aloca tabelas de inode estaticamente, portanto, o limite real é definido quando o sistema de arquivos é criado.
O comando df mostra uma contagem de inodes livres em seu sistema de arquivos:
$ df -i
Filesystem iused ifree %iused Mounted on
/dev/disk0s3 55253386 66810480 45% /
/dev/disk1s3 55258045 66805821 45% /Volumes/Clone
Ext4 também suporta um número ilimitado de subdiretórios por diretório, embora possa ter como padrão um limite de 64.000. Isto é configurável - veja oartigo ext4 em Kernel Newbies.
Para mais informações, vejaO novo sistema de arquivos ext4: status atual e planos futurosdo Simpósio Linux de 2007.
Responder2
Não existe um, por si só; depende. Ao criar um sistema de arquivos ext4, você decide o tamanho dotabela de inodes, que por sua vez controla o número total de diretórios ou arquivos que o sistema de arquivos pode conter de uma só vez.
Responder3
Não no Ubuntu, mas no Redhat Linux, comandos básicos como find falham com um 'Erro de muitos argumentos' quando executados em um diretório contendo 3 milhões de arquivos. ls é executado com êxito se nenhum parâmetro for incluído, mas falhará com o mesmo erro assim que os parâmetros de filtro forem adicionados.
Supondo que a confiabilidade de tais comandos básicos seja um requisito obrigatório, sugiro que 3 milhões de arquivos são demais.