Tamanho do inode fixo?

0

Nós dividimos o arquivo em blocos de tamanho fixo e o armazenamos. Eu quero saber se o tamanho do inode para um arquivo é o mesmo tamanho do bloco ou é diferente e tem algum tamanho fixo?

    
por Zephyr 10.08.2017 / 21:55

1 resposta

3

Um bloco contém os dados reais de um arquivo, então normalmente queremos que o bloco seja o maior possível, enquanto ainda tivermos um desempenho decente. Acontece que um tamanho muito bom para um bloco é aproximadamente do tamanho de uma página. Para citar o o wiki do ext4 :

Block size is specified at mkfs time and typically is 4KiB. You may experience mounting problems if block size is greater than page size (i.e. 64KiB blocks on a i386 which only has 4KiB memory pages).

O "tempo mkfs" refere-se à hora em que o sistema de arquivos é criado. Portanto, o tamanho do bloco é fixo depois que criamos o sistema de arquivos e provavelmente será 4KiB.

Os inodes precisam apenas conter ponteiros para os blocos de dados (e também algumas meta-informações sobre o arquivo - a que horas foi acessado pela última vez, a que usuário pertence, etc.). Em uma seção diferente do wiki, eles afirmam que

By default, ext4 inode records are 256 bytes, and (as of October 2013) the inode structure is 156 bytes [...]. The extra space between the end of the inode structure and the end of the inode record can be used to store extended attributes. Each inode record can be as large as the filesystem block size, though this is not terribly efficient.

Então, nós poderíamos realmente tornar os inodes tão grandes quanto os blocos, mas em um sistema real, esse provavelmente não é o caso. Caso você esteja se perguntando, o inode estrutura fala apenas sobre os ponteiros para os blocos de dados. Portanto, temos 156 bytes de ponteiros para o conteúdo real do arquivo, mas o inode inteiro ocupa 256 bytes - basicamente, temos 100 bytes que podemos usar em nosso tempo, para qualquer metadado que desejemos.

Em suma, ext4 é muito configurável. Mas as chances são muito altas de que seu tamanho de bloco seja 4KiB, enquanto seus registros de inode tenham 256 bytes.

    
por 11.08.2017 / 00:49