ti-enxame.com

Quantos bytes por inodes?

Preciso criar um número muito alto de arquivos que não são muito grandes (como 4kb, 8kb). Não é possível no meu computador, pois são necessários todos os inodes até 100% e não consigo criar mais arquivos:

$ df -i /dev/sda5
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sda5            54362112 36381206 17980906   67% /scratch

(Comecei a excluir arquivos, é por isso que agora é 67%)

Os bytes por nós são de 256 no meu sistema de arquivos (ext4)

$ Sudo tune2fs -l /dev/sda5 | grep Inode
Inode count:              54362112
Inodes per group:         8192
Inode blocks per group:   512
Inode size:               256

Gostaria de saber se é possível definir esse valor muito baixo, mesmo abaixo de 128 (durante a reforma). Se sim, qual valor devo usar? Valeu

24
oyo

Os bytes padrão por inode geralmente são 16384, que é o padrão inode_ratio dentro /etc/mke2fs.conf (é lido antes da criação do sistema de arquivos). Se você estiver sem inodes, tente, por exemplo:

mkfs.ext4 -i 8192 /dev/mapper/main-var2

Outra opção que afeta isso é -T, normalmente -T news o que reduz ainda mais a 4096.

Além disso, você não pode alterar o número de inodes em um sistema de arquivos ext3 ou ext4 sem recriá-lo ou editá-lo em hexadecimal. Os sistemas de arquivos Reiser são dinâmicos, portanto você nunca terá problemas com eles.

29
Brendon Baumgartner

Você pode descobrir a proporção aproximada de inodes dividindo o tamanho do espaço disponível pelo número de inodes disponíveis. Por exemplo:

$ Sudo tune2fs -l /dev/sda1 | awk -F: ' \
    /^Block count:/ { blocks = $2 } \
    /^Inode count:/ { inodes = $2 } \
    /^Block size:/ { block_size = $2 } \
    END { blocks_per_inode = blocks/inodes; \
          print "blocks per inode:\t", blocks_per_inode, \
                "\nbytes per inode:\t", blocks_per_inode * block_size }'

blocks per inode:    3.99759 
bytes per inode:     16374.1
13
Stanislav German-Evtushenko