De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


O que são inodes e como funcionam

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 28 de março de 2023

Da mesma forma como temos em um livro um índice, que nos permite localizar muito rapidamente a informação que buscamos, sistemas computacionais também precisam de um índice, que nos permita acessar os arquivos e diretórios.

O princípio é exatamente o mesmo, e os índices em sistemas GNU/Linux são chamados i-nodes.

Os inodes são uma estrutura de dados que fornece informações sobre os arquivos e diretórios no sistema de arquivos e sua localização no disco rígido.

Assim como o índice de um livro ajuda a localizar rapidamente um capítulo específico, os inodes ajudam o sistema operacional a localizar rapidamente um arquivo ou diretório específico no disco. Como cada inode possui um número exclusivo, o sistema operacional pode usá-lo para localizar o arquivo ou diretório correspondente.

Os inodes são uma estrutura fundamental em sistemas GNU/Linux, responsáveis por gerenciar os arquivos e diretórios presentes no sistema de arquivos. Cada arquivo ou diretório no sistema possui um inode associado, que contém informações importantes, como o tipo de arquivo, as permissões de acesso, o proprietário, o grupo, o tamanho e as datas de criação, modificação e acesso.

Os inodes são identificados por um número único chamado de número de inode (ou simplesmente "ino"), que é usado pelo sistema para localizar e acessar os dados associados ao arquivo ou diretório. Quando um arquivo é criado, um inode é reservado e preenchido com as informações iniciais do arquivo, como seu tamanho e suas permissões. À medida que o arquivo é modificado, as informações no inode são atualizadas para refletir as mudanças.

Os inodes são geralmente organizados em um mapa de bits ou uma tabela de inodes, que permite que o sistema operacional localize rapidamente o inode associado a um determinado arquivo ou diretório. Como o número de inodes disponíveis é limitado, pode haver situações em que o sistema de arquivos fique sem inodes livres. Nesse caso, é necessário aumentar o tamanho da partição ou do sistema de arquivos para acomodar mais inodes.

Como é feito o endereçamento dos blocos de dados

Cada inode contém um ponteiro ou uma lista de ponteiros para os blocos de dados que armazenam o conteúdo do arquivo. O primeiro ponteiro em um inode aponta para o primeiro bloco de dados do arquivo, o segundo ponteiro aponta para o segundo bloco e assim por diante. Em alguns sistemas de arquivos, um único ponteiro pode apontar para uma lista de ponteiros que, por sua vez, apontam para os blocos de dados.

Os inodes geralmente contêm um número fixo de ponteiros que podem ser usados para endereçar blocos de dados. Se um arquivo é grande o suficiente para exigir mais blocos de dados do que o número de ponteiros disponíveis no inode, o sistema de arquivos usa um ponteiro especial no inode para apontar para um bloco de ponteiros indiretos. Esse bloco contém uma lista de ponteiros adicionais que podem ser usados para endereçar mais blocos de dados.

O uso de ponteiros indiretos permite que um único inode enderece um grande número de blocos de dados, economizando espaço e melhorando a eficiência do sistema de arquivos. No entanto, o uso excessivo de ponteiros indiretos pode afetar negativamente o desempenho do sistema de arquivos, uma vez que o acesso a blocos de dados através de múltiplos níveis de indireção pode ser mais lento do que o acesso direto.

Fonte da Imagem: Wikimedia

Alteração do número de inodes

Nos dias atuais, em que temos discos rígidos de alta capacidade, o conceito de inodes é raramente entendido, visto que dificilmente precisamos tomar alguma ação com relação à sua configuração.

Entretanto, alguns anos atrás, em que os discos não eram tão grandes assim, era necessário fazer uma análise da finalidade de uma determinada partição visando configurar corretamente o número de inodes. Partições que abrigassem muitos arquivos grandes, precisavam de um número menor de inodes, ao passo que partições que abrigassem um grande número de arquivos pequenos, como por exemplo, uma partição que abrigasse mensagens de email, precisava de um número maior de inodes.

O número de inodes disponíveis em uma partição é definido quando o sistema de arquivos é criado. Por padrão, o número de inodes é determinado pelo tamanho da partição, mas é possível especificar um valor diferente usando a opção -N do comando mkfs.

Se você precisar aumentar o número de inodes em uma partição existente, a única opção é criar um novo sistema de arquivos com um número maior de inodes e copiar os dados da partição antiga para a nova.

Primeiramente, certifique-se de ter um backup completo dos dados da partição antes de prosseguir, pois o processo de criação de um novo sistema de arquivos pode resultar na perda de dados se não forem tomadas todas as precauções necessárias.

Para criar um novo sistema de arquivos com um número maior de inodes, siga estes passos:

  1. Desmonte a partição que deseja reformatar usando o comando umount.

  2. Crie um novo sistema de arquivos com o comando mkfs, especificando o número de inodes desejado com a opção -N. Por exemplo, para criar um sistema de arquivos ext4 com 2 milhões de inodes, use o seguinte comando:

     sudo mkfs.ext4 -N 2000000 /dev/sdX1
    '''

Substitua dev/sdX1 pelo caminho correto da partição que deseja formatar.

  1. Monte a nova partição usando o comando mount.

  2. Copie os dados da partição antiga para a nova partição usando o comando rsync.

    $ sudo rsync -a /origem/ /destino/

Substitua /origem/ pelo caminho da partição antiga e /destino/ pelo caminho da nova partição montada.

Verifique se os dados foram integralmente copiados e se a nova partição está funcionando corretamente.

Se tudo estiver funcionando corretamente, edite o arquivo /etc/fstab para atualizar a montagem automática da nova partição no próximo boot.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Rubens Queiroz de Almeida