limite de inode máximo do sistema de arquivos ext4 - alguém pode explicar?

16

Recentemente, tivemos um problema em que um dos sistemas de arquivos ext4 parecia incapaz de lidar com um número muito grande de arquivos, more than 6mln in this caseapesar de ter espaço suficiente. É 6mlno número máximo que um sistema de arquivos ext4 pode ter quando formatado com todas as configurações padrão? Tentei pesquisar no Google, mas não obtive nenhuma resposta definitiva. Alguém aqui pode esconder alguma luz sobre isso, por favor? Felicidades!!

MacUsers
fonte

Respostas:

20

Não existe um padrão , como tal, para ext4, que depende do tamanho do dispositivo e as opções escolhidas na criação. Você pode verificar os limites existentes usando

tune2fs -l /path/to/device

Por exemplo,

root@xwing:~# tune2fs -l /dev/sda1
tune2fs 1.42 (29-Nov-2011)
Filesystem volume name:   <none>
Last mounted on:          /

[lots of stuff snipped]

Inode count:              1277952
Free inodes:              1069532
Inodes per group:         8192
Inode blocks per group:   512

[lots of stuff snipped]

Conforme man mkfs.ext4

-i bytes-por-inode

Especifique a proporção de bytes / inode. mke2fs cria um inode para todos os bytes de bytes por espaço do disco. Quanto maior a taxa de bytes por inode, menos inodes serão criados. Esse valor geralmente não deve ser menor que o tamanho do bloco do sistema de arquivos, pois nesse caso mais inodes seriam feitos do que jamais poderiam ser usados. Esteja avisado de que não é possível expandir o número de inodes em um sistema de arquivos após a criação, portanto, tenha cuidado ao decidir o valor correto para este parâmetro.

EightBitTony
fonte
6

Depende de como você formatou o sistema de arquivos. Usando tune2fs -l <device>você pode encontrar o número de inodes que seu dispositivo possui, provavelmente em torno de 6 milhões de inodes no seu caso. Todo arquivo ou diretório usa um inode.

Até onde eu sei, a única possibilidade de aumentar o número de inodes é reformatar o seu sistema de arquivos. O -iparâmetro para mkfspode ser usado para especificar a proporção de bytes / inode. O valor padrão é definido em /etc/mke2fs.conf(no meu sistema: 16384).

Uma maior proporção de bytes / inode define menos inodes, e menor é mais inodes. Os valores padrão funcionam bem na maioria dos casos, mas se você tiver um grande número de arquivos pequenos, poderá atingir o limite e precisar formatar o sistema de arquivos com uma proporção menor de bytes / inode.

Oliver
fonte