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

Foi útil?

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 ....

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top