Em sistemas de arquivos Unix baseados em inodes, um diretório mapeia o nome de cada entrada para um número de inode. O inode representa o objeto do sistema de arquivos e registra os metadados necessários para localizar e interpretar seus dados. Portanto, o caminho não é armazenado como a identidade principal do próprio objeto.
O Sistema de Arquivos · Lição 11
Inodes
Aprenda como os números de inodes conectam os nomes dos diretórios aos metadados e dados dos objetos do sistema de arquivos.
Metadados Armazenados com um Inode
Os metadados normalmente associados a um inode incluem:
- tipo do objeto e modo de permissão
- propriedade de usuário e grupo
- tamanho lógico e contabilização dos blocos alocados
- contagem de links físicos
- timestamps de acesso, modificação e alteração de estado
- referências aos dados do arquivo ou a estruturas de extensões específicas do sistema de arquivos
Normalmente, o inode não armazena o nome da entrada do diretório. Um sistema de arquivos também pode armazenar atributos estendidos, listas de controle de acesso, horário de criação, dados inline ou outras informações por meio de estruturas específicas do formato.
ctime é o horário de alteração do estado do inode, não necessariamente o horário de criação do arquivo. Um timestamp separado de nascimento ou criação é opcional e pode não estar disponível.
Onde o componente do caminho de um arquivo comum normalmente é associado ao número de seu inode?
Números de Inodes e o Escopo do Sistema de Arquivos
Exiba os números de inodes com:
$ ls -li
O primeiro campo é o número do inode. Inspecione um objeto com mais detalhes usando:
$ stat path
Um número de inode é exclusivo apenas dentro de um sistema de arquivos em determinado momento. O mesmo número pode existir em outro sistema de arquivos e pode ser reutilizado depois que um inode é liberado. Identifique um objeto de forma confiável tanto pela identidade do sistema de arquivos quanto pelo número do inode, não apenas pelo número.
Em qual escopo um número de inode identifica um objeto?
Links Físicos e Referências Abertas
Várias entradas de diretório podem apontar para o mesmo inode; elas são links físicos. Criar outro link físico incrementa a contagem de links do objeto. Remover um nome reduz a contagem sem excluir os dados enquanto outro link permanecer.
Mesmo depois que a última entrada de diretório é removida, um arquivo aberto continua alocado até que a última referência de processo seja fechada. Sua contagem de links pode ser zero enquanto um descritor ainda o acessa. Isso explica por que excluir um log grande e aberto pode não reduzir imediatamente o uso informado por df.
Quando os recursos de um arquivo sem links normalmente são liberados?
Capacidade de Inodes
Em sistemas de arquivos com um conjunto finito ou informado de inodes, milhões de arquivos pequenos podem esgotar a capacidade de metadados antes que os blocos de dados sejam preenchidos. Inspecione a contabilidade de inodes dos sistemas de arquivos montados com:
$ df -i
Se não houver inodes livres, a criação de outro arquivo pode falhar mesmo que df -h informe blocos disponíveis. As estratégias de alocação variam: alguns sistemas de arquivos pré-alocam estruturas de inodes durante a criação, enquanto outros gerenciam os metadados dinamicamente e podem informar sua capacidade de forma diferente.
O que df -i informa quando o sistema de arquivos oferece contabilidade de inodes?
Mapeamento de Dados Específico do Sistema de Arquivos
Não presuma que todo inode possua exatamente 12 ponteiros diretos e três indiretos. Essa é uma descrição útil de alguns layouts clássicos, mas o ext4 moderno pode usar extensões, e XFS, Btrfs e outros sistemas empregam estruturas diferentes. Dados inline e extensões comprimidas ou copy-on-write alteram ainda mais essa relação.
Use ferramentas de diagnóstico específicas do sistema de arquivos apenas em modos somente para leitura ou documentados quando o mapeamento interno for importante. Para a administração comum, stat, find -inum, df -i e ferramentas que consideram links fornecem abstrações mais seguras.
Por que você não deve presumir um único layout fixo de ponteiros para todos os inodes?
Use o laboratório Gerenciamento de Arquivos e Diretórios no Linux para comparar números de inodes e contagens de links em arquivos descartáveis.
Lição concluída
Você concluiu Inodes
Agora você sabe relacionar caminhos, inodes, links e a capacidade do sistema de arquivos.
Trate as entradas dos diretórios como mapeamentos de nomes para números de inodes.
Leia metadados e timestamps sem confundir ctime com o horário de criação.
Restrinja o escopo dos números de inodes a um sistema de arquivos e momento.
Considere tanto links físicos quanto descritores de arquivos abertos.
Use modelos específicos de cada sistema de arquivos, não um único layout universal de ponteiros.
Salve seu progresso
Crie uma conta gratuita para salvar esta lição e continuar em qualquer dispositivo.
Criar uma conta gratuita