Desvantagens do aumento do número de inodes no EXT4

6

No momento, estou usando backintime para obter "instantâneos" do meu sistema de arquivos. É semelhante a rsnapshot porque cria links para arquivos inalterados. Recentemente, fiquei sem inodes no meu sistema de arquivos EXT4 . df -hi revela que usei 9,4 milhões de inodes. Uma contagem grosseira do número de diretórios atuais vezes o número de instantâneos mais o número de arquivos atuais sugere que eu posso de fato estar usando 9,4 milhões de inodes.

Pelo que entendi, o sistema de arquivos EXT4 pode suportar cerca de 2 ^ 32 inodes. Estou pensando em reformatar a partição para usar todos os 4 bilhões de inodes, mas estou preocupado que essa seja uma má ideia. Quais são os inconvenientes de ter tantos inodes em um sistema de arquivos EXT4 ? Existe uma melhor escolha de sistema de arquivos para um aplicativo como este?

    
por StrongBad 02.05.2013 / 16:43

2 respostas

5

Essa é uma ideia muito ruim. Todo inode consome 256 bytes (pode ser configurado como 128). Assim, apenas os inodes consumiriam 1 TB de espaço.

Outros sistemas de arquivos, como o btrfs, podem criar inodes dinamicamente. Use um deles em vez disso.

    
por 02.05.2013 / 17:10
3

Eu realmente não posso enfatizar isso o suficiente, não crie um monte de inodes!

Primeiro, seu tempo de execução fsck pode ser aumentado exponencialmente, embora algumas dessas preocupações tenham sido abordadas no ext4. Mais importante, os inodes não são o único fator limitante do número de arquivos, é provável que seja impossível usar todos esses inodes. Isso não é praticamente falando, pode ser tecnicamente impossível.

Um trecho da página de manual do mkfs,

-i bytes-per-inode Specify the bytes/inode ratio. mke2fs creates an inode for every bytes-per-inode bytes of space on the disk. The larger the bytes-per-inode ratio, the fewer inodes will be created. This value generally shouldn't be smaller than the blocksize of the filesystem, since in that case more inodes would be made than can ever be used. Be warned that it is not possible to expand the number of inodes on a filesystem after it is created, so be careful deciding the correct value for this parameter.

Ao criar o novo sistema de arquivos OPs, falando em termos reais, o OP deve começar a calcular números com o máximo de bytes por inode = blocksize ... para todos que lerem isso depois, o OP tem um caso muito incomum onde ele tem um grande número de arquivos.

    
por 20.05.2013 / 01:50

Tags