Quantos bytes por inodes?
-
26-09-2019 - |
Pergunta
Preciso criar um número muito alto de arquivos que não sejam muito grandes (como 4KB, 8KB). Não é possível no meu computador, porque é preciso tudo de até 100% e não posso 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 são 67%)
Os bytes por Nodes 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, que valor devo usar? THX
Solução
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ê está ficando sem inodes, pode tentar, 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 para 4096.
Além disso, você não pode alterar o número de inodos em um sistema de arquivos Ext3 ou EXT4 sem recriar ou editá-lo. Os sistemas de arquivos Reiser são dinâmicos, para que você nunca tenha um problema com eles.
Outras dicas
Você pode descobrir a proporção aproximada de inode, dividindo o tamanho do espaço disponível pelo número de inodos 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
Encontrei solução para o meu problema na página do MKE2FS Man:
-I INODE-SHUE
Especifique o tamanho de cada inode em bytes. O MKE2FS cria inodos de 256 bytes por padrão. Nos grãos após 2.6.10 e alguns núcleos anteriores do fornecedor, é possível utilizar inodos maiores que 128 bytes para armazenar atributos estendidos para melhorar o desempenho. O valor do tamanho do inode deve ser um poder de 2 maior ou igual a 128. Quanto maior o tamanho do inode, mais espaço a tabela inode consumirá, e isso reduz o espaço utilizável no sistema de arquivos e também pode afetar negativamente o desempenho. Os atributos estendidos armazenados em inodos grandes não são visíveis com grãos mais antigos, e esses sistemas de arquivos não serão montados com 2,4 kernels. Não é possível alterar esse valor após a criação do sistema de arquivos.
O máximo que você poderá definir é fornecido pelo seu tamanho de bloco.
sudo tune2fs -l /dev/sda5 | grep "Block size"
Block size: 4096
Espero que isso possa ajudar ....